遇到不同网段互相访问的一些问题的总结

最近想做不同子网下的ndn通信,两台不同运营商下的不同局域网之间不能跨网段通信,才知道他们的地址是在不同公网下的私有IP,有人指出是由于nat穿透的原因,但有些资料有通过静态路由配置的方法解决不同网段的通信问题的,发现自己在计算网络这一块很多概念都不清晰,老师要我解决在不考虑nat的情况下,不同网段通信为什么还需要IP配置,遂开始查阅一些资料,帮助自己理清思路。

1.关于两台在不同局域网下的主机ping不通的总结

我们主机的ip大多是私网ip,私有IP的地址段:A类:10.0.0.0-10.255.255.255.255;172.16.0.0-172.31.0.0;192.168.0.0-192.168.255.255;我实验中的两个均为私网ip(主机A为192.168.1.103;主机B为172.20.10.9)主机A为联通的无线局域网,其公网ip为:122.191.119.36;主机B为移动的热点,其公网ip为117.136.23.200。公网ip和私有IP之间的转换用到的是NAT技术。私有ip联网也需要通过NAT技术通过公网上网。因此两个私有IP互相平不通和NAT转换有关。可以通过vpn、端口映射、nat等方法通信。(一个教科书的答案“用户使用私有地址时必须经过地址转换,转换为公有地址后才能上网。转换方法有代理服务器、具备NAT转换能力的防火墙。”)
参考:添加链接描述

2.用私有IP ping 公网IP也ping不通,为什么ping不通自己的公网IP

一个网友写道“一般运营商是禁止个人用户ping”。既然连主机B的公网IP都不通,何况他的私有IP。

3.两个可以ping通的公网IP,在不同子网下,ping需要添加路由协议吗?还是自动寻址?为什么?

下面先弄清不同网段的通信过程
(1)因为主机A要寻找的目标主机B在同一网络,所以主机A能够通过ARP(地址解析协议,将ip地址转换成mac地址和)得到目标主机B的MAC地址,从而完成通信。
(2)当主机A在封装数据包时检测到目标主机并不在本网段,数据包不能把目标主机的MAC地址顺利封装进去,
主机A就利用上面得到同网段目标主机B的方法去请求得到网关的MAC地址,同样也是用ARP去广播,因为网关必须和本机在同一网段,网关能够收到这个ARP请求并能正确回应给主机A,
(3)这时主机A在数据包中封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址和网关的MAC地址,把数据包从网卡发出去,
(4)因为目标MAC是网关的,所以网关收到这个数据包后,发现目标MAC是自己,而目标IP却是别人,所以它不可以再往上打开这个数据包,它要做的工作就是把这些数据包发给下一跳路由器(如果网关自身就是一台路由器的话),让路由器把这些数据包正确传输到远程目标网络,到达远程网络后,它们的网关再将数据包发给数据包中的目标IP,即源主机A苦苦寻找的目标主机B,
(5)在这里,还需要注意的是,当网关把数据包发给下一跳路由器时,这个数据包必须由网关把目标MAC改成下一跳路由器的MAC地址(通过ARP得到),而源端MAC改成发出端口的MAC地址,否则下一跳路由器收到目标MAC不是自己的数据包,会丢弃不予理睬,下一跳路由器再发给下一跳路由器同样要把目标MAC地址改为下一跳路由器的MAC地址再发出去!
电脑主机(私网)访问互联网主机的IP的过程:
(1) 查看电脑本地的路由表,一看路由表前面没有你要访问ip的条目。就用默认路由0.0.0.0来转发数据。
(2)根据网络协议约定的,匹配0.0.0.0这条路由的数据是要发给网关,让网关处理。于是电脑尝试给网关发数据包。
(3)网关就是你电脑上配置的那个192.168.1.1,要发这个包给网关就涉及到arp了,具体arp过程可以去网上搜索一下,总之就是电脑程序为了完成这个发数据包的任务,通过arp获取了网关ip的mac地址。
(4)现在电脑通过arp获取了网关的mac地址,这样他就可以封包了。具体过程可以了解一下osi7层模型和数据包封装和接封装的知识。
(5)然后电脑就把数据包发出去了,网关接受到到这个包之后开始处理。
(6)路由器接受到数据包,路由器的程序一看哦不是发给我的,那我给你路由转发。到这里你访问外网的数据包就发送到公网的路由器上面去了,公网路由器程序也会执行相同的基本处理,最终把数据包发给你要访问的主机。具体怎么转发的,可以去了解一下路由的基本原理。
(7)你要访问的主机接受到发送过来的数据包进过主机的程序处理以后,开始给你返回数据包。同样的这个数据包经过上面类似的流程返回到你的电脑上就完成了你访问这个主机的过程。
参考:添加链接描述

路由表的配置方法有两种,静态路由配置,动态路由协议;

什么时候进行静态路由配置?
静态路由是指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由的优点:安全;缺点:大型和复杂的网络环境通常不宜采用静态路由。一方面,网络管理员难以全面地了解整个网络的拓扑结构;另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高。

4.一个公网IP可能分出不同网段的私有IP吗?(下面可回答问题3)

