不同网段主机ping不通

img


本人才开始学习计算机网络,不太理解为什么图片里的这种情况为啥ping不通,两个主机防火墙都关了,都可以访问Internet,也ping不通,如何才能ping通,求解求解。

网关是怎么设置的!

【相关推荐】



  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7486528
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:不同网段怎么ping通
  • 除此之外, 这篇博客: 计算机原理---网络基础知识中的 为什么谁都能ping通百度 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    ping一般是测试网络畅通与否的,在不在一个网段不是判断能不能ping通的标准。能ping通说明你的数据包能到达目的主机。不在同一网段,如果有路由能到达的话,同样是能ping通的。如果在同一网段,对方设置了禁ping,你也是ping 不通的~~~


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

1. 原因
这种情况是因为两台主机不在同一个局域网段。设主机A和主机B的IP地址分别是192.168.1.20和192.168.31.104,可以两台主机的IP地址均是私有网段内的IP地址,ping不同说明它们不在同一个子网,因为不同子网之间是不能直接通信的,因此无法相互ping通。

2. 解决方法
以下几种办法均能保证在接通Internet的情况下,完成A和B之间的相互ping。

a. 通过修改子网掩码,使两台主机处于同一子网。
把主机A和主机B的IP地址后两个字节写成二进制的形式,如下所示:

img

我们可以发现,要保证二者在同一子网,C类网络需要至少借用5位网络位作为主机位,因此需要把两者的子网掩码均配置成255.255.224.0,就可以保证它们在同一个子网(192.168.0.0/19)中了。但是这个方案要求可分配的局域网IP足够多。

b. 申请公网IP或购买服务器做穿透。

img

不同局域网段无法直接通信的原因,从根本上来说是私有网段的IP并不唯一,因此无法锁定唯一的目的地址。但是公网IP是全球唯一的,因此可以想办法把主机A和B映射到公网IP。首先可以在各自连接Internet的网关设备,比如路由器上设置,各自指定A和B为虚拟服务器,由于路由器中具有NAT服务,可以把内网IP映射到公网IP,因此路由器就可以把自己WAN口的公网IP映射给自己子网中对应的A和B主机,自己充当代理,这样A和B就可以通过Internet进行通信了,但实际上是二者对应网关路由器之间的通信。当然也可以在主机A和B上各自购买并部署成服务器,并做外网穿透,这样本质上也是公网IP之间的通信。

c. 将双方的路由器以主从形式相连。

img

除了上述的方法,如果地理位置上相距较近,也可以把主机A和主机B各自对应的网关路由器(分别叫做路由器A和路由器B,下同)通过网线直接相连,这样形成一个主路由器和一个从路由器,假设路由器A是主路由器,路由器B是从路由器,那么路由器B其实是不需要直接接入Internet的,其WAN口可与A路由器的LAN口相连,并设置一个和主机A的IP处于同一子网的静态IP,比如192.168.1.2,然后LAN口设置一个和主机B在同一网段的IP,比如192.168.31.1,并开启DHCP功能,主机A和主机B就可以相互ping通了。原理很简单,相当于从路由器是主路由器所覆盖的局域网中的一个设备,而从路由器本身又开设了一个子网。

d. 其中一方的路由器作为交换机相连。

img

可以把路由器B作为交换机使用。具体而言,路由器A正常设置,路由器B首先空出WAN口,所有的接线都接在LAN口上,然后关闭DHCP服务,修改与路由器A相连的路由器B的LAN口的IP地址不要与路由器A的网段相同,比如192.168.200.200。假设路由器有以太口eth01和eth02口,在eth01口上配置主机A所在网段的地址192.168.1.1,并启用端口,在eth02口上配置主机B所在网段的地址192.168.31.1,并启用端口,用网线连接即可。

e. 通过交换机划分VLAN。

img

与d方案相似,直接将路由器B换成三层交换机,然后划分VLAN,注意交换机与主机A、B,以及和路由器相连的端口都设置成Access模式,若又短歌交换机直连,则直连的端口调成trunk模式。

f. 通过建立虚拟专用网络(VPN)

img

可以将主机A和主机B各自所在的网段之间建立并接入一个VPN,这样就可以相互访问到各自的内网了。但是这条隧道并不是真实存在的,而是通过数据加密技术封装出来的一条虚拟数据通信隧道,实际上它借用的还是互联网上的公共链路,这样还提高了数据传输过程中的安全性。

PS:写了这么多,也蛮辛苦的。如果有点用,还望采纳一下,谢谢啦!

看看有没有路由