跟随报文,开启一段奇妙之旅
摘要:跟随报文,从 windows 主机经过路由器到 linux 主机上溜达一下吧。
本文分享自华为云社区《报文在不同设备的奇妙之旅》,原文作者:鼓瑟吹笙。
简介
在上图中,HostA 的报文转发到 HostB 上,需要报文,从本地网关出发,经过路由器 RouterA,到达 Host B。
Host A:Windows 主机;
Router A:路由器;
Host B:Linux 主机;
让我们从 Host A 的路由表出发,看一下网络不同位置的路由表。在看路由表之前,先了解一下路由的概念,路由是数据通信网络中最基本的要素。路由信息就是指导报文发送的路径信息,路由的过程就是报文中继转发的过程。
路由器/主机通过路由表选择路由,每个路由器/主机中都至少保存着一张路由表。
在主机的路由表中保存着了 IP 配置的路由和接口生成的直连路由。
在路由器的路由表中保存了各种路由协议发现的路由,根据来源不同,路由表中的路由通常可分为以下三类:
链路层协议发现的路由(也称为接口路由或直连路由)。
由网络管理员手工配置的静态路由。
动态路由协议发现的路由。
Host A 上的路由
配置:主机上必须配置本机的 IPV4 地址,子网掩码和默认网关;
网关又称网间连接器、协议转换器。网关在网络层以上实现网络互连,在通俗易懂一点,网关是转发路由的一个设置,如果路由的下一跳是网关,说明路由的下一跳是一个路由器,而不是一个主机;
查看 Windows 在路由表:
第一条路由,由配置的默认网关自动生成的一条路由,掩码为 0.0.0.0,下一跳为默认网关;
网关路由是下一跳为网关的路由,首先明确,网关路由不是一种路由协议,路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。
掩码为 0.0.0.0 的路由统称为默认路由, 要了解默认路由,首先要知道路由转发最长匹配原则,路由查找按位匹配,从前到后,中途出现不匹配的则代表失败,在所有失败前,相同位数最多的路由表项就是下一跳。简单说就是匹配到掩码最长的路由上为转发路由。层层在 IP 树枝往上查找,最终都会找到 0.0.0.0,也就是默认路由。更通俗易懂,就是让那些无法找到非 0 地址的路由,最终有个转发的地方。
了解了上面的概念,可以知道,第一条路由为默认网关路由,功能就是从本机出发的报文,如果目的地址不是本机,直接从默认网关转发出去;
报文的目的地址为 10.1.1.1,不是本机 IP 地址,默认被从网关扔了出去。
Router A 上的路由
路由器上有两个表,一个是位于控制面的路由表,以一个是位于转发面的转发表,为了方便了解转发,我们专门看一下华为路由器的转发表;
在转发表中,可以出接口 GE1/1/1 的配置为
interfaceGE1/1/1
ip address10.1.1.10 255.255.255.0
10.1.1.0/24 为网段路由,目的地址为 IP 地址和掩码相与的结果,下一跳为接口配置的 IP 地址(无任何转发意义,仅有显示意义)。用来将目的地址为同网段的报文从指定接口转发出去。
10.1.1.10/32 为主机路由,目的地址为接口 IP 地址,所有的主机路由掩码都是 32 位,下一跳为环回口地址 127.0.0.1,标识本机有 1.1.1.1 这个地址,对于目的地址为 1.1.1.1 的 IP 报文,是需要送到本机处理的,总结一句话,主机路由用来接收发送给本台设备的报文。
10.1.1.255/32 为子网广播路由, 算法为 IP 地址与取反后的掩码地址进行异或,IP 协议规定网段广播地址所有的本网段的三层接口都需要接收该地址的报文,实际应用中几乎没有任何场景使用到网段广播特性。
RouterA 收到报文后,根据最长匹配原则,查找转发表,发现 10.1.1.0 的网段路由,把报文从 GE1/1/1 转发出去。
Host B 上的路由
Host B 是 Linux 操作系统,它和 Windows 主机有很多相似的地方
1、网关路由:Linux 操作系统需要配置
Linux 上的接口配置
在 ETH0 上,配置的 IP 地址为 10.172.153.72,掩码长度为 24
查看路由表
发现了一个现象:路由表中没有接口路由生成的主机路由。
这是 Linux 系统和路由,Windows 不同的地方。如果是本机 IP 地址,直接命中,不需要查路由表。
再说一个有趣的现象,在 Linux 表中,网关是 0.0.0.0 的路由,说明报文需要在主机内部查找,在转发时,会拿着目的地址去查找 ARP 表单,如果找不到对应的 MAC 地址,报文丢弃。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/02f0524bf7aa42c8a733ac3e4】。文章转载请联系作者。
评论