转发一个多点广播数据报。本守护进程仅适用于 AIX 4.2.1 或以后的版本。
/usr/sbin/mrouted [ -p ] [ -c Config_File ] [ -d [ Debug_Level ] ]
mrouted 守护进程是距离向量多广播路由协议(DVMRP)的一种实现,RFC 1075 中有该协议更早版本的说明。 它采用距离向量路由协议(象 RFC 1058 中描述的 RIP)来维护拓扑知识,该协议实现了称作逆向路径组播法的多点广播数据报转发算法。
mrouted 守护进程沿着最短(逆向)路径树转发多点广播数据报,而该最短路径树以数据报起源的子网为根。 多点广播交付树可以看作是向上一步修剪的广播交付树,修剪的目的是为了使树不超出那些包含目的组成员的子网。 因此,数据报不沿着那些没有多点广播组侦听器的分支转发。 多点广播数据报的 IP 生存时间可用来限制多点广播数据报的范围。
为了支持(由不支持 IP 多点广播的(unicast)路由器分开的)子网间的多点广播,mrouted 守护进程包含对隧道的支持,后者是网际间成对的 mrouted 守护进程之间的虚拟点对点链接。 IP 多点广播信息包封装起来以便在隧道中传输,所以这些信息包看起来像典型的在路由器和子网之间传输的单点广播数据报。 在隧道的入口处添加封装,在出口处解封。 缺省情况下,信息包使用 IP-in-IP 协议(IP 协议第 4 号)封装。mrouted 隧道较早的版本使用 IP 源路由,它给某些类型的路由器加重了负载。 本版本不支持 IP 源路由报文封装。
隧道机制允许 mrouted 守护进程为组播建立虚拟网,该虚拟网独立于实际的因特网并且可能跨越多个自治系统。 虚拟网的这种能力仅为了试验性的支持因特网多点广播,推迟对常规路由器(单一广播)的多点广播路由的广泛支持。 mrouted 守护进程存在众所周知的距离向量路由协议的缩放问题,而且不支持分层多点广播路由。
mrouted 守护进程自动地配置以能够在具有多点广播能力的接口上转发(即,有 IFF_MULTICAST 标志集的接口,不包括回送接口),并且通过使用那些接口发现其它可直接获得的 mrouted 守护进程。
如果 mrouted 守护进程有少于两个启用的虚拟接口,则该守护进程不会启动执行,其中虚拟接口(Vif)是物理的具有多点广播能力的接口,或是一个隧道。如果 mrouted 守护进程的虚拟接口都是隧道,则其记录一个警告;这种守护进程的配置将比由更多的直接隧道来替换要好一些。
mrouted 守护进程仅处理多点广播路由;可能会有运行在同 mrouted 守护进程一样的机器上的单一广播路由协议软件。使用隧道,mrouted 守护进程没有必要访问多个物理子网来进行多点广播转发。
-c Config_File | 使用由 Config_File 变量指定的备用配置文件启动 mrouted 命令。
配置入口有五种类型: phyint local-addr [disable] [metric m] [threshold t] [rate_limit b] [boundary (boundary-name|scoped-addr/mask-len)] [altnet network/mask-len] tunnel local-addr remote-addr [ metric m ] [ threshold t ] [ rate_limit b ] [ boundary ( boundary-name | scoped-addr / mask-len )] cache_lifetime ct pruning off | on name boundary-name scoped-addr / mask-len 请参阅 AIX 5L Version 5.2 Files Reference 中的 mrouted.conf 文件以获得更多信息。 |
-d | 设置调试级别。如果没有给定 -d 选项,或者指定调试级别为 0,mrouted
守护进程将从调用终端拆离。否则,它仍然连接到调用终端并且对来自终端的信号作出响应。
如果不带参数给出 -d,调试级别缺省为 2 级。不考虑调试级别的话,mrouted 守护进程总是向系统日志守护进程写警告和错误消息。
非零调试级别有下列作用:
在启动的基础上,mrouted 守护进程把它的进程标识写入 /etc/mrouted.pid。 |
-p | 关闭修剪。缺省情况下是启用修剪。 |
下列信号可以发送到 mrouted 守护进程:
为发送信号的方便,mrouted 守护进程在启动时,把它的进程标识写到 /etc/mrouted.pid 。
kill -USR1 *cat /etc/mrouted.pid*
这产生下列输出:
虚拟接口表 Vif Local-Address Metric Thresh Flags 0 36.2.0.8 subnet: 36.2 1 1 querier groups: 224.0.2.1 224.0.0.4 pkts in: 3456 pkts out: 2322323 1 36.11.0.1 subnet: 36.11 1 1 querier groups: 224.0.2.1 224.0.1.0 224.0.0.4 pkts in: 345 pkts out: 3456 2 36.2.0.8 tunnel: 36.8.0.77 3 1 peers: 36.8.0.77 (2.2) boundaries: 239.0.1 : 239.1.2 pkts in: 34545433 pkts out: 234342 3 36.2.0.8 tunnel: 36.6.8.23 3 16 多点广播路由表(1136 个入口) Origin-Subnet From-Gateway Metric Tmr In-Vif Out-Vifs 36.2 1 45 0 1* 2 3* 36.8 36.8.0.77 4 15 2 0* 1* 3* 36.11 1 20 1 0* 2 3* . . .
在本例中,有四个虚拟接口,这四个虚拟接口连接两个子网和两个隧道上。 没有使用 Vif 3 隧道(没有同级设备地址)。 当前有 Vif 0 和 Vif 1 子网有一些组;隧道永远不会有组。 mrouted 守护进程的这个实例是这样一个例子:在 Vif 0 和 Vif 1 子网上,它负责发送定期的组员身份的查询,该查询由 querier 标志表示。边界列表表示了该接口的地址范围。 在每个接口上也显示了输入输出信息包的号码的计数。
与每一个发出多点广播数据报的子网有关联的是前一个中继路由器的地址(除非子网直接连接)、回到源地址路径的度量、从最后一次收到对该子网的更新起的时间总数、给来自源地址的多点广播分配的输入虚拟接口以及输出虚拟接口的列表。 *(星号)表示输出虚拟接口连接到根植于源地址的广播树的叶上,并且只有在该叶存在目的地组的成员的情况下,来自源地址的多点广播数据报才会转发到输出虚拟接口。
mrouted 守护进程也保留一份内核转发高速缓存表的拷贝。 入口通过 mrouted 守护进程创建和删除。
kill -USR2 *cat /etc/mrouted.pid*
产生下列输出:
多点广播路由高速缓存表(147 个入口) Origin Mcast-group CTmr Age Ptmr IVif Forwvifs 13.2.116/22 224.2.127.255 3m 2m - 0 1 >13.2.116.19 >13.2.116.196 138.96.48/21 224.2.127.255 5m 2m - 0 1 >138.96.48.108 128.9.160/20 224.2.127.255 3m 2m - 0 1 >128.9.160.45 198.106.194/24 224.2.135.190 9m 28s 9m 0P >198.106.194.22
每个入口由源子网号、掩码和目的多点广播组所标识。 CTmr 字段表示口的生命期。当计时器减少到零时,入口从高速缓存表删除。 Age 字段记录了从高速缓存入口最初创建起的时间。 因为如果流量流动的话会刷新高速缓存入口,所以路由入口会变得很旧。 因为如果流量流动的话会刷新高速缓存入口,所以路由入口会变得很旧。 Ptmr 字段在没有修剪向上发送时是一个连字符,或者直到向上修剪将要超时时的时间总数。 Ivif 字段表示给来自源地址的多点广播信息包分配的输入虚拟接口。 每个路由器也保留了一份从邻近的路由器收到的对特定的源和组的修剪数目记录。 对于一个子网,如果任何多点广播树的下行链路中都没有多点广播组的成员,那么向上行路由器发送修剪消息。 它们由虚拟接口号后面的 P 表示。 Forwvifs 字段显示一些接口,属于源组的数据报沿着这些接口转发。 p 表示没有数据报沿着该接口转发。 没有列出的接口是叶子网,该叶子网上没有特定的组成员。 接口中的 b 表示该接口是边界接口,即流量在该接口中的作用域地址上不会被转发。 带有 > 的附加线(比符号大)作为第一个字符为子网中的每个源打印。 一个子网能有许多源。
/etc/mrouted.conf | 包含 mrouted 守护进程的配置信息。 |
/usr/tmp/mrouted.dump | 包含 mrouted 守护进程的内部路由表。 |
/etc/mrouted.pid | 包含 mrouted 守护进程的进程 ID。 |
/usr/tmp/mrouted.cache | 包含 mrouted 守护进程的内部高速缓存表。 |
AIX 5L Version 5.2 Files Reference 中的 /etc/mrouted.conf 文件。