没有到主机的路由_基础知识--路由结构

a189b3834118430e919ec90e5dd25deb.png

近几天在虚拟机环境下开发tello的多机编队飞行任务,遇到了以下的一些问题,于是引发了关于网络连接中的路由结构的思考,遂做以下记录。

一、vm中的桥接模式

1、桥接

桥接模式,实际上是将虚拟机与宿主机设置为同等级别的client,可以简单看做是为虚拟机创建了一块物理网卡(至于mac什么的可以不考虑,总有办法搞定),在同一网段下他们是平级的,因此通过虚拟机可以访问与宿主机在同一网段下的各个子机。因此在将宿主机与tello连接时,是将宿主机和虚拟机同时连接到了tello的子网段下,其网关为192.168.10.1(网段为192.168.10.x)。因此这时需要将虚拟机的ip设置为192.168.10.xx,保证了他在同一网段下,这时,虚拟机可以直接向网关192.168.10.1发送数据包完成信息交互(socket实现)。

2、单层路由结构

与桥接模式类似的方式就是单层路由结构,在这种结构下同一网段下的所有主机都连接到了路由器的lan端口,通过端口映射技术为每一个client分配一个本地局域网ip(比如192.168.xx.xx),但是这些所有的主机访问外网是通过一个网关来进行的,即本地网关地址(192.168.1.1)。因此,在这个本地网段下的所有主机拥有相同的外网ip,由于端口映射导致映射关系为本地ip192.168.1.22映射成了外网ip+端口号:xxx.xx.xx.x:xx。

二、vm中的NAT模和多层路由结构

nat模式,实际上是将宿主机作为一个新的路由器形式,虚拟机则是这个新的子网络中的一台主机,这种方式不需要设置虚拟机的ip即可访问互联网。通过这种方式和tello连接时,实际的网络结构和多层路由结构是一样的,如下图。

52edb9130b9bf3b9e73b07192965ad82.png

在这种情况下原有一个局域网LAN 1,靠一台路由器R1共享Internet,现在又在其中添加了一台路由器R2,下挂另一个网段LAN 2的主机。经过设置后(将R2的wan端口指向LAN1网段下的192.168.0.100),所有主机即可实现共享Internet,但是LAN 1下的主机无法与LAN 2下的主机通信,而LAN 2的主机却能Ping通LAN 1下的主机。这是因为路由器隔绝广播,划分了广播域,此时LAN 1和LAN 2的主机位于两个不同的网段中,中间被新加入的路由器隔离了。所以此时LAN 1下的主机不能“看”到LAN 2里的主机,只能将信息包先发送到默认网关R1,而此时的网关没有设置到LAN 2的路由信息,无法做有效的转发。这种情况下,必须要设置静态路由条目。

如图所示,LAN 1为192.168.0.0这个标准C类网段,路由器R1为原有路由器,它的WAN口接入宽带(外网网线),一个LAN1口挂着一台IP为192.168.0.1的主机和路由器R2。R2(新添加)的WAN口接到LAN1中(IP为192.168.0.100)。R2的LAN2口下挂着新加入的LAN 2这个C类不同网段的主机(IP为192.168.1.1)。

  如果按照共享Internet的方式简单设置,此时应将192.168.0.0的主机网关都指向R1的192.168.0.1,192.168.1.0网段的主机网关指向R2的192.168.1.1,那么只要R2的WAN口网关指向192.168.0.1,192.168.1.0网段下的主机就都能访问192.168.0.0网段的主机并能通过宽带连接上网,这是因为前面所说的宽带路由器中一条默认路由在起作用,它将所有非本网段的目的IP包都发到WAN口的网关(即路由器R2),再由R2来决定信息包应该转发到它自己连的内网还是发到外网去。但是192.168.0.0网段的主机网关是192.168.0.1,而路由器R1这时并不知道192.168.1.0这个LAN 2的正确位置(没有设置对应的路由表信息),那么此时只能上网以及本网段内的互访,不能访问到192.168.1.0网段的主机。这时就需要在R1上指定一条静态路由,使目的IP为192.168.1.0网段的信息包能转发到路由器R2去。

通过以上的分析,就可以知道为什么当采用NAT模式连接tello时,虚拟机能够ping同tello,而tello发送的信息却不能找到虚拟机的地址了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值