第九章 IP选路
1.引言
需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。在后一种情况下,主机必须配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃。
2.选路原理
IP搜索路由表的几个步骤:
1) 搜索匹配的主机地址;
2) 搜索匹配的网络地址;
3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。
××匹配主机地址步骤始终发生在匹配网络地址步骤之前。
IP层进行的选路实际上是一种【选路机制】,它搜索路由表并决定向哪个网络接口发送分组。
这区别于【选路策略】,它只是一组决定把哪些路由放入路由表的规则。IP执行选路机制,而路
由守护程序则一般提供选路策略。
简单路由表
netstat -rn
假如有表项: 目的地是A, 网关是B,则代表前往目的地A的包将发送到B处。
路由表标志(Flags字段):
U 该路由可用.
G 该路由通过路由转发与目的地址相连,无此标志表示本机与目的地址是直接相连的.
H 该路由的目的地址为主机地址,无此标志表示目的地址为网络地址.
D 该路由由重定向报文创建.
M 该路由被重定向报文修改.
标识G区别了间接路由和直接路由.有G即为间接路由.发往直接路由的分组包含目的地址的IP和链路层地址.发往间接路由的分组包含目的地址的IP,但链路层地址为间接路由的地址.
3.ICMP主机与网络不可达错误
当路由器收到一份IP数据报但不能转发时,将向原始发送端发送ICMP’主机不可达’差错报文.
4.ICMP重定向差错
如图,主机与R2实际上在同一个局域网下。
1.主机有一份数据要发往R2,但是由于主机的路由表中没有R2的信息,所以数据报发给默认网关R1;
2.R1通过自己的路由表发现R2是该IP数据报的下一站;
3.当R1把数据报发给R2时,发现接收主机数据报使用的端口和发送给R2使用的端口相同(即主机与R2在同一局域网下);
4.R1向主机发送ICMP重定向报文,修改主机的路由表,以后主机直接把数据报发往R2.
ICMP重定向报文的接收者必须查看3个IP地址:
1.导致重定向的地址(即ICMP重定向报文的数据位于IP数据报的首部);
2.发送重定向报文的路由器的IP地址(包含重定向信息的IP数据报中的源地址);
3.应该采用的路由器IP地址(在ICMP报文中的4 ~ 7字节)。
××重定向报文只能由路由器生成,而不能由主机生成。另外,重定向报文是为主机而不是为路由器使用的!