我在at91sam9260上用EBI方式扩展了一张DM9000网卡,也移植了驱动,现在板子上有双网卡,网卡信息如下:
# ifconfig
eth0 Link encap:Ethernet HWaddr 09:90:90:90:90:90
inet addr:192.168.1.97 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3575 (3.4 KiB) TX bytes:0 (0.0 B)
Interrupt:108 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 11:33:55:77:90:00
inet addr:192.168.1.98 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:840 (840.0 B) TX bytes:0 (0.0 B)
Interrupt:21 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
#
我用ping命令ping 192.168.1.99 和ping -I eth0 192.168.1.99 及ping -I eth1 192.168.1.99都能ping的通,从PC机上ping这两个网卡地址也都能ping的通,192.168.1.99是我pc机地址。但我用ping 192.168.1.97能ping通,ping -I eth0 192.168.1.97和ping -I eth1 192.168.1.97都没法ping通,192.168.1.97是eth0地址。
用ping 192.168.1.98能ping通,ping -I eth0 192.168.1.98和ping -I eth1 192.168.1.99都没法ping通,192.168.1.98是eth1地址。
用ping 127.0.0.1能ping通,ping -I eth0 127.0.0.1和ping -I eth1 127.0.0.1都没法ping通。
请问各位高人 是不是ping -I 命令只能ping 外部地址啊?还是其他原因呢?多谢!
------解决方案--------------------
要明白 ping的过程,也就是发报的过程。没有指定interface,是要通过路由表来进行的,路由正确,系统就会选择相应的接口进行数据发送处理,本机的话直接就处理了。 -I的作用是指定接口进行发送,如果两个接口之间存在问题(连接路由?),可能就不通了。 可以抓一下包,看一下,包是否出去了,是否受到了。。。