终端路由表详解
<p>主机,服务器和网络设备一样,也存在一张路由表,这张表在数据转发时,起着非常重要的作用,今天通过一个案例,和大家一起认识一下主机路由表。</p><h2>认识主机路由表</h2>
<p><img src="data/attachment/forum/202509/04/201320jz2siobl2tsd3doo.jpg" alt="" title="案例拓扑" /></p>
<p>服务器(终端)通过双网卡接入网络:无线网卡接入互联网,配置有默认网关;VMnet8接入公司内网,没有配置默认网关,每块网卡的地址配置如图所示。</p>
<p>在主机上,通过命令netsh int ipv4 show route可以查看路由表信息,</p>
<p><img src="data/attachment/forum/202509/04/201705dm7tox7kgacxgusk.jpg" alt="" /></p>
<p>主机路由表和网络设备的路由表组织结构基本一样,</p>
<p>【类型,跃点数,路由前缀/前缀长度,索引,网关/输出接口】,</p>
<p>其中<strong>跃点数</strong>(1-9999)相当于网络设备路由表的Metric值;<strong>网卡索引</strong>是系统为不同网卡分配的编号,在配置静态路由的时候引用;<strong>网关/输出接口</strong>为路由的下一跳IP地址或输出转发接口。</p>
<p>我们给网卡配置的IP地址,子网掩码,实际上是在主机路由表中添加对应网段的<strong>直连路由。</strong></p>
<h2>主机路由表的作用</h2>
<p>通常我们认为终端在转发数据时,首先用<strong>源,目IP</strong>分别与网卡配置的子网掩码做逻辑“与”操作,看二者结果是否相同:</p>
<p>相同,说明源,目IP在同一子网,然后发送ARP报文,直接请求目标IP对应的MAC地址;</p>
<p>不同,说明源,目IP不在同一子网,然后发送ARP报文,请求网关IP对应的MAC地址。</p>
<p>然后完成数据的二层封装,进行转发。</p>
<hr />
<p><strong>Note</strong>:主机网卡上配置的默认网关实际上是在路由表中,添加一条默认路由。如果网卡上没有配置网关IP,则可以通过在路由表中手动配置默认路由实现相同功能。</p>
<p><strong>其实不然</strong>,实际上终端在转发数据时,也会基于<strong>目标IP地址</strong>查找本地路由表:</p>
<p>如果匹配路由的【网关/接口名称】是具体网卡,说明匹配直连网段路由,发送ARP报文,直接请求目标IP对应的MAC地址;</p>
<p>如果匹配路由的【网关/接口名称】是具体IP地址,发送ARP报文,请求该IP地址对应的MAC地址,</p>
<p>然后为数据包添加二层以太网头部,进行转发。</p>
<hr />
<p>案例中,办公内网使用的是172.16.100.0/24的IP地址段,由于在连接内网的网卡上没有配置默认网关,因此需要在主机上手动添加内网网段的路由信息,以管理员身份运行CMD,具体命令如下:</p>
<p>route add 172.16.100.0 mask 255.255.255.0 192.168.234.254 -p</p>
<p>其中192.168.234.254是内网网卡的网关IP地址,-p表明添加的路由是永久路由,即使主机重启,该路由依然存在。</p>
<p>我们再次查看服务器的路由表,刚才添加的路由条目已经存在。</p>
<p><img src="data/attachment/forum/202509/04/203416qlnn3qbbx3tg3rrn.jpg" alt="" /></p>
<hr />
<p>现在在主机上访问172.16.100.100,可以正常通信,说明刚才手动添加的路由信息可以指导数据的转发。</p>
<p><img src="data/attachment/forum/202509/04/203508pu3w22j03yp0pp3n.jpg" alt="" /></p>
谢谢分享,讲得实用:loveliness:
页:
[1]