400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

同VLAN不同网段下如何实现Ping通?

在同一个VLAN中,两台电脑是否能互相ping通,其实取决于它们之间的网络配置。以下是一个关于如何在不同网络配置下实现电脑间通信的探讨。
假设我们有两台电脑,分别是pcA和pcB,它们都处于同一个VLAN中。pcA的ip地址是10.1.1.1/8,而pcB的IP地址是11.1.1.1/8。下面我们将分析几种不同的网络配置情况。
首先,如果两台电脑之间没有设置网关,那么当pcA尝试ping pcB时,会收到“DestiNATion host unreachable”的错误信息。这是因为pcA发现自己与pcB不在同一网段,于是试图寻找网关,但由于没有设置网关,所以无法找到,从而导致数据包无法发送出去。
如果我们将网关设置为对方的IP地址,情况就会有所不同。这时,pcA在ping pcB时,首先会进行ARP广播,询问11.1.1.1的MAC地址。由于两台电脑同处一个VLAN,这个ARP广播可以被pcB接收到,并且pcB会响应这个ARP请求。这样,pcA就得到了pcB的MAC地址,双方就可以正常通信了。
还有一种情况是,将网关设置为pcA自己的IP地址。这时,pcA在ping pcB时,同样会先广播询问11.1.1.1的MAC地址。这个ARP广播同样会被pcB接收到并响应。在这种情况下,尽管网关设置为自己,但由于ARP请求是直接询问目标IP地址的MAC,所以双方仍然可以ping通。
那么,如果在ping不存在的IP地址时,会发生什么呢?我们进行了以下实验:将网关设置为自己的IP地址,然后ping三个不同类型的IP地址。首先是和自己在同一网段的IP地址,结果是ping请求超时,因为ARP请求发送给了不存在的IP地址。同样地,当ping与网关在同一网段的IP地址时,也发生了超时,因为ARP请求同样发送给了不存在的IP地址。
当ping一个与任何电脑都不在同一网段的IP地址时,结果也是超时。这说明,当网关设置为自己时,计算机在发送ARP请求时并不会首先询问网关的MAC地址,而是直接询问目标IP地址的MAC。只有在无法找到目标IP地址的MAC时,才会考虑询问网关的MAC。
进一步实验表明,当计算机的网关设置为一个不存在的IP地址时,即使两台电脑都能收到对方的ARP请求,但如果网关的MAC地址无法得到,那么它们之间仍然无法通信。
通过这些实验,我们可以得出结论:计算机在与非本网段的地址通信时,会首先尝试查找网关的MAC地址。如果网关MAC地址无法得到回应,那么通信就会失败。因此,正确设置网关是确保不同网段间通信的关键。
在实际情况中,如果两台电脑的网关设置与它们的IP地址完全无关,那么它们之间很可能会无法通信。而那些特殊的通信情况,比如网关与主机IP地址相同,其实是一种利用了网络配置的特殊性,从而实现了通信。但在一般情况下,正确配置网关和IP地址才是保证网络通信流畅的关键。

VLAN不同网段能否Ping通?

同VLAN不同网段下如何实现Ping通?

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

pcA IP地址:10.1.1.1/8

pcB ip地址:11.1.1.1/8

01 无网关,A ping B

报出的Destination host unreachable

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

02 网关设成对方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的应答。

3fccf630-3174-11ee-9e74-dac502259ad0.jpg

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

03 网关设成自己,A ping B

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

3fccf630-3174-11ee-9e74-dac502259ad0.jpg

抓到的结果与第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地址

深入了解网络通信原理

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

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

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

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

01 ping和自己同一网段的IP

ping返回超时,在B上抓包结果如下:

3ff3cfee-3174-11ee-9e74-dac502259ad0.jpg

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

02 ping和网关同一网段的IP

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

4000efb2-3174-11ee-9e74-dac502259ad0.jpg

03 ping和谁都不在一个网段的IP

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

从上面的3个实验来看,当网关设置成自己的时候,不管ping的地址是什么,计算机发出的ARP广播都是直接询问ping中所指定IP对应的MAC,没有询问网关的MAC,这符合上文的描述。

其实计算机在广播询问ping命令指定的IP之前还是会先问网关的MAC的,只是这里由于网关是自己所以这一步就被跳过了。

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

 

AI计算机网关设置中B的IP

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

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

01 ping与网关同一网段IP

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

4000efb2-3174-11ee-9e74-dac502259ad0.jpg

02 ping与谁都不在同一网段

超时。结果类似5.2结果,A发出了关于网关11.1.1.1的请求,B做了应答。但ping是超时的。

03 ping计算机B的地址

结果超时,为什么这个也不通呢?按说按照上面的测试,AB计算机都能获得对方MAC,以太网下,有MAC应该就有通信的可能,可这个时候却不通。

查看Sniffer抓到的包可以发现:

401d3c08-3174-11ee-9e74-dac502259ad0.jpg

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毫不相干的话,相互肯定不通。





审核编辑:刘清

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

VLAN相关文章

服务电话:
400-035-6699
企服商城