This was not a question I could answer at that time. However, after a quick query on Google and a little reading, I now have a much better understanding of how this works.
Windows Network Load Balancing uses a "virtual" MAC address that is derived from a combination of the "cluster adapter" IP address and the priority of the node within the NLB configuration. For example, the cluster adapter IP address is 5.5.5.5 and there are two nodes (node 1 and node 2). The MAC address used when a client hits node 1 would be
02-01-5-5-5-5. The MAC address for the second node would be 02-02-5-5-5-5. The format for this MAC address is 02-h-5-5-5-5, where h = the priority number of the node (set in NLB) and 5-5-5-5 is based on the IP address of the cluster adapter (shared by both nodes). This is actually a pretty cool way to do it because you can scale nodes without worrying about physical MAC addresses because, the MAC addresses are virtual and thus don't require physical hardware.
Source: Microsoft (http://technet.microsoft.com/en-us/library/bb742455.aspx)
1 comments:
So - how does failover work? If I have MAC address for host 1 in my ARP cache (02-01-05-05-05-05), but node 1 goes down, aren't I screwed until that entry times out of my ARP cache? More importantly, since the cluster is likely to be on a remote subnet from the users, won't EVERYONE be screwed until the default gateway times out its ARP entry?
Would it be faster/ better/ cooler to have a shared (hot/standby) MAC address as Cisco does with HSRP? Therefore the secondary node will respond to the original MAC address once it realizes that its partner is no longer alive...
I'd like to read your opinion on this, since you seem to be a "cluster-fan"...
Post a Comment