可以(一个公司可能分出不同网段,不知道这样还算不算一个局域网?不算,见问题5),我之前说的配置可能(搞清楚)都是针对局域网(私有IP)下的不同网段互相访问,需要添加IP地址和网关地址,这样可以达到ping通的效果,但在不同公网下配置是无效的,公网之间的互访是通过动态路由协议,而配置这种方法是静态路由。(例子:有人提问怎样使两个不同局域网网段互相访问,有人回答在A、B两个路由器上加入对方的网关,互做路由就行了:添加链接描述

5.什么样算一个局域网?

物理局域网段是指:比如 21 台电脑主机的 21 条网线都连接在同一台 24 口的交换机上,该 IP 地址段范围:192.168.50.1 - 192.168.50.21,这时不考虑任何一台机器上关闭了 ping 服务的情况,应该是任意两台电脑之间都能够 ping 通的。
逻辑局域网段是指:有些机器,比如说上面 21 台机器中的任意 10 台,虽然物理上都是在同一个交换机下,但是你仍然可以将这 10 台机器的 IP 地址段强制设置成 192.168.40.1 - 192.168.40.10。这个时候就属于逻辑上的局域网情况了。也就是说,这 10 台属于同一个局域网 192.168.40.x,另外 11 台机器属于另一个局域网 192.168.50.x。这时候你在这 10 台机器上就 ping 不通另外 11 台机器的 IP 地址了。子网掩码一般缺省是 255.255.255.0,非标准的子网掩码算起来更麻烦,要算子网号和主机号,一般可以不用。

6.怎么区别广域网和局域网

广域网(WAN)就是公网、外网,局域网(LAN)就是私网、内网。

7.为什么修改了主机IP后,和同一网段的主机可以ping通,但不能联网

因为同一网段的主机通信,不需要通过网关(但也必须有网线连接,仅仅修改两台主机ip在同一网段是不可以的);而访问外网要通过网关。
参考:添加链接描述

8.总结

局域网内部还可以通过交换机/路由器分出不同网段,这些网段内的主机还互相通信需要对网关进行配置。但内网访问外网到了广域网之后,路由寻址不需要配置。具体可以参考添加链接描述

局域网内为了便于管理,经常划分为不同的网段,不同网段的PC通过一个路由器与上层网段连接,可以访问外网或上层网络;但上层或同层网络不同网段的PC不能访问其他网段的PC。

这种情况下,可以通过设置上层网络的网关的静态路由实现互相访问;若是同级,可互相指定路由。

1.网关:网络中的数据关口,网关的IP地址地址就是具有路由功能设备的IP地址。简单来说就是一个局域网与其他网络(局域网或者公网)连接的关口。

2.路由:把信息从源传输到目的地的行为;在大多数宽带路由器中,未配置静态路由的情况下,内部就存在一条默认路由,这条路由将LAN口下所有目的地不在自己局域网之内的信息包转发到WAN口指定的网关去。

每个信息包经过路由器时,路由器会检查目的IP,将他和路由表中的子网掩码做与计算,并与路由条目中的IP进行对比,相同,就按照这条路由规则转发,不相同就检查下一跳路由条目,若所有条目都不相同,则转发到默认路由去。

3.默认路由:路由器在转发时,它将所有非本段的目的IP包都转发到WAN口的网关,由WAN口网关所指定的设备决定信息包是发到它自己连的内网还是外网去。

4.路由器隔绝广播,划分了广播域,路由器不会转发广播数据,不同路由器之间通讯,是通过ARP协议来获得下一跳路由器的MAC地址,ARP集基于广播的,路由器只能发现一跳范围内的其他路由器设备。

下面举例说明什么情况需要设置静态路由。
例一:最简单的串联式双路由器型环境
在这里插入图片描述
经过简单设置后,发现所有主机共享internet没有问题,但LAN1的主机无法与LAN2的主机通信,而LAN2的主机能ping通LAN1下的主机。

这是因为路由器隔绝广播,划分了广播域,此时LAN 1和LAN 2的主机位于两个不同的网段中,中间被新加入的路由器隔离了。所以此时LAN 1下的主机不能“看”到LAN 2里的主机,只能将信息包先发送到默认网关,而此时的网关没有设置到LAN 2的路由,无法做有效的转发。这种情况下,必须要设置静态路由条目。

需要在R1上指定一条静态路由,是目的IP为192.168.1.0网段的信息包能转发到路由器R2中。
例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(代表1.x这个网段),子网掩码255.255.255.0(因为是C 类网段),下一跳192.168.0.100。

例二:两台平级并连的路由器,下挂子网中主机需要互相通信的环境这种情况
在这里插入图片描述
图中内网的网关就是小区的网关,R1和R3分别是两户的宽带路由器。这种情况下,只要在网关设备上按例一的方式添加两条路由访问到R1和R3下的内网机。
在R1上:目的IP地址172.16.0.0,子网掩码255.255.0.0(B类网段),下一跳10.1.1.3。
在R3上:目的IP地址192.168.0.0,子网掩码255.255.255.0(C类网段),下一跳10.1.1.2。

注:有些小区使用了P-VLAN技术,这种网络情况比较复杂,这样上面简单的静态路由设置可能无法达到目的。

例三:既串且并,网络中有多级路由设备的环境
在这里插入图片描述
如果只配置了前两例的路由条目,R3无法访问到R2下192.168.1.0这个子网。要在R3上加一条到192.168.1.0的路由。
R1:目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳192.168.0.100。
目的IP地址172.16.0.0,子网掩码255.255.0.0,下一跳10.1.1.3。
R3:目的IP地址192.168.0.0,子网掩码255.255.255.0,下一跳10.1.1.2。
目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳10.1.1.2。
R3的下一跳也是指向R1,而不是直接指向R2。

路由汇总
上例中R3上的静态路由,其实可以写成一条:
目的地址192.168.0.0,子网掩码255.255.0.0,下一跳10.1.1.2 。
这条静态路由会将所有目的IP在这个范围内的信息包都发给路由器R1。这就叫路由汇总。路由器在检查计算路由时是比较消耗资源的,路由条目越多,路由表越长,则这个过程耗时越多,所以通过路由汇总减少路由表的长度,对提高路由器工作效率是很有帮助的。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值