IP源路由原理和作用
来源:互联网 发布:美橙互联怎么解析域名 编辑:程序博客网 时间:2024/05/21 16:58
IPv4 option 源路由选项提供了我们这个能力,我们可以决定,数据包如何被发往目的主机。
? 严格源路由选择让路由器必须按照IP列表中的顺序转发,如果转发下一跳不在路由器直连子网中,那么数据包将被丢弃,源主机将收到源路由失败的ICMP消息。严格源路由选项类型值为137。
? 松散源路由选项则对转发路径的要求宽松一些,只要求转发路径能按顺序经过选项中的IP地址列表,可以在列表中的两个IP地址之间经过其他路由器。松散源路由选项类型值为131。
源路由选项结构上和记录路由非常相似,内容上有一些区别:
? 源路由选项的route data区域是一般非空的,是一个由发送端指定的IP地址列表;而记录路由选项在发送前是空的。
? 源路由选项的指针(pointer)指向下一个IP地址;记录路由选项的指针指向的是一个剩余存储空间的起始位置。
数据包到达目的主机时,且指针大小比选项长度小,路由器会将指针指向的IP地址填入数据包的目的IP地址字段,将数据包出接口的IP地址填入到指针指向的位置,然后将指针加4指向下一个IP地址,然后重新发送给这个新的IP地址。然而,如果指针大小比选项长度大,说明,已经到达了列表末尾。这个主机就是最终的目的主机。
数据包含有松散源路由选项,那么数据包转发过程中,如果自己不是目的主机,则会继续转发,不对IP列表进行操作。
最终目的主机收到数据包后,将源路由选项的ip地址列表反向处理后复制到响应数据包的option选项中,实现反向路由。路由过程与上述过程相同。
下面是一个严格源路由选项的使用示例。
R5#ping
Protocol [ip]:
Target IP address: 10.0.0.3
……
Loose, Strict, Record, Timestamp, Verbose[none]: s
Source route: 20.20.20.20 172.16.0.2
……
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
Packet has IP options: Total option bytes= 11, padded length=12
Strict source route: <*>
(20.20.20.20)
(172.16.0.2)
Reply to request 0 (148 ms). Received packet has options
Total option bytes= 12, padded length=12
Strict source route:
(172.16.0.2)
(20.20.20.20)
<*>
End of list
在日常使用中,traceroute仅能获悉去往目的主机的路径,返回的路径却无法确定。
Traceroute巧妙的结合源路由选项,即可获悉发送和返回的两条路径:
如要测试发送和返回的转发路径,发送主机为转发路径的本端,目的主机为转发路径的对端。发送主机将traceroute的目的ip地址设置为自己的ip地址,使用松散源路由选项,源路由设置为转发路径对端的ip地址。由于traceroute的逐跳返回ICMP差错消息的特性结合松散源路由的特性,使得traceroute能返回数据包发送和返回的全部路径。
下面是一个traceroute结合源路由的示例:主机10.0.0.3 发送去往10.0.0.3的ip数据包,源路由设置为 转发路径对端路由器的ip地址 20.20.20.30。从结果可以看到数据包全程经过的路径。
R3#traceroute
Protocol [ip]:
Target IP address: 10.0.0.3
……
Loose, Strict, Record, Timestamp, Verbose[none]: l
Source route: 20.20.20.30
Loose, Strict, Record, Timestamp, Verbose[LV]:
Type escape sequence to abort.
Tracing the route to 10.0.0.3
1 10.0.0.1 8 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route: <*>
(10.0.0.3)
End of list
2 172.16.0.1 92 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route: <*>
(10.0.0.3)
End of list
3 20.20.20.30 132 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route: <*>
(10.0.0.3)
End of list
4 20.20.20.20 208 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route:
(20.20.20.30)
<*>
End of list
5 172.16.0.2 240 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route:
(20.20.20.30)
<*>
End of list
6 10.0.0.3 160 msec
Received packet has options
Total option bytes= 8, padded length=8
Loose source route:
(20.20.20.30)
<*>
End of list
- IP源路由原理和作用
- IP路由和路由表
- IP协议和路由
- 第32章 IP路由原理
- Linux系统中IP路由工作原理
- Linux系统IP路由的工作原理
- NAT和IP路由经验谈
- iproute2源IP路由配置
- 如何理解ip路由和操作linux的路由表
- 无编号IP地址---静态路由和缺省路由
- 如何理解ip路由和操作linux的路由表
- 如何理解ip路由和操作linux的路由表
- 如何理解ip路由和操作linux的路由表
- 如何理解ip路由和操作linux的路由表
- 【ip】显示/操作路由,设备,策略路由和隧道
- 如何理解ip路由和操作linux的路由表
- Linux下配置IP、DNS和路由
- Linux 修改IP、DNS和路由配置
- [设计模式]策略模式
- Uva-10142-Australian Voting
- library sort (图书馆排序)
- java之回调函数
- 国内搞机器学习和数据挖掘的大牛
- IP源路由原理和作用
- vim环境设置和自动对齐
- MFC——CTreeCtrl数据的处理:如何将数据和逻辑分开?
- ibatis 批量插入[类对象]到 oracle 数据库
- OCP-1Z0-053-V12.02-186题
- VM虚拟机如何和主机相连
- 结构体变量分析
- TCP长连接与短连接的区别
- 清空Qtablewiget 表格的内容