IP数据报转发与ICMP重定向机制

casual72918 2 0 pdf 2024-07-07 10:07:43

IP数据报转发策略

主机通常默认不转发IP数据报,除非被配置为路由器。配置方式通常是通过修改内核变量 ip_forwarding 或类似的变量来实现。

  • 部分系统(如BSD/386 和 SVR4)仅当该变量非零时才转发数据报。
  • SunOS 4.1.x 允许该变量取三个值:
    • -1:始终不转发,且该值不可更改。
    • 0:默认不转发,但当存在两个或更多接口时,自动启用转发。
    • 1:始终转发。
  • Solaris 2.x 使用以下三个值:
    • 0:始终不转发。
    • 1:始终转发。
    • 2:当存在两个或更多接口时才转发。
  • 早期版本的 4.2BSD 主机默认开启数据报转发,这可能导致配置不当的系统出现问题,因此现在大多数系统默认关闭转发功能,除非管理员明确开启。

ICMP 重定向机制

当IP数据报需要由其他路由器转发时,接收路由器会向数据报发送方发送 ICMP 重定向差错报文。

示例:

  1. 主机向默认路由器 R1 发送一个 IP 数据报。
  2. R1 收到数据报后,查询路由表,发现下一跳路由器为 R2。
  3. R1 将数据报发送给 R2 时,发现发送接口与接收接口相同(即主机、R1 和 R2 位于同一局域网)。
  4. R1 向主机发送 ICMP 重定向报文,告知其后续将数据报直接发送给 R2,而非 R1。

图示:

主机 ---->; R1 ---->; R2 ---->; 最终目标
   ↑           |
   |           |
   +-----------+
       ICMP 重定向

结论:

ICMP 重定向机制通过告知主机更优的路由选择,从而优化网络流量。

用户评论
请输入评论内容
评分:
暂无评论