目的:了解单个 IP 层如何做出路由决策。
选路的原理
路由表中包含的信息决定了 IP 层所作的所有决策。
IP搜索路由表的步骤:
1) 搜索匹配的主机地址
2)搜索匹配的网络地址
3) 搜索默认表项
IP层进行的选路实际上是一种选路机制,他搜索路由表并决定向哪个网络接口发送分组。
简单路由表
使用 netstat -rn 打印出的五个标志 (flag) 对应的说明:
1)U:该路由可以使用。
2)G:该路由是一个网关(路由器),如果没有设置该标志,说明目的地址是直接相连的。直接路由和间接路由的区别在于,发往直接路由的分组中不但具有指明目的端的 IP 地址,还具有其链路层地址;分组被发往一个间接路由是,IP 地址指明的是最重的目的地址,但是其链路层指明的是网关(即下一站路由器)。
3)H:该路由是一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
4)D:该路由是由重定向报文创建的。
5)M:该路由由已被重定向报文修改。
初始化路由表
每当初始化一个接口时,就为接口自动创建一个直接路由,到达主机或者网路的路由不是直接相连的,那么就必须加入路由表。
常用方法是在系统引导时显示的在初始化文件中运行 route 命令。
例 :
route add default sun 1
其中第三个参数代表目的端,第四个参数代表网关(路由器),最后一个参数代表路由的度量,当度量大于一时要为该路由设置 G 标志。
ICMP 主机与网络不可达差错
当路由器收到一份 IP 数据报但又不能转发时,就要发送一份 ICMP “主机不可达”差错报文。
ICMP 重定向差错
当 IP 数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送 ICMP 重定向差错报文给 IP 数据报的发送端。ICMP 重定向允许 TCP/IP 主机在进行选路时不需要具备智能特性,而把所有智能特性放在路由器端。
ICMP 重定向报文格式:类型、代码、检验和、应该使用的路由器 IP 地址、IP 首部+原始 IP 数据报中的数据前8字节。不同代码代表不同意义。0:网络重定向;1:主机重定向;2:服务类型和网络重定向;3:服务类型和主机重定向。
ICMP 重定向报文的接收者必须查看三个 IP 地址:(1)导致重定向的 IP 地址。(2)发送重定向报文的路由器的 IP 地址。(3)应该采用的路由器 IP 地址。
网友评论