I have been experimenting with a W5100 Ethernet board recently. My office/lab setup is a little unusual I suppose in that it is subnetted off the home WiFi. I am using a subnet 10.210.210.160/27 which should have 30 addresses ranging from .161 to .190 and a subnet mask of 255.255.255.224. I won't go into the reasons for the setup but it is related to home working.
Anyway, the point is that I configured the W5100 with address 10.210.210.188, router address 10.210.210.190 and subnet mask of 255.255.255.224. However, I could not get a connection to the network. I could not ping the interface and the MAC address was not in the arp table on either my PC or the router. I have a managed switch so I set this up with a mirror port and did a Wireshark capture. This showed no activity whatsoever from the W5100. I tried another IP address in the subnet range (10.210.210.187) but with the same result. I should note at this point that since the W5100 does not come with an assigned MAC address, I followed the examples on the Arduino website to construct and apply my own, taking care to avoiding known manufacturers prefixes so as to avoid the possibility of a clash. I puzzled over the problem for quite some time and came to the conclusion that maybe the W5100 is fried.
However, the story does not end there. The following day before finally dismissing the W5100 as toast, I decided to test using one of the provided Ethernet "ChatServer" example, binding a secondary class C address to my PC (192.168.4.10, standard class C netmask of 255.255.255.0) and to my pleasant surprise it worked and I could ping the interface which was on 192.168.4.8 no problem. Clearly, the W5100 was still operational. I then went back to my sketch and tried another IP address in my subnet range (10.210.210.185) and this time it also worked! I changed this to 10.210.210.187 and then 10.210.210.188 again and nothing! Back to 10.210.210.185 and all working again.
I have to assume this is some problem with the W5100 firmware? If this were only a matter of certain IP addresses not being accessible then it could be accepted as incorrectly applied subnet mask information at firmware level, but not even broadcasting its mac to the router? This is curious since arp sits at a level below IP addressing on the OSI model so this problem would appear to relate to a layer below the protocols for IP addressing, yet it only seems to affect certain IP addresses in the sub-netted range? How so?