I connected Ethernet adapters of two servers running FreeBSD 9.2 like this:
NIC's are directly connected with crossover cable. When I configure both rl0 interfaces with the same MAC address and send ARP request from server1 to server2, then server2 will not reply. For example a Cisco router behaves the same way. Additionally, it will log "it's our address" message for each such ARP request if debugging is enabled. On the other hand, Linux 2.6 and 3.7 will reply to ARP request with an ARP reply message even if the MAC addresses on both machines are the same. Why do Linux and FreeBSD kernels behave differently? Isn't there a standard which describes how OS should handle an ARP request message is this has the same source MAC address as the receiver? I made such test in order to understand CARP and VRRP with the same VRRP GID as CARP VHID on the same broadcast domain.
Code:
server1[rl0] <-> [rl0]server2
NIC's are directly connected with crossover cable. When I configure both rl0 interfaces with the same MAC address and send ARP request from server1 to server2, then server2 will not reply. For example a Cisco router behaves the same way. Additionally, it will log "it's our address" message for each such ARP request if debugging is enabled. On the other hand, Linux 2.6 and 3.7 will reply to ARP request with an ARP reply message even if the MAC addresses on both machines are the same. Why do Linux and FreeBSD kernels behave differently? Isn't there a standard which describes how OS should handle an ARP request message is this has the same source MAC address as the receiver? I made such test in order to understand CARP and VRRP with the same VRRP GID as CARP VHID on the same broadcast domain.