示例:配置 ICMP 协议以发现其他网络网关
此示例展示如何配置互联网控制消息协议 (ICMP) 路由器广告,以允许 IPv4 主机发现子网上的操作路由器的地址。主机必须先发现路由器,才能在子网之外发送 IP 数据报。
要求
此示例假设本地上的服务器或客户端计算机支持 RFC 1256, 即 ICMP 路由器发现消息。
概述
在主机能够向自身子网外部的主机发送消息之前,必须能够识别即时路由器的地址。这一般是通过在启动时阅读配置文件,在某些组播网络上通过侦听路由协议流量完成。支持 RFC 1256 的本地服务器或客户端计算机需要找到默认网关(路由器)时,服务器或客户端计算机使用 ICMP 发送路由器教唆。支持 RFC 1256 的主机在组播地址 224.0.0.2 上发送 ICMP 路由器发现消息。支持 RFC 1256 的本地网络上支持的路由器会立即响应路由器通告。
所有路由器IP 组播地址 224.0.0.2 是 IPv4 保留的本地 IP 广播地址。范围 224.0.0.0/24(从 224.0.0.0 到 224.0.0.255)的 IPv4 组播地址保留在本地子网中。
ICMP 路由器发现协议 (IRDP) 使用路由器通告和路由器教唆消息,允许主机学习连接到即时网络的路由器的 IP 地址。主机启动时,会发送路由器请求消息以检查即时路由器的地址。
并非所有主机都使用 RFC 1256 中指定的方法执行路由器发现。如果主机已启用 DHCP,则可能无法使用 ICMP 路由器发现。路由器发现的性能是 RFC 1541"动态主机配置协议"中定义的 DHCP 选项之一。此选项用于指定客户端是否使用 RFC 1256 中指定的 ICMP 路由器发现方法请求路由器。值为 1 表示客户端执行路由器发现。值为 0 表示客户端没有。
要将路由器配置为路由器发现服务器,必须在配置中至少包含以下语句。所有其他路由器发现配置语句都是可选的。
[edit] protocols { router-discovery; }
要将路由器配置为 ICMP 路由器发现的服务器,您可以在配置中包括以下语句:
[edit] protocols { router-discovery { disable; address address { (advertise | ignore); (broadcast | multicast); (ineligible | priority number); } interface interface-name { lifetime seconds; max-advertisement-interval seconds; min-advertisement-interval seconds; } traceoptions { file filename <files number> <size size> <world-readable | no-world-readable>; flag flag <detail> <disable>; } } }
配置
程序
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,然后将命令复制并粘贴到 层次结构级别的 CLI 中。 [edit]
set interfaces ge-1/2/0 unit 6 description to-R2 set interfaces ge-1/2/0 unit 6 family inet address 10.0.0.6/24 set protocols router-discovery traceoptions file icmp-log set protocols router-discovery traceoptions flag all set protocols router-discovery interface ge-1/2/0.6 max-advertisement-interval 60 set protocols router-discovery interface ge-1/2/0.6 min-advertisement-interval 10 set protocols router-discovery interface ge-1/2/0.6 lifetime 120 set protocols router-discovery address 10.0.0.6 multicast set protocols router-discovery address 10.0.0.6 priority 900
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航指南CLI,请参阅 Junos OS CLI 指南 中的 在配置模式下使用 CLI编辑器。
要配置 ICMP 路由器发现:
配置网络接口。
此示例显示了用于模拟附加网络的多个环路接口地址。
[edit interfaces] user@R1# set ge-1/2/0 unit 6 description to-R2 user@R1# set ge-1/2/0 unit 6 family inet address 10.0.0.6/24
启用路由器发现。
[edit protocols] user@R1# set router-discovery
(可选)为路由器发现启用追踪操作。
[edit protocols router-discovery] user@R1# set traceoptions file icmp-log user@R1# set traceoptions flag all
(可选)设置播发之间的 IRDP 最大间隔时间。
[edit protocols router-discovery] user@R1# set interface ge-1/2/0.6 max-advertisement-interval 60
(可选)设置播发之间的 IRDP 最小间隔时间。
[edit protocols router-discovery] user@R1# set interface ge-1/2/0.6 min-advertisement-interval 10
(可选)设置播发有效期的 IRDP 期。
[edit protocols router-discovery] user@R1# set interface ge-1/2/0.6 lifetime 120
(可选)将路由器配置为将 10.0.0.6 IP 地址包括到所有主机组播地址 (224.0.0.1) 的 IRDP 播发中。
如果路由器支持 IP 组播,并且接口支持IP 组播, 则组播 为默认设置。否则,地址包含在广播路由器播发数据包中。
[edit protocols router-discovery] user@R1# set address 10.0.0.6 multicast
(可选)将地址的优先级设置为成为默认路由器。
此优先级相对于同一子网上其他路由器地址的优先级设置。
[edit protocols router-discovery] user@R1# set address 10.0.0.6 priority 900
结果
在配置模式下,输入 和 命令以确认 show interfaces
show protocols
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
user@R1# show interfaces
ge-1/2/0 {
unit 6 {
description to-R2;
family inet {
address 10.0.0.6/24;
}
}
}
user@R1# show protocols
router-discovery {
traceoptions {
file icmp-log;
flag all;
}
interface ge-1/2/0.6 {
max-advertisement-interval 60;
min-advertisement-interval 10;
lifetime 120;
}
address 10.0.0.6 {
multicast;
priority 900;
}
}
如果完成设备配置,请从配置 模式输入 commit 。
验证
确认配置工作正常。
检查跟踪日志
目的
验证预期的接口是否正在发送消息。
行动
在操作模式下,输入 show log icmp-log
命令。
user@R1> show log icmp-log Mar 21 14:42:54 trace_on: Tracing to "/var/log/icmp-log" started Mar 21 14:42:54.409027 rdisc_ifa_change: Preference for address 10.0.0.6(ge-1/2/0.6) set to 900 Mar 21 14:43:33.983695 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 22 at 14:43:16 Mar 21 14:43:33.984263 rdisc_server_timer: group ge-1/2/0.6 timer set to 22 Mar 21 14:43:55.985225 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 37 at 14:44:10 Mar 21 14:43:55.985520 rdisc_server_timer: group ge-1/2/0.6 timer set to 37 Mar 21 14:44:32.986407 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 39 at 14:44:44 Mar 21 14:44:32.986961 rdisc_server_timer: group ge-1/2/0.6 timer set to 39 Mar 21 14:45:11.987331 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 10 at 14:44:42 Mar 21 14:45:11.987888 rdisc_server_timer: group ge-1/2/0.6 timer set to 10 Mar 21 14:45:21.990974 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 23 at 14:45:34 Mar 21 14:45:21.991548 rdisc_server_timer: group ge-1/2/0.6 timer set to 23 Mar 21 14:45:44.992150 task_timer_uset: timer RouterDiscoveryServer_Group <Touched Processing> set to offset 45 at 14:46:06 Mar 21 14:45:44.992710 rdisc_server_timer: group ge-1/2/0.6 timer set to 45
意义
日志输出显示,IP 地址 10.0.0.6 的优先级设置为 900,并且消息正在 ge-1/2/0.6 接口上发送。