Linux下路由表的转发流程

本文介绍了局域网网关的概念及其重要性,解释了网关必须与局域网在同一网段的原因,以及数据包如何通过路由转发。通过`route`命令查看路由表,并详细解析了路由表的各个字段。路由匹配遵循最长匹配原则,确定数据包的转发路径。此外,还讨论了网关为0.0.0.0时的特殊含义和路由选择策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是局域网的网关

网关需要与局域网同一个网段, 否则,局域网的设备无法获取到网关的mac地址,也就无法进行通信。
数据包到达网关之后, 再通过路由将其转发出去。

使用route查看路由表

在这里插入图片描述
路由表的Destination为目标地址的网络号,
Gateway为网关地址, 如果网关地址为0.0.0.0表示该路由是直连的, 无网关。
Genmask为掩码, 一个目标地址最先经过掩码的操作,得到网络号。掩码为0.0.0.0, 为最差的路由匹配原则,一般为默认路由。
Flags为路由状态, U表示Up, G表示有网关地址。
Metric为度量, 表示路由需要的跃点数。
Iface为对应的网络接口。

路由转发规则

路由匹配算法主要通过最长匹配原则(掩码前缀)
一般来说,255.255.255.0 是最长的匹配原则,匹配之后的网络号会更为精确, 0.0.0.0是最短的匹配原则,也是设备的默认路由

  1. 首先, 目的地址先经过掩码匹配完之后, 会得到一个网络号Destination。 如果有多个路由规则的掩码之后得到的网络号和Destination一样的话,那就看Metric的值; 如果掩码之后的网络号和Destination都不一样的话,则走0.0.0.0的默认路由。
  2. 找到路由之后, 就开始将包往gateway (网关)地址上丢。 ==如果网关为0.0.0.0或者*的话,表示该路由不需要路由,==也就是想要发送的报文将会被该路由规则后面的网口 通过ARP查找目标地址, 然后丢包出去; 相反,如果网关地址为正常ip地址的话,则想要发送的报文会通过该路由规则后面的网口发到此路由的网关地址上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值