第9章 IP选路
9.1 引言
选路是IP最重要的功能之一。需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生(此时需要配置为路由器)。
9.2 选路的原理
路由表搜索顺序
- 搜索匹配的主机地址
- 搜索匹配的网络地址
- 搜索默认表项
路由表标志
| 标志 | 含义 |
|---|---|
| U | 路由可用 |
| G | 网关(间接路由) |
| H | 主机路由 |
| D | 由重定向创建 |
| M | 被重定向修改 |
路由表项内容
- 目的IP地址(主机或网络)
- 下一跳路由器IP地址
- 标志(U、G、H、D、M)
- 参考计数(Refcnt)
- 使用计数(Use)
- 网络接口
9.3 ICMP主机与网络不可达差错
当路由器无法转发IP数据报时,发送ICMP主机不可达差错报文(类型3,代码1)。
9.4 转发或不转发
- 内核变量
ipforwarding控制是否转发 - 默认值:0(不转发)
- 设置为1:作为路由器
各系统实现
| 系统 | ipforwarding 取值 |
|---|---|
| BSD/386 | 0=不转发,1=转发 |
| SunOS | -1=禁止,0=默认,1=转发 |
| Solaris | 0=不转发,1=转发,2=多接口时转发 |
9.5 ICMP重定向差错
重定向过程
- 主机发送数据报给R1(默认路由器)
- R1发现应走R2
- R1转发数据报给R2
- R1发送ICMP重定向给主机
重定向类型
| 代码 | 描述 |
|---|---|
| 0 | 网络重定向 |
| 1 | 主机重定向 |
| 2 | 服务类型和网络重定向 |
| 3 | 服务类型和主机重定向 |
重定向条件
- 出接口 = 入接口
- 路由不能被ICMP重定向创建或修改
- 数据报不能用源站选路
- 内核配置为可发送重定向
主机接收重定向的检查
- 新路由器必须直接相连
- 重定向必须来自当前路由器
- 不能让自己作为路由器
- 被修改路由必须是间接路由
9.6 ICMP路由器发现报文
路由器请求(类型10)
- 主机引导时发送
- 最多发送3次,间隔3秒
路由器通告(类型9)
- 路由器定期发送(450-600秒)
- 生存期:30分钟
- 包含优先级和地址列表
9.7 小结
IP选路按主机→网络→默认顺序搜索。ICMP重定向和路由器发现是动态选路机制。