今天复习TCP/IP路由技术卷一,再次看到代理ARP那提到的那个透明子网问题,联想到那个经典的网关问题,于是决定仔细分析和整理一下各种情况到该怎么去理解.
环境:一台中文XP,一台英文XP,双机用交叉线直连.起Sniffer抓包观察.
A:IP 10.1.1.1/8
B:IP 11.1.1.1/8
From:http://www.mycisco.cn
> 1.无网关,A ping B,报Destination host unreachable.显然,A机器发现对方与自己不是同一网段,试图寻找网关,但网关不存在,所以报主机不可达,B上的Sniffer未抓到任何包, 观察网卡也是只发不收.显然数据没有出去,也没有发生卷一上所说的ARP广播过程.
2.网关设成对方IP,能正常PING通.为什么能通?从A计算机Sniffer上抓到的包可以看出,A在PING对方过程中,A首先进行了ARP 广播,它广播询问11.1.1.1的MAC是什么!但这里有个问题,这个11.1.1.1到底指的是PING中指定的11.1.1.1还是网关中的 11.1.1.1呢?先不管它,一会实验就明白了.反正此时的结果是A问11.1.1.1的MAC,显然这个ARP广播是可以被B收到的(为什么就不用说了吧),而11.1.1.1正好就是B的IP地址,理所当然B要回应这个ARP请求.下图是A上的SNIFFER,A首先进行了ARP广播,然后收到了B 的应答.
这样A就有了B的MAC,而B在接到A的ARP广播时候就学到A的MAC,所以双方可以PING通.
3.网关设成自己,A PING 对方一样是通的,A上抓包如下:
(抓到的结果与第2种情况一样,所以借用第2种情况的图),A依然是先广播询问11.1.1.1的MAC,这个ARP广播被B接到后,B有义务应答,于是双方知道对方MAC,所以能PING通.与第2种情况不同的是,这里可以明确知道ARP中的11.1.1.1指的是PING中所指定的IP地址而不是网关(此时A网关是10.1.1.1了),那么第2种情况中的11.1.1.1也指的是PING中所指定的IP ?做个实验4看看!
4.网关设成自己,PING 3个不存在的IP,一个是和自己在同一网段的,一个是和网关在同一网段的,一个是和谁都不在同一网段的:
4.1:PING和自己同一网段的IP,PING返回超时,在B上抓包结果如下:
可以看出,A发出了询问10.1.1.2的ARP广播而不是询问网关(10.1.1.1)的广播,由于这个IP不存在,所以没有机器做出回应.
本文来源:互联网 作者:佚名