1、引言
本章主要了解单个IP层如何做出路由决策。
2、选路的原理
IP搜索路由表的步骤:
- 搜索匹配的主机地址
- 搜索匹配的网络地址
- 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,网络号为0)
2.1简单路由表
第一行说明,如果目的地址是140.252.13.65(slip),那么网关(路由器),将把分组转发给140.252.13.35(bsdi)。
路由表标识:
- U :该路由可以使用。
- G:该路由是一个网关(路由器)。如果没有设置此标识,说明是直接相连的。
- H:该路由是一个主机,即,目的地址是一个完整的主机地址。如果没有,说明该路由是一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
- D:该路由是由重定向报文创建的。
- 该路由已被重定向报文修改。
对于G和H标识来说,当某个目的IP地址搜索路由表时,主机地址必须与目的地址完全匹配,而网络地址只需要匹配目的地址的网络号和子网号。
参考计数Refcnt(Reference count)列出的是正在使用路由的活动进程个数。如当前主机与slip建立Telnet连接后,就变1。建立另一个Telnet时,该值增加为2。以此类推。
第3行是默认路由。如果表中没有特定的路由,就发送到路由器140.252.13.33(sun)。即,sun是主机svr4的默认路由。
简述使用上述路由表为主机svr4选择路由:
- 如目的主机sun,140.252.13.33。首先匹配主机地址,主机地址表项(slip和localhost))均不匹配;然后进行网络地址配置,找到140.252.13.32(网络号和子网号),匹配成功,使用emd0接口。此为直接路由,链路层地址将是目的端地址。
- 如目的主机slip,140.252.13.65。先搜索主机地址,并找到一个匹配地址。此为间接路由,因此目的端IP仍然是140.252.13.65,但链路层地址必须是网关140.252.13.65的链路层地址。()
- 通过Internet给主机aw.com发送一份数据报。首先搜索主机地址,失败后进行网络匹配,最好使用默认表项。该路由是间接路由,通过网关140.252.13.33,并使用emd0。
- 给本机发送一份数据报,可使用主机名、主机IP地址、环回名和环回IP地址。
9.5 ICMP重定向差错
- 主机给R1发送数据报。因为R1是主机的默认路由。
- R1收到数据报后,检查路由表,发现R2该数据报的下一站。R1把数据报发送给R2,同时检测到它正在发送的接口与数据报到达的接口是相同的。
- R1发送一份ICMP重定向报文给主机,告诉它数据报发送给R2而不是R1。
9.6 ICMP路由器发现报文
主机在引导后要广播或多播传送一份路由器请求报文。一台或更多路由器响应一份路由器通过报文。路由器定期的广播或多播传送他们的路由器通告报文,允许每个正在监听的主机响应地更新他们的路由表。
优先级值越大说明优先级越高。0x80000000说明对应的地址不能作为默认路由器地址使用。
9.7小结
路由表项内容:5bit标志、目的IP地址(主机、网络和默认)、下一站路由器的IP地址(间接路由)或者本地接口的IP地址(直接路由)及指向本地接口的指针。主机表项比网络表项具有更高的优先级,网络表项比默认表项有更高的优先级。