ICMP 路由器发现协议(IRDP)使主机可以决定当作缺省网关使用的路由器地址。IRDP 的使用与 ES-IS 相类似,但其应用于 IP。
路由器发现使用 ICMP 路由器通告及路由器请求信息,允许主机发现子网上运作的路由器地址。主机必须在他们发送数据包到外网前发现路由器。路由器发现允许主机发现子网上运行的路由器地址。
每一个路由器周期性地从每一个组播接口发送一个路由器通告,宣布接口的 IP 地址。主机听取通告,发现邻近的路由器地址。当一个主机开始时,它就可以发送一个组播路由器请求,申请一个即时通告。
路由器发现信息并不构成路由协议,它们使主机能够发现邻近路由器的存在,但不能决定哪个是最好的达到特定的目的地的路由器。
协议结构
ICMP 路由器广告信息:
| 8 | 16 | 32bit |
| Type | Code | Checksum |
| Num addrs | Addr Entry Size | Life Time |
| Router address 1 | ||
| Preference Level 1 | ||
| … | ||
IP 字段:
- Source Address ― IP 地址,信息发送接口。
- Destination Address ― 配置的广告地址或相邻主机的 IP 地址。
- Time-to-Live ― 如果目标地址为 IP 组播地址,值是1,否则生存期至少为1。
ICMP 字段:
- Type ― 9
- Code ― 0
- Checksum ― 计算校验和时,Checksum 字段设置为0。
- Num Addrs ― 信息中广告的路由器地址号。
- Addr Entry Size ― 具有32位字信息的每个路由器地址号(本协议中是2)。
- Lifetime ― 路由器有效时间最大值。
- Router Address[i] ― 在发送信息的 i = 1..Num Addrs 接口发送路由器的 IP 地址。
- Preference Level[i] ― 每个路由器地址[i] i = 1..Num Addrs 作为缺省路由器地址,与同一子网中的其它路由器相关。
ICMP 路由器请求信息:
| 8 | 16 | 32bit |
| Type | Code | Checksum |
| Reserved | ||
P 字段:
- Source Address ― IP 地址,信息发送接口,可能为0。
- Destination Address ― 配置的请求地址。
- Time-to-Live ― 如果目标地址为 IP 组播地址,值是1,否则生存期至少为1。
ICMP 字段:
- Type ― 10
- Code ― 0
- Checksum ― 计算校验和时,Checksum 字段设置为0。
- Reserved ― 设置为0,接收端忽略。
组织来源:IRDP 由 IETF(http://www.ietf.org)定义在 RFC 1256中。
相关链接:
http://www.javvin.com/protocol/rfc1256.pdf:ICMP Router Discovery Messages
http://www.javvin.com/protocol/rfc792.pdf:Internet Control Message Protocol
http://www.javvin.com/protocol/rfc2463.pdf:ICMPv6 for the Internet Protocol Version 6 (IPv6) Specification


