1.路由的分类
1)是否手工配置:
- 手工配置路由表:静态路由
- 自动建立路由表:动态路由
2)目的地址:
- 完整的主机地址:主机路由
- 网络地址:网络路由
- 目的地址(0.0.0.0),子网掩码(0.0.0.0):默认路由
3)出口:
- 网卡eth0:直连路由
- 下一跳gw网关:网关路由
查找路由原则:
- 首先根据目的IP在路由表中匹配“最长掩码匹配原则”
- 其次再根据路由优先级选择
查找路由的步骤:
- 搜索路由表,寻找能与目的IP地址完全匹配的表项。如果找到,则把报文发送给该表项指定的下一站路由器或直接连接的网络接口(取决于标志字段Flags的值)。
- 搜索路由表,寻找能与目的网络号相匹配的表项。如果找到,则把报文发送给该表项指定的下一站路由器或直接连接的网络接口(取决于标志字段Flags的值)。目的网络上的所有主机都可以通过这个表目来处置。
- 搜索路由表,寻找目标地址为default或0.0.0.0的表项。如果找到,则把报文发送给该表项指定的下一站路由器。
原文链接:https://blog.csdn.net/weixin_39915207/article/details/113353317
2.如何看懂路由表?
路由表:当该主机接收到一个报文后,通过查找路由表确定报文的下一跳应该去哪。
Destination | Gateway | Genmask | Iface | explain | |
---|---|---|---|---|---|
0.0.0.0 | 10.0.0.254 | 0.0.0.0 | eth0 | 默认路由 | 将没有被其它路由项匹配的数据包通过eth0接口发送到10.0.0.254。 |
10.0.0.0 | 0.0.0.0 | 255.255.255.0 | eth0 | 网络路由 | 当接收数据表的目标网段为10.0.0.0/24时,通过eth0接口发送出去,通过ARP协议获取目标的MAC地址后通信。 |
169.254.0.0 | 0.0.0.0 | 255.255.0.0 | eth0 | 网络路由 | 当接收数据表的目标网段为169.254.0.0/16时,通过eth0接口发送出去,通过ARP协议获取目标的MAC地址后通信。 |
Destination和Genmask都为0.0.0.0:表示该路由类型为默认路由。
Gateway为0.0.0.0或者*:表示目标地址和当前主机处于同一个网络段内,不需要路由。
3.实例来理解路由与路由表
原文出处:https://blog.csdn.net/chengqiuming/article/details/70139555
下图共有两个不同的网段分别是NetworkA与NetworkB,这两个网段是通过一个路由器(Server A)来进行数据传递,那么当PC01这台主机想要传送数据到PC11时,它的IP数据包该如何传输?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qTycSRtq-1650899738119)(随时记录/6e505f0c-218c-3160-b672-2afe220d517d.png)]
查找过程:
NetworkA(192.168.0.0/24)与NetworkB(192.169.1.0/24)是不同的网段,所以PC01与PC11是不能直接传递数据的。当主机要发送数据时,它主要参考是路由表,分析过程如下。
1、查询IP数据包的目标IP地址
当PC01有IP数据包发送时,主要会查阅IP数据包报头的目标IP地址。
2、查询PC01的路由表
PC01主机会分析自己的路由表,当发现目标IP与本机IP在同一网段,则PC01会直接通过局域网,将数据直接传送到目的主机。
3、查询默认路由
因为PC01与PC11不在同一网络,因此PC01会分析路由表当中是否有其他相符合的路由设置值,如果没有,就直接将IP数据包发送到默认路由当中去,在本应用中,Default Gateway是Server A这台。
4、送出数据包到Default Gateway后,不理会数据包流向
当IP由PC01送给Server A之后,PC01就不理会接下来的工作,而Server A接收到这个数据包后,会依据上面的流程,也分析自己的路由表,然后向后继续传输到正确的目的主机上面。