路由器和主机不在一个网段,如何双向通信?

情况描述:

主机设置192.168.1.6/24 路由IP是192.168.0.138/24,从跟踪心灵可以看到两者发送了ARP消息,查看arp,互相也都有对方的MAC,但是只能看到主机给路由器发消息,看不到路由器的任何响应;
 

为了实现双向通信,我尝试把路由器的子网掩码改为255.255.254.0,也就是将主机IP纳入到路由器的子网,主机的子网掩码依然保持不变,也就是说路由器不在主机的网段,但主机在路由器的网段,之后就可以正常通信了。
我的问题是:
1.      路由器明明知道主机IP和MAC地址,是否必须要将主机IP纳入自己的网段才能向主机转发数据包?
2.      根据协议,路由器的下一跳应该不受同一网段的限制,只需要知道下一跳的IP和MAC地址就可以,但为什么我的主机收不到任何响应?是我的设置有问题么?
3.      如果将路由器的网关设置成主机的IP,即主机和路由器互为网关,是否也可以实现双向通信?
请各位专家大佬指点迷津!
主机192.168.1.6/24眼里的网关192.168.0.138/24是一个什么样的存在?
是一个和自己(192.168.1.0/24)不在一个网段的主机(192.168.0.0/24),所以不能与对方直接通信。所谓直接通信,是发送ARP广播请求对方的MAC地址,获得对方MAC地址就可以和对方直接通信了。
以上文字是作为网络启蒙给初学者看的,其实背后的原理是路由表,主机会严格路由表的指示来做操作,路由表指东打东,路由表指西打西,绝对不能含糊!学习路由表的同学一定眼记住这一点,不要凭自己的主观臆断来推测路由器的内部行为。
但是不要忘记,主机一旦配置了网关,那么主机的路由表自动创建了一条默认路由:
0.0.0.0/0 ------> 网关 192.168.0.138
所以主机一旦发现对方和自己不在一个网段时,会使用这条默认路由。既然路由已经指示去联系网关了,还犹豫什么呢?
于是,主机立马发送ARP广播请求网关192.168.0.138的MAC地址。由于网关和主机处在同一个广播域,所以网关收到了这个ARP广播。但是网关发现ARP报文请求方的IP = 192.168.1.6 和接收到的接口IP = 192.168.0.138并不在一个网段。网关经过严谨的智能抉择如下:
如果 网关关于目的IP =192.168.1.6 的内部路由表指向的出接口 = 接收到主机192.168.1.6 ARP广播的入接口,则回复ARP广播,否则不回复。
很显然,网关没有这样的路由,所以网关不会回复主机的物理要求。自然主机就没法与网关通信。
当你把路由器的网络掩码设置为192.168.0.138/23的时候,上文的主机的行为没有任何变化,但是网关的行为发生了微妙的变化。
因为在路由器(网关)的眼里主机和自己在同一个网段,都是192.168.0.0/23。用路由表的表达为路由器可以根据192.168.0.0/23这条路由,指向主机192.168.1.6。既然路由的出接口 = ARP广播报文的入接口,那么路由器自然就回复了。既然双方都有路由表指向对方,且双方都有对方的MAC地址,那么自然就可以通信了。
最后(3)如果将路由器的网关设置成主机的IP,即主机和路由器互为网关,是否也可以实现双向通信?
是的,因为路由器通过查路由表得到0.0.0.0/0 指向主机,既然路由的出接口 = ARP广播报文的入接口,自然会回复对方的MAC地址。那么双方就可以毫无障碍地通信。
最后一个思考题,当路由器没有配置主机为网关时,路由器关于主机192.168.1.6的路由指向哪里?
(0)

相关推荐

  • IP路由基础知识干货分享~~

    IP路由概述 当路由器收到一个IP报文时,路由器根据该IP报文的目的地址匹配路由条目(或路由表项). 若有匹配的路由条目,则依据该条目中的出接口或下一跳等信息进行报文转发:若无匹配的路由条目,则路由器 ...

  • 交换机基础配置+ 理解ARP及Proxy ARP

    交换机基础配置 原理概述 交换机之间通过以太网电接口对接时需要协商- -些接口参数, 比如速率.双工模式等.交换机的全双工是指交换机在发送数据的同时也能够接收数据,两者同时进行.就如平时打电话一样,说 ...

  • 网络中路由器的工作原理

    大家好,我是情报小哥! 01 路由器 前面小哥跟大家介绍了一下集线器和交换机的工作原理,今天该带来大家非常熟悉的路由器了,熟悉归熟悉,路由器在网络中到底是怎样工作的,估计还有一些朋友不是特别了解的. ...

  • 路由器有多台时,不同网段之间怎么样实现互相访问!

    不少人有疑问,说不同网段的两个主机设备如何实现互访?这个通常在网络综合布线和调试中会遇到,我们今天来看下. 我们经常会遇到企业随着员工或部门的增多,增加了一个路由器,分了两个网段,A子网和B子网处于不 ...

  • 为什么路由器不同网口无法配置同网段IP地址,而linux系统却可以?

    三个月前写过一篇文章,讨论主机与路由器接口是否可以配置为同一个网段.可是那篇文章讨论的更多的是负载均衡的内容.今天文章的重点讨论为何路由器(Router)与主机(Host)有题目中的差别.   Lin ...

  • 在不使用路由功能的前提下,两个不同网段的主机如何ping通?

    请问不使用三层交换机和路由器的前提下,两个不同网段的主机如何ping通?今天朋友去面试问到的问题,模拟器上能试的东西都试遍了,有没有网工大佬给讲一下.     现场抖机灵,用防火墙可以的.^_^ 如果 ...

  • 无路由功能的前提下,两个不同网段的主机如何ping通?

    请问不使用三层交换机和路由器的前提下,两个不同网段的主机如何ping通? 主机A = 10.1.1.1/24 主机B = 10.1.2.2/24   主机A.主机B物理直连,如何让他们Ping通?   ...

  • 教程:设置不同网段的两级路由器互访

     本帖最后由 ynsc133 于 2016-8-6 13:40 编辑 1.基本情况如下: 一级路由lan口ip:192.168.1.1 二级路由lan口ip:192.168.0.1 二级路由开dhcp ...

  • 网件推出RBK353 WiFi 6 mesh路由器:1 主机+ 2分身

    NETGEAR 网件昨日发布了 Orbi 奥秘系列  RBK353 高速路由器.这款产品采用套装销售,分为一台主机以及 2 台 mesh 分机,最高带宽 1800Mbps.该产品适用于大户型以及复式住 ...

  • 将电脑的路由表手工删除,为什么电脑Ping不通同一个网段的主机了?

    昨天看到同学们在讨论一个问题:将电脑的路由表手工删除,为什么电脑Ping不通同一个网段的主机了? 当然Ping不通了,因为电脑完全依靠路由表来与外界通信,现在路由表被你强行删除了,电脑就傻了,什么都做 ...

  • 两不同网段的路由器,如何互通?三个案例详解

    之前我们详细的了解了交换机之间互通,那么路由器之间如何互通呢?在我们弱电VIP群里就有朋友项目中遇到相关的问题了,不同网段的两个路由器如何互通?这个就需要配置静态路由了. 路由器的桥接功能一般应用在家 ...

  • 多台路由器,不同网段的设备之间如何互访?

    不少人有疑问,说不同网段的两个主机设备如何实现互访?这个通常在网络综合布线和调试中会遇到,我们今天来看下. 我们经常会遇到企业随着员工或部门的增多,增加了一个路由器,分了两个网段,A子网和B子网处于不 ...