ping issue with windows 2008 server
This is for embedded system, 2 eth ports, freescale ARM processor, kernel 3.0.35-cm-fx6-4,
fs is using ubuntu 12.04。NetworkManager version is 0.9.4. So we have 2 systems for testing, 1. linux embedded system has 2 Gigabit ethernet ports 2. windows PC, we open 2 Dos windows keep on pinging eht0 and eth1. ping -t 10.50.1.1 ping -t 10.50.1.2 At the same time, we unplug eth ports in the linux side randomly and plug back. Now if this windows pc is windows 7, ping always works. Now if it's windows 8 server, or windows xp, ping will fail. 1. you unplug eth0 in linux, "ping -t 10.50.1.1" will stop 2. plug back eth0, "ping -t 10.50.1.1" will work, but but "ping -t 10.50.1.2" stops, even though ethernet cable is still there. Any suggestions pls ? Thanks ! |
In the windows world you'll probably find that there are driver differences and TCP implementation differences. Those two things would change the error handling and failover of the ports.
My suggestion is to use LACP and bond the ports. |
I'd assume it is how the various ping and OS's and drivers interact with tcp/ip.
I don't know what the test is supposed to prove even. |
ok, this is what i found so far, can some one give some suggestions next ?
1. if i open 2 dos windows in win7, ping 2 eth in the linux, both works ping 10.50.177.137 (eth0) ping 10.50.177.139 (eth1) 5883@g64nnq1:~$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.50.183.254 0.0.0.0 UG 0 0 0 eth0 10.50.176.0 0.0.0.0 255.255.248.0 U 1 0 0 eth0 10.50.176.0 0.0.0.0 255.255.248.0 U 1 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 from wireshark running in linux, you can see icmp requests and replies in eth0. But NONE for eth1. All ping packets goes to eth0. so i assume linux internally knows eth1 and eth0 are together, as long as you ping eth1, it just pings eth0 instead. 2. However, if you do the same thing in windows 2008, the ping packets will go to eth1 if you are pinging eth1. Now the routing table is not right. If i replace the default routing entry with eth1, now ping works for eth1. ok, how do i fix this in linux without changing routing table then ? how the ping to eth1 actually goes to eth0 for win7 case ? Quote:
|
"internally knows eth1 and eth0 are together"
It does know they are in the same subnet true. Change the subnets out so that they are on different subnets and then try it even if the windows systems have a subnet mask that includes the two. |
All times are GMT -5. The time now is 10:45 PM. |