路由器的 NDP 及 RIPng 守护程序
ndpd-router [ -r] [ -p] [ -M] [ -O] [ -s] [ -q] [ -g] [ -n] [ -R] [ -S] [ -d] [ -t] [ -v] [ -H ] [ -m ] [ -u port] [ -D max[min[/life]]] [ -P [invlife]/[deplife]] [ -T [reachtim]/[retrans]/[hlim]]
ndpd-router 守护程序管理非内核活动的邻节点发现协议(NDP)。它接收路由器请求并发送路由器公告。它也能够使用 RIPng 协议交换路由信息。
/etc/gateway6 文件为 ndpd-router 提供选项。此文件可以在程序运行时修改。在任何消息的发送、接收前或 HUP 信号的接收时,要将检查这些更改。该文件包含伪指令,每行为一条(以 # 为注释)。文件中所有的 IPv6 地址和前缀必须是数字格式。不允许符号名称。除网关伪指令外,每行以一个关键字开始,由以 key=argument 格式的选项组成。
接口
ndpd-router 守护程序知道 IEEE 及 CTI 点对点接口。ndpd-router 守护程序交换所有已知的带本地链接地址的 UP 接口的信息包。所有接口状态的更改都是可检测的。如果接口关闭或遗失其本机链接地址,将停止该接口上的 NDP 和 PIPng 处理。如果接口启动,则 NDP 和 RIPng 处理已启动。
要发送路由器公告或 RIPng 信息包,或同时发送两者,本地和远程的本地链接地址必须已配置。
对 /etc/gateway6 文件,主要伪指令是:
每个伪指令在下面将有更详细的说明。
设置不同的每个接口选项。
设置在 if 选项后的 option 伪指令的任何值都必须显示在以逗号分隔的列表中。
语法:
option [ if=n1,n2 ] ripin=(y|n),ripout=(y|n|S|R),rtadv=(y|n|min[/max]),flag=[M|O],life=Seconds,reach=Seconds,retrans=Seconds
if=list
interface=list |
如无关键字,选项伪指令为缺省选项。如有接口字段,选项参数只应用于所列出的接口。列表由逗号分隔。您可使用 le* 来匹配全部的 leX 接口。缺省选项必须在 /etc/gateway6 文件的首行。 |
mtu [=mtuval] | 在路由器公告中通告 MTU 的值 mtuval。如无 mtuval 参数,所公告的 MTU 是 MTU 的接口。如 mtuval 为 0,禁止 MTU 公告。 |
ripin=(n|y) | 不侦听(侦听)输入的 RIPng 信息包。不发送(发送)RIPng 信息包。如带 -S 标志,不使用分割范围。如带 -R 标志,使用无有害逆向的分割范围。 |
rtadv=(n|y|min [/max]) | 不发送(发送)路由器公告。如带 min[/max] 选项,在路由器公告间设置时间间隔(以秒计)。 |
flag={M|O} | 在路由器公告中设置状态方式标志。
|
life=Seconds | 设置路由器公告中的路由器生命周期字段(以秒计)。 |
reach=Seconds | 设置路由器公告中的可到达字段(以秒计)。 |
retrans=Seconds | 设置路由器公告中的转发时间间隔字段(以秒计)。 |
定义在路由器公告伪指令中通告的前缀。如无接口的前缀伪指令,路由器公告则包含由该接口的地址列表中推断出的前缀列表。如有前缀伪指令,路由器公告包含由不同前缀伪指令定义的前缀列表(依次)。在内核中,未安装前缀。如有格式为 prefix=none 的前缀伪指令,则未公告前缀列表。
语法:
prefix if=n prefix=(none|xxx::/PrefixLength) flag=[L][A] valid=Seconds deprec=Seconds
if=Interface或 interface=Interface | 指定伪指令应用的接口。if 关键字对 prefix 伪指令是必须的。它不是选项。 |
prefix=xxx::/PrefixLength | 公告前缀。 |
flag=[L][A] | 为前缀设置 L 和/或 A 标志(缺省为 LA)。 |
deprec=Seconds | 为前缀设置不建议使用的时间(以秒计)。 |
valid=Seconds | 为前缀设置有效时间(以秒计)。 |
为输入的(filter=in)或输出的(filter=out)RIPng 信息包定义过滤模式。每个接口都设有输入和输出过滤器,没有显式过滤器的接口则有缺省的输入和缺省的输出过滤器。
针对接口的输入过滤器,对任何接收到的 RIPng 信息进行测试,或者若没有输入过滤器,则针对缺省的输入过滤器。静态接口的路由可看作是来自接口和来自网关的输入信息,该网关带有接口的本地链接地址。由网关伪指令设置的带有 gateway 关键字的路由可视为来自指定接口和网关的输入信息。缺省路由(-g 标志)和由网关伪指令设置的不带 gateway 关键字的路由可视为来自网关 :: 的输入信息并且无接口(缺省输入过滤器应用)。
针对接口的输出过滤器,对任何发送的 RIPng 信息进行测试,或者若没有输出过滤器,则针对缺省的输出过滤器。
每个过滤器是匹配模式的序列。这些模式依次被测试。每个模式可以测试前缀长度、输入过滤器的源网关以及测试前缀(由零填充)是否匹配固定前缀。如果一个模式包含多个测试描述,匹配是所有测试的连接。第一个匹配模式定义要执行的操作。如果没有模式匹配,缺省操作是 accept。可能的操作有 accept、reject 和 truncate/NumberOfBits。truncate/NumberOfBits 操作意味着:如果模式匹配且前缀长度大于或等于 NumberOfBits,则则接受带有新的长度 NumberOfBits 的前缀。可接受前缀立即被接受,换而言之,不再针对过滤器检查。
例如,以下伪指令禁止从任何不带显式输出过滤器的接口发送主机路由:
filter=out length==128 action=reject
语法:
filter=(in|out) [if=n1,n2] prefix=xx::/NumberOfBits gateway=xxx length=(=|>=|<=|<|>)NumberOfBits action=(accept|reject|truncate/xx)
if=list 或 interface=list | 如无接口关键字,过滤器伪指令为缺省选项。如有接口字段,过滤模式被添加在所有指定接口过滤器的末尾。列表由逗号分隔。例如,您可指定 interface=le* 来指定所有 leX 接口。 |
prefix=xxx::/NumberOfBits | 仅当 xxx::/NumberOfBits 为 RIPng 信息包前缀的前缀时,模式才匹配。 |
gateway=xxx | 仅当 RIPng 消息来自源地址 xxx 时,输入过滤器中的模式才匹配。 |
length=(=|>=|<=|<|>)NumberOfBits | 仅当 RIPng 消息的前缀长度等于(或者大于、小于等等,这取决于所指定运算符)NumberOfBits 时,模式才匹配。 |
action=(accept|reject|truncate/NumberOfBits) | 如果模式匹配,指定要执行的操作:接受消息、拒绝消息或接受但是截断前缀到 NumberOfBits 位。 |
网关伪指令允许用户在 RIPng 信息包中和/或在内核中设置路由。这些伪指令必须出现在 /etc/gateway6 文件的末尾,在其它伪指令之后。
语法:
xxx::/NumberOfBits metric Value
xxx::/NumberOfBits metric Value gateway IPv6Address ifname
第二条语法用于添加路由到内核中。
以下是关于 /etc/gateway6 文件的示例。
在某一站点,此处所有的地址都是 5f06:2200:c001:0200:xxxx 的格式,以下示例意味着只有一个描述所有站点的路由,它在所有已配置的通道接口(CTI)ctiX 接口上被导出。关键字缩写显示是有效的。
filt=out if=cti* pref=5f06:2200:c001:0200::/64 len=>=64 act=trunc/64
设置缺省的输出路由:
::/0 metric 2 gateway 5f06:2200:c102:0200::1 cti0
声明任何带有 RIPng 的 CTI 接口活动定义一个缺省路由:
filter=in if=cti* act=trunc/0
下列示例定义带有外部连接 cti0 的站点,它通过 ctiX 聚集其它已连接的站点,并使用无有害逆向的分割范围。由于所有的过滤器描述适用于 cti0,行的次序很重要。
option if=cti* ripout=R filter=out if=cti0 prefix=5f06:2200::/24 len=>=24 act=trunc/24 filt=out if=cti* pref=5f06:2200:c001:0200::/64 len=>=64 act=trunc/64 filter=in if=cti0 act=trunc/0 filter=in if=cti* prefix=5f06:2200::/24 len=>=24 act=trunc/64 filter=in if=cti* act=reject
所有错误被记录在 daemon.err 级别,除非设置了调试选项。这包括 /etc/gateway6 文件中的所有语法错误和不同路由器间的配置的错误匹配。
ndpd-router 对以下信号有响应:
SIGINT | 如果定义了系统日志,则转储其当前状态至系统日志。否则,转储至标准输出。 |
SIGHUP | /etc/gateway6 文件被再次读取。 |
SIGUSR1 | 递增冗长。 |
SIGUSR2 | 冗长重新设置。 |
SIGTERM | 重新设置为合理的状态并停止。 |
SIGQUIT | 重新设置为合理的状态并停止。 |
/etc/gateway6 |
ifconfig 命令、kmodctrl 命令、mobip6reqd 命令、mobip6ctrl 命令、rc.mobip6 命令、route 命令、autoconf6 命令、ndpd-host 命令。
《AIX 5L V5.2 系统管理指南:通信与网络》中的『移动式 IPv6 章节』。