更新时间:2024-01-10
1 邻居发现配置
1.1 邻居发现协议概述
节点 (主机和路由器)使用邻居发现(Neighbor Discovery Protocol,以下简称ND)来确定相连链路上邻居的链路层地址,并迅速删除无效的缓存值。主机也使用邻居发现来寻找进行包转发的邻居路由器。另外,节点使用邻居发现机制,可以主动跟踪哪些邻居是可达的,或者是不可达的,并检测改变的链路层地址。当路由器或到达路由器的路径发生故障时,主机主动寻找正在工作的另一个路由器或另一条路径。
IPv6的邻居发现协议和IPv4的ARP、ICMP路由器发现和ICMP重定向相对应,在IPv4中没有相应的邻居不可达检测机制和协议。
邻居发现支持的链路类型有:点到点、组播、NBMA、共享介质、可变MTU和不对称可达性。邻居发现机制具有以下功能:
(I)路由器发现:主机怎样定位相连链路上的路由器。
(2)前缀发现:主机怎样发现一组地址前缀,这些前缀定义了哪些目的地在相连链路上是在连接的(on-link)。
(3)参数发现:节点怎样了解发送接口的链路参数 (如链路mtu)或网络参数 (如跳数限制值)。
(4)地址自动配置:节点怎样自动配置接口的地址。
(5)地址解析:在给出目的地IP地址的情况下,节点怎样确定在连接(on-link)目的地(例如,邻居)的链路层地址。
(6)下一跳确定:将目的地IP地址映射成邻居IP地址的算法,下一跳可以是路由器或目的地。
(7)邻居不可达检测:节点怎样确定邻居不可达,如果邻居是路由器,可以使用默认路由器。如果邻居既是路由器也是主机,需要再执行地址解析。
(8)重复地址检测:节点怎样确定将要使用的地址没有被另一个节点正在使用。
(9)重定向:路由器怎样通知主机到达目的地的最佳下一跳。
1.1.1地址解析
地址解析是通过节点IP地址解析其链路层地址的过程。通过ND邻居请求和邻居通告报文交互实现。
1.1.1配置一条静态ND缓存
大多数情况下使用动态地址解析,不需要配置静态ND缓存。若必须配置的话,可在全局配置态下配置静态ND缓存,系统将使用该表项将IP地址翻译成链路层地址。下面表格列出了如何配置静态的IP地址/链路层地址映射。
在全局配置态,使用以下命令:
命令
|
目的
|
ipv6 neighbor ipv6address vlan vlanid hardware-address
|
配置一个静态ND缓存,将IPv6地址翻译成链路层地址。
|
1.1.2ND服务配置
邻居发现协议除了用于地址解析之外,还具备其他功能,通过各种邻居发现协议报文交互实现,邻居请求消息(Neighbor Solicitation,简称NS)、邻居通告消息(Neighbor Advertisment,简称NA)、路由器请求消息(Router Solicitation,简称RS)、路由器通告消息(Router Advertisment,简称RA)、重定向消息(Redirect)。
下列命令均在端口配置态下配置:
1.1.2配置本端口DAD(重复地址检测)时发送NS的个数
IPv6端口启动时需要通过DAD(重复地址检测)机制查找链路上是否有重复的IPv6地址存在,通过发送NS消息请求本机IP来实现。
命令
|
目的
|
ipv6 nd dad attempts num
|
本端口进行重复地址检测时发送NS的个数。默认为1
|
1.1.3配置本端口发送的RA消息中的M标志位
"M"标志指示收到RA消息的主机应该使用“有状态自动配置”获得地址。此命令配置本端口发送的RA消息中的M标志位为1。
命令
|
目的
|
ipv6 nd managed-flag
|
本端口发送的RA消息中M标志位。
|
1.1.4配置本端口发送NS的时间间隔以及发送RA消息中的retrans-timer字段
使用该命令同时配置了本交换机在本端口下发送NS消息的时间间隔,同时也配置了本端口下发送的RA消息中的retrans-timer字段。主机根据RA中的retrans-timer字段设置本机的retrans-timer变量。
命令
|
目的
|
ipv6 nd ns-interval milliseconds
|
本端口NS的重发间隔和RA消息中retrans-timer字段。默认1000(ms)
|
1.1.5配置本端口发送的RA消息中的O标志位
"O"标志指示收到RA消息的主机应该使用有状态自动配置来获得其他信息。使用此命令配置本端口发送的RA消息中的O标志位为1。
命令
|
目的
|
ipv6 nd other-flag
|
本端口发送RA消息的O标志位。
|
1.1.6配置端口下发送的RA消息中的前缀
路由器通过RA报文发布地址前缀给网络中的主机,前缀部分加上主机地址部分即可生成完整的单播地址。RA消息中携带前缀选项,主机从该选项中获取IPv6地址的前缀部分以及该前缀的相关参数。
命令
|
目的
|
ipv6 nd prefix {ipv6-prefix/prefix-length | default} [no-advertise | [valid-lifetime
preferred-lifetime [off-link | no-autoconfig | infinite]] ]
|
本端口发送RA消息中的前缀选项内容。
|
1.1.7配置端口下发送RA消息间隔的最大最小值
配置端口发送RA消息间隔的范围,RA消息的发送周期一般不是确定值,而是在一个固定范围内取随机值,这是为了避免网络中流量突涨。
命令
|
目的
|
ipv6 nd ra-interval-range max min
|
本端口发送RA消息间隔的范围。max默认600(s),min默认为max的1/3
|
本端口发送的前三个RA消息的间隔为不超过16秒的随机数,之后的消息之间的间隔在最小传输间隔(缺省为200秒)到最大传输间隔(缺省为600秒)之间的随机数。
1.1.8配置端口下发送RA消息的间隔
默认情况下RA报文是在ra-interval-range设定的范围内选取随机值周期发送,但若用户希望使用特定的发送周期,可通过此命令来设定该值(该值仍被限定在ra-interval-range范围内)。
命令
|
目的
|
ipv6 nd ra-interval interval
|
配置端口发送RA消息间隔。默认不设置
|
1.1.9配置本端口发送的RA消息中的router-lifetime字段的值
RA消息中router-lifetime字段表示“路由器生存周期”,默认为MaxRtrAdvInterval的三倍,即上文命令“ipv6 nd ra-interval-range”中max值的三倍。
命令
|
目的
|
ipv6 nd ra-lifetime seconds
|
本端口发送RA消息中的router-lifetime字段值。默认MaxRtrAdvInterval *3(s)
|
1.1.10配置端口下发送的RA消息中的reachable-time字段,并且配置本端口下所有自动配置的邻居缓存的可达时间
RA消息中的reachable-time表示“邻居可达时间”,默认为0,表示不规定。
命令
|
目的
|
ipv6 nd reachable-time milliseconds
|
本端口发送RA消息中的reachable-time字段值。默认0(ms)
|
1.1.11配置该端口下发送的RA消息中的交换机优先级字段的值
RA消息中router-preference字段表示路由器的优先级,该字段占RA消息中flags域的两位。分为high、medium、low三级,默认为medium。
命令
|
目的
|
ipv6 nd router-preference preference
|
本端口发送RA消息中的router-preference字段值。默认medium
|
1.1.12使该端口停止作为交换机通告的接口
只有“通告接口”才能发送RA消息。“通告接口”是具有组播功能的接口,该接口至少配置了一个单播IP地址,并且它的“AdvSendAdvertisment”标志位的值为TRUE。
vlan端口下配置ipv6 nd suppress-ra表示关闭“通告接口”功能,即将AdvSendAdvertisment标志位设为FALSE。端口下默认不配置该命令。
命令
|
目的
|
ipv6 nd suppress-ra
|
本端口AdvSendAdvertisment标志位值。默认为TRUE
|