我有一个开发Web服务器环境,包含2个configuration了NLB(多播模式)的Windows 2012虚拟机。每个虚拟机使用一个networking适配器,分配2个IP:共享的NLB IP,以及它们的非共享IP。 我们的使用模式是运行构build和部署到其中一个虚拟机,而不在活动的NLB池。 一旦构build完成,新鲜更新的服务器将被添加回池中,另一个被删除。 这样我们保持不变的正常运行时间。
我的问题是在两台服务器中的一台上,IIS不允许通过NLB连接来自我们networking之外的IP地址。 因此,如果该服务器是NLB池中唯一活动的服务器,则内部PC可以连接,但我们networking外部的主机无法连接。 他们得到一个超时。 我可以看到使用Wireshark的TCP SYN,并且没有ACK被发回。 如果我将NLBconfiguration翻转到另一台服务器,它允许内部和外部IP连接。 我从我控制的外部主机validation了这一点:我尝试了一个使用NLB IP的HTTP请求,得到了相同的结果。
我检查过的东西:
如何解决IIS为什么不从外部IP确认SYN的问题? 可以logging这种事情吗?
如果我不能排除为什么IIS不允许服务器2上的连接,我唯一的办法是从头重build整个虚拟机,然后再试一次…
我们的一个服务器pipe理员发现了这个问题:虚拟机在其networking适配器设置中缺less正确的默认网关IP地址。 这似乎解释了为什么本地请求正常,但来自外部IP的请求正在下降。
为了将来的参考,在这种情况下,一个好的testing将是检查虚拟机可以启动到外部IP的出站连接,例如启动网页浏览器并转到google.com。 我有一种感觉,即使在坏的状态下也会失败,而且更容易排除故障。