昨天无聊,突然想在自己电脑上测试一下将网关的IP绑成广播MAC
arp -s 10.0.0.138 ff-ff-ff-ff-ff-ff
我的环境简单,就我一个电脑,通过一个家庭小交换连到ADSL猫.
于是我在我PC上做了绑定,绑定我我就上不了外网了,此时可以PING通网关口,Sniffer抓包可以发现,数据几乎都是出的方向,回来的很少很少.
此时telnet上猫查看猫的ARP表,并无异样.
同样的问题,我问了多个群里的朋友,测试结果如下:
一个朋友,校园网环境,XP中文
绑定后,可以正常上网.
我自己 XP英文,家庭ADSL,绑定后上不了外网.
我好友,XP中文,家庭ADSL,绑定后上不了外网.
群里另一朋友,ADSL环境,2000系统,绑定后,正常上网
还有一朋友,公司网络,通过路由器是华为,中间过什么交换机没问,执行绑定后,再去ARP -A 就变回原样了.无法测试..
到底是什么问题.到底是能上才算正常 还是不能上才算正常.原理上怎么解释???
今天我又用CISCO路由器做了实验,结果和用猫有些不同.
拓扑如下
PC-----R1-------R6(6.6.6.6)
PC:192.168.0.100,网关192.169.0.254
R1:e1-192.168.0.254 e0-10.0.0.1
R6:e0-10.0.0.6 loopback:6.6.6.6
实验过程如下:
1.初始正常状态---->在PC上将网关绑成广播MAC----->在PC上PING 6.6.6.6,通,在R1上DEBUG可以看到IP转发包
r1-2514#
00:54:29: IP: tableid=0, s=192.168.0.100 (Ethernet1), d=6.6.6.6 (Ethernet0), routed via
RIB
00:54:29: IP: s=192.168.0.100 (Ethernet1), d=6.6.6.6 (Ethernet0), g=10.0.0.6, len 60,
forward
00:54:29: IP: tableid=0, s=6.6.6.6 (Ethernet0), d=192.168.0.100 (Ethernet1), routed via
RIB
00:54:29: IP: s=6.6.6.6 (Ethernet0), d=192.168.0.100 (Ethernet1), g=192.168.0.100, len
60, forward
2.初始正常状态---->在PC上将网关绑成广播MAC----->R6上clear arp--->在PC上PING 6.6.6.6,通,此时R1上看不到转发IP包的调试输出.
3.初始正常状态---->在PC上将网关绑成广播MAC----->R6上clear arp--->R1上clear arp--->在PC上PING 6.6.6.6,不通,此时R1上也看不到转发IP包的调试输出.
第三步做完后,在R6上PING PC,R6显示超时,但在PC上抓到ICMP包,且PC做了回应,回应的目的MAC是广播MAC.
此时再在PC上PING 网关,不通,抓包,有去无回.
从上面可以看出,问题就是出在网关的处理上,R1没有清理ARP前,即使PC上做了绑定,也是通
一旦从R1上清理掉ARP,重新获得ARP后,就不通了.但是,重新获得ARP后的ARP表是正确的.
但是这到底是为什么,怎么去理解R1这不同的2种行为.
文章评论
二层广播---router----blocking
提示以上,考虑下吧.