同一个vlan同一个网段的ip地址能够直接互通,那么同一个vlan不同的网段能不能互通呢?本期我们推荐一篇文章,可以解决大家在网络中遇到的一些奇怪的问题,也是加深对网络的理解。

同VLAN不同网段能否Ping通

前面我们已经熟悉了同vlan与同网段间如何互访,不同vlan间如何互访,而独独对于同vlan不同网段互通没有细说,今天我们来看下。

实例一:

现在有两台电脑,他们同处于一个vlan,

pcA IP地址:10.1.1.1/8

pcB IP地址:11.1.1.1/8

无网关,A ping B

报出的Destination host unreachable

显然,A机器发现对方与自己不是同一网段,试图寻找网关,但网关不存在,所以报主机不可达,B上的Sniffer未抓到任何包,观察网卡也是只发不收,显然数据没有出去。

网关设成对方IP,A ping B

能正常PING通,为什么能通?

从A计算机Sniffer上抓到的包可以看出,A在PING对方过程中,A首先进行了ARP广播,它广播询问11.1.1.1的MAC是什么。

显然这个ARP广播是可以被B收到的(因为他们同处一个vlan),而11.1.1.1正好就是B的IP地址,理所当然B要回应这个ARP请求。下图是A上的抓包情况,A首先进行了ARP广播,然后收到了B的应答。

两个vlan通讯需要建路由 两个vlan怎么ping通_网络通信

这样A就有了B的MAC,而B在接到A的ARP广播时候就学到A的MAC,所以双方可以PING通。

网关设成自己,A ping B

一样是可以ping的通的,A上抓包如下:

两个vlan通讯需要建路由 两个vlan怎么ping通_网络通信

抓到的结果与第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 ?我们再来看下面。

ping三个不存在的Ip地址,深入了解网络通信原理

网关设成自己,PING 3个不存在的IP:

一个是和自己在同一网段的;

一个是和网关在同一网段的;

一个是和谁都不在同一网段的;

PING和自己同一网段的IP,PING返回超时,在B上抓包结果如下:

两个vlan通讯需要建路由 两个vlan怎么ping通_网络_03

可以看出,A发出了询问10.1.1.2的ARP广播而不是询问网关(10.1.1.1)的广播,由于这个IP不存在,所以没有机器做出回应。

PING和网关同一网段的IP

超时,B上接到的是A发出的关于11.1.1.2的ARP广播,由于不存在11.1.1.2这个地址,所以没有机器回应。

两个vlan通讯需要建路由 两个vlan怎么ping通_网关_04

PING和谁都不在一个网段的IP

超时,B上接到是A发出的关于100.1.1.1的ARP广播,由于不存在100.1.1.1这个地址,所以没有机器回应。

从上面的3个实验来看,当网关设置成自己的时候,不管PING的地址是什么,计算机发出的ARP广播都是直接询问PING中所指定IP对应的MAC,没有询问网关的MAC,这符合卷一上的描述,其实计算机在广播询问PING命令指定的IP之前还是会先问网关的MAC的,只是这里由于网关是自己所以这一步就被跳过了。

那到底是不是这样的呢?我们再验证下。

A的网关设置成B的IP,B的网关设置中不存在的IP地址

A计算机网关设成B的IP地址,但B的网关设置成一个不存在的IP(且与A/B都不在同一网络),PING三种情况。

PING与网关同一网段IP

在A上抓包,可以看到A首先发出了关于网关11.1.1.1的ARP广播请求(对应B接到这个广播请求),B对这个11.1.1.1进行了ARP应答.但这个IP是不存在的所以PING结果超时。

两个vlan通讯需要建路由 两个vlan怎么ping通_网关_04

PING与谁都不在同一网段

超时,结果类似上面结果,A发出了关于网关11.1.1.1的请求,B做了应答.但PING是超时的.

PING计算机B的地址,结果超时

为什么这个也不通呢?按说按照上面的测试,AB计算机都能获得对方MAC,以太网下,有MAC应该就有通信的可能,可这个时候却不通,查看Sniffer抓到的包可以发现:

两个vlan通讯需要建路由 两个vlan怎么ping通_网关_06

A发出了关于11.1.1.1的ARP广播请求,B对11.1.1.1做出应答,但是下面接到了多个B发来的关于100.1.1.1的ARP广播请求,且100.1.1.1的请求没有得到B的应答,看来B是一直在试图查询B的网关(100.1.1.1)所对应的MAC,在网关的MAC没有获得应答之前,B不会对PING产生回应。

从上面的所有实验看出,计算机在与非本网段的地址通信时,计算机首先查找网关的MAC,如果网关MAC得不到回应,是不会对PING作出响应的;

因此,实例一中1和2的情况是属于特殊情况,正好利用了网关与主机IP相同,骗过了计算机.如果AB的网关都设置的与AB ip毫不相干的话,相互肯定不通。