routing issue: one nic with multiple ip addresses
Our Configuration: Originally we had 2 seperate server machines (both are Windows Web Server 2008 R2) doing two different jobs. Each server machine had its own public ip address and internal ip address. We had IIS on one machine (external ip 21x.xxx.xxx.xx1, internal ip 10.10.x.xx4) to serve websites and a windows service that ran an udp server on another machine (external ip 21x.xxx.xxx.xx2, inernal ip 10.10.x.xx9) on port 1xxxx to receive mobile data. Everything just worked fine. Later on, we had to eliminate the second physical server machine and combine all the sevices into one. Meanwhile we had to let the mobile devices to report data via udp to, and let clients access the web sites by either one of the two public ip addresses. In order to avoid changing the existing mobile device settings, which would cause big cost and mess to our clients, out IT staff bound the two internal ip addresses (10.10.x.xx4 and 10.10.x.xx9) to the same NIC on the server machine runs IIS. The two external IP addresses are still bound to the same inernal ip addresses. Issues: 1. The windows service now is able to receive udp packets sending to either one of the external ip adresses (21x.xxx.xxx.xx1 or 21x.xxx.xxx.xx2) port 1xxxx. However, the mobile device can only received returned udp packet when sending to 21x.xxx.xxx.xx1. 2. Our client can not use the second public ip (2xx.xxx.xxx.xx2) to connect the website. Our IT staff explains this is because the repond (outbound) ip is default to the 'primary' inetrnal ip address 10.10.x.xx4, so all responses to the requests from 10.10.x.xx9 will be rejected. He demands that our developer should change the windows service (udp server) to support multiple ip addresses. :( Questions: 1. Does anyone experience the similar issue? How do you solve the problem? 2. I do not think this is a coding issue. I'm using C#, I cannot have multiple sockets listening on the same udp port, even its for different ip addresses. When you have to bind the local address to IPAddress.Any, the code will never know the local incoming ip address. At this level, it's really up to the system (tcpip stack, routing table?) to decide how the packet routes. Am I wrong here? Your resonse will be appreciated. Thanks, Jim
June 25th, 2012 7:41pm

In this case, will it help to add another NIC physically and move the secondary internal (external) address to that NIC? Thanks, Jim
Free Windows Admin Tool Kit Click here and download it now
June 26th, 2012 1:00pm

Hi Jim, Thank you for the post. It's not a good idea to have two NICs with ip addresses in same subnet on one computer. I suggest you install a Hyper-V VM on the server to run the windows service. If there are more inquiries on this issue, please feel free to let us know. RegardRick Tan TechNet Community Support
June 27th, 2012 3:01am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics