{"id":10659,"date":"2010-06-10T16:42:00","date_gmt":"2010-06-10T16:42:00","guid":{"rendered":"https:\/\/aidanfinn.com\/?p=10659"},"modified":"2010-06-10T16:42:00","modified_gmt":"2010-06-10T16:42:00","slug":"first-impressions-windows-server-2008-r2-nlb","status":"publish","type":"post","link":"https:\/\/aidanfinn.com\/?p=10659","title":{"rendered":"First Impressions: Windows Server 2008 R2 NLB"},"content":{"rendered":"<p>I have a customer that is using Windows Network Load Balancing for a fault tolerance web service across two web servers.&#160; They started running W2003 x86 a few years ago and recently decided that they should \u201cupgrade\u201d to W2008 R2 to take advantage of some of the better web hosting features.&#160; Each server has 2 NIC\u2019s.&#160; The first is the normal one we use to log into the servers and manage them.&#160; The second is used purely for the NLB clustered web traffic.<\/p>\n<p>This meant a rebuild of the servers.&#160; For some architectural reasons, it was also decided to build a new NLB cluster.&#160; We would do this one web server at a time.<\/p>\n<p>We rebuilt the first server.&#160; I brought up a new NLB cluster, with just itself as the only member for the moment. We would add the second server when it was rebuilt.&#160; To bring it into production we would:<\/p>\n<ul>\n<li>Change the production IP address on the old NLB cluster to a temporary one.<\/li>\n<li>Change the temporary IP address on the new NLB cluster to the production on.<\/li>\n<\/ul>\n<p>Then we could rebuild the second web server and away we go!<\/p>\n<p>Muggins here drew the short straw and I was awake at 06:00 this morning to VPN in, do some prep work and switch the IP addresses to bring the new server into production.&#160; I did that and tested.&#160; The websites would not respond.&#160; I had no idea what was up.&#160; Network monitor showed external traffic coming in on TCP 80 and reaching the server.&#160; I could even see my IP address coming in.<\/p>\n<p>I checked the website bindings which were set to the default of *, that is all assigned IP addresses on the server.&#160; I verified with IPCONFIG that the production IP was live.&#160; I could ping it from other machines and see the traffic in Network Monitor.&#160; I decided I would configure the site in IIS7.5 to just use the NLB cluster IP address.&#160; That\u2019s where issue #1 arose.&#160; I could not select that IP address.&#160; After a quick google I learned that W2008 R2 IIS7.5 cannot pick detect the NLB cluster IP address and load it into the drop down list box.&#160; I had to type it in.<\/p>\n<p>It should be OK now?&#160; I tested.&#160; And no joy.&#160; At this point I had to roll back the changes. The site had been offline for too long.<\/p>\n<p>A few hours later I had the time to start investigating some more.&#160; I used another public IP address with a NAT rule to another internal IP address that I could use on the new NLB cluster.&#160; That would leave the production, old NLB, websites up and running and unaffected by my tests.<\/p>\n<p>I still couldn\u2019t access the site.&#160; I tested the sites from another server in the same VLAN.&#160; I could access the sites from there.&#160; Strange!&#160; This means that I either had a firewall or a routing issue.&#160; It couldn\u2019t be a firewall issue.&#160; The same NAT rule was being used on the new server.&#160; I was simply moving the IP address and we don\u2019t do anything crazy with MAC addresses.&#160; It couldn\u2019t be an ARP cache issue because I could see web traffic actually reaching the server in Network Monitor 3.3.<\/p>\n<p>I scratched my head.&#160; I could route out from the server.&#160; I could surf the web and traceroute out.&#160; Both the server\u2019s management IP and NLB IP are in the same VLAN.&#160; The server management IP had the correct default gateway.&#160; The TCP configuration was identical to the W2003 R2 configuration.<\/p>\n<p>What if \u2026 now I was reaching \u2026 what if NLB doesn\u2019t route correctly?&#160; What if the NLB NIC\u2019s IP configuration doesn\u2019t pick up the default gateway set up on the management NIC\u2019s IP configuration.&#160; If it was a normal NIC it probably would.&#160; I set up the default gateway on the NLB NIC.&#160; It was identical to the server management NIC configuration.&#160; I got the warning about multiple default gateways on a computer and clicked OK.<\/p>\n<p>Now I tested web site access from an external IP and it worked perfectly.&#160; My conclusion?&#160; You have to configure the default gateway on an NLB NIC if using Network Load Balancing on Windows Server 2008 R2.&#160; Otherwise it will not route correctly to other networks; it should pick up the default gateway from the management NIC but it does not.<\/p>\n<div style=\"padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:94db7d97-d5f1-448d-991f-87d0abe54431\" class=\"wlWriterEditableSmartContent\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Windows+Server+2008+R2\" rel=\"tag\">Windows Server 2008 R2<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I have a customer that is using Windows Network Load Balancing for a fault tolerance web service across two web servers.&#160; They started running W2003 x86 a few years ago and recently decided that they should \u201cupgrade\u201d to W2008 R2 to take advantage of some of the better web hosting features.&#160; Each server has 2 &hellip; <a href=\"https:\/\/aidanfinn.com\/?p=10659\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;First Impressions: Windows Server 2008 R2 NLB&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[52],"tags":[117],"class_list":["post-10659","post","type-post","status-publish","format-standard","hentry","category-windows-server","tag-windows-server-2008-r2"],"aioseo_notices":[],"jetpack_featured_media_url":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10659"}],"version-history":[{"count":0,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=\/wp\/v2\/posts\/10659\/revisions"}],"wp:attachment":[{"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidanfinn.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}