手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

in.routed(1M)

名称

in.routed , routed - 网络路由守护进程

用法概要

/usr/sbin/in.routed [-AdghmnqsStVz] [-T tracefile [-v]]
 [-F net[/mask ][,metric]] [-P params]

描述

在引导时调用守护进程 in.routed(通常称为 routed)以管理网络路由表。它使用路由信息协议、RIPv1 (RFC 1058)、RIPv2 (RFC 2453) 和 Internet 路由器搜索协议 (RFC 1256) 维护内核路由表。RIPv1 协议基于参考 4.3BSD 守护进程。

in.routed 由服务管理工具 (service management facility, SMF) 使用故障管理资源标识符 (fault management resource identifier, FMRI) 进行管理:

svc:/network/routing/route:default

该守护进程侦听 udp 套接字上用于路由信息协议包的 route 服务(请参见 services(4))。此外,它还发送和接收多播路由器搜索 ICMP 消息。如果主机是路由器,则 in.routed 会定期向所有直接连接的主机和网络提供其路由表副本。它还会使用路由器搜索 ICMP 消息通告或请求缺省路由。

启动后(或稍后启用网络接口后),in.routed 将使用 AF_ROUTE 地址族功能查找那些配置到系统中并标记为 "up"(正常运行)的直接连接接口。它会向内核路由表添加必需的接口路由。首次启动后,假如至少有一个接口未禁用 RIP,则 in.routed 将很快从内核表中删除所有已存在的非静态路由。如果内核表中的静态路由具有有效的 RIP 度量,则会保留该路由并将其包含在 RIP 响应中(请参见 route(1M))。

如果存在多个接口(不算回送接口),则将假定主机应在连接的网络中转发包。在新接口上传输 RIP 请求和路由器搜索通告或请求后,守护进程会陷入循环,并从其他主机侦听 RIP 请求和响应以及路由器搜索包。

接收到请求包时,in.routed 会基于其内部表中维护的信息构建格式化回复。生成的响应包包含已知路由列表,每个路由标记有“跃点计数”度量(16 及大于 16 的计数将被视为“无限”)。通告的度量反映与接口相关联的度量(请参见 ifconfig(1M)),因此设置接口度量是控制流量的一种有效方式。

响应路由不包含发出请求的网络中的第一个中继站,以便实现部分水平分割。对来自查询程序(例如 rtquery(1M))的请求的答复将包含完整表。

该守护进程所维护的路由表包含针对每个目标的多个网关的空间,以便快速从出现故障的路由器恢复。假如 RIP 响应包来自当前已识别的多个网关之一,或通告了比至少一个现有网关更好的度量,则将使用接收的响应包更新路由表。

应用更新后,如果指向目标的最佳路由发生了更改,则 in.routed 将记录其表中的更改,并更新内核路由表。内核路由表中的更改会反映在下一批发送的响应包中。如果暂时未调度下一响应,则将发送仅包含最近更改路由的 Flash 更新响应。

除了处理传入包,in.routed 还会定期检查路由表条目。如果某个条目 3 分钟未更新,则会将该条目的度量设置为无限并标记为删除。删除将延迟至使用无限度量通告路由,从而确保在本地 Internet 上传播其无效性。这是毒性逆转的一种形式。

一段时间后,将删除由于 ICMP 重定向消息而添加或更改的内核表路由以最大限度地减少黑洞。如果 TCP 连接超时,则内核会告知 in.routed,它将删除所有通过所涉及网关的重定向路由,延长通过该网关的所有 RIP 路由的时间以允许选择备用路由,并延长任何相关路由器搜索协议缺省路由的时间。

充当互联网络路由器的主机不计成本地每 30 秒向所有直接连接的主机和网络提供一次路由表。这些 RIP 响应将发送到支持广播的网络广播地址、点对点链路上的目标地址以及路由器自身在其他网络上的地址。如果启用了 RIPv2,则将在支持多播的接口上发送多播包。

如果远程接口未收到响应、发送响应时出错或者存在除输入或输出以外的其他错误(请参见 netstat(1M)),则将假定电缆或接口的某个其他部分已断开或损坏,因此相应地需要调整路由。

将以类似的方式处理 Internet 路由器搜索协议。该守护进程提供 RIP 路由时,它还会侦听路由器搜索请求并发送通告。当其静默并侦听其他 RIP 路由时,它会发送请求并侦听通告。该守护进程收到良好的通告后,如果它不是多宿主的,则将停止侦听广播或多播 RIP 响应。它将跟踪多个通告路由器,以便在当前选择的路由器终止后快速恢复。如果搜索到的所有路由器均消失了,则该守护进程将继续侦听 RIP 响应。如果该守护进程是多宿主的守护进程,则将继续使用路由器搜索侦听 RIP 以确保所有接口均已使用。

路由器搜索标准要求通告的缺省“生命周期”为 30 分钟。这意味着如果发生什么情况,客户机也可以在没有良好路由的情况下运行 30 分钟。在命令行中使用 –P rdisc_interval=45 或在 /etc/gateways 文件中使用 rdisc_interval=45 将缺省值减少为 45 秒是一个好主意。请参见 gateways(4)

如果使用路由器搜索(当系统只有一个网络接口且收到路由器搜索通告时,会缺省使用该功能),则内核表中将存在一个缺省路由和若干个数量不定的重定向主机路由。在有多个网络接口的主机上,该缺省路由将只通过其中一个接口。因此,使用 –q 运行的多宿主主机可能需要下面介绍的 no_rdisc 参数。

要支持无法处理 RIPv2 和路由器搜索的“旧版”系统,可以在 /etc/gateways 中使用 pm_rdisc 参数。请参见 gateways(4)

缺省情况下,路由器搜索通告和请求均不能通过点对点链路(例如 PPP)进行发送。Solaris OE 在点对点链路上使用全 1 网络掩码 255.255.255.255。

in.routed 支持“远距离”被动或主动网关的概念。启动此守护进程时,它将读取文件 /etc/gateways 以查找无法只通过路由套接字中的信息进行确定的此类远距离网关、搜索是否某些本地网关是被动的并获取其他参数。标记为主动的网关应该会交换 RIP 包,如果不希望以这种方式指定的网关交换路由信息,则应该将其标记为被动。启动时,通过被动网关的路由将安装在内核的路由表中,而不会包含在传输的 RIP 响应中。

远距离主动网关的处理方式与网络接口一样。RIP 响应将发送到远距离主动网关。如果未收到响应,则会从内核表中删除关联的路由,并通过其他接口通告 RIP 响应。如果远距离网关继续发送 RIP 响应,则将恢复关联的路由。

某些介质不支持广播或多播,而是像传统的共享介质那样运行,例如某些 ATM 网络。在此类介质上,远距离主动网关非常有用。可以在 /etc/gateways 中以一系列“主机”行的形式列出 HIPPI 或 ATM 网络上可访问的所有 RIP 路由器。请注意,在这种情况下通常需要使用 RIPv2 以避免生成推断主机路由列表。

标记为外部的网关也是被动的,但不放在内核路由表中,也不包含在路由更新中。外部条目的功能在于指示另一个路由进程在必要的情况下安装此类路由,并指示不应该由 in.routed 安装其他到达该目标的路由。只有当这两种路由器均知道到达同一目标的路由时才需要此类条目。

选项

下面列出了可用选项。所提供的其他任何参数将被解释成记录 in.routed 操作的文件的文件名。最好使用 –T(如下所述),而不是将跟踪文件的文件名附加到命令中。下面将介绍这些选项的关联 SMF 属性,并可以通过以下形式的命令对其进行设置:

# routeadm -m route:default name=value
–A

即使不关注,也不忽略 RIPv2 验证。要遵循 RFC 2453,此选项是必需的。但是,如果该计算机不关注验证,则将 RIP 用作搜索协议以忽略所有包含验证的 RIPv2 包将毫无意义并中断。此选项等效于将 ignore_auth 属性值设置为 false。

–d

不在后台运行。此选项用于交互使用,不可在 SMF 下使用。

–F net[/mask][,metric]

最大限度地减少传输中通过地址与 net(网络号)/mask(网络掩码)相匹配的接口的路由数,并使用 metric 合成到达此计算机的缺省路由。目的在于通过将多个包含 RIP 信息的大型 UDP 包替换为单个包含“假”缺省路由的小型包,从而减少慢速的点对点链路(例如 PPP 链路)上的 RIP 流量。如果缺少 metric,则会假定使用值 14 以限制“假”缺省路由的传播。此功能较危险,如果使用不谨慎,可能会导致路由循环。另请注意,可以有多个接口与指定的网络号和掩码相匹配。另请参见 –g。使用此选项等效于设置 minimize_routes 属性。

–g

此选项对互联网络路由器使用,提供到达“缺省”目标的路由。此选项等效于 –F 0/0,1,其存在主要源于历史原因。更好的选择是在命令行中使用 –P pm_rdisc 或在 /etc/gateways 文件中使用 pm_rdisc。会将较大的度量与后面的备用度量一起使用,从而减少可能具有危险性的缺省路由的传播。–g(或 –P)选项通常用于连接到 Internet 的网关或使用不会将其路由报告到其他本地路由器的其他路由协议的网关。请注意,由于使用度量 1,因此该功能具有危险性。其使用通常不能解决问题,反而会导致更多的路由循环混乱。使用此选项等效于将 offer_default_route 属性设置为 true。

–h

假如存在指向同一方向的网络路由,此选项将导致无法通告主机或点对点路由。这是一种有限制性的聚合。如果网关所连接到的 LAN 包含其他连接到点对点链路(例如 SLIP)的网关计算机,则此选项非常有用。使用此选项等效于将 advertise_host_routes 属性设置为 false。

–m

使计算机向其主接口通告主机或点对点路由。此选项对多宿主计算机(例如 NFS 服务器)非常有用。仅当服务器足够受欢迎并值得花费成本去生成主机路由时,才应使用此选项。此选项只有在计算机提供了路由信息时才有效,因为存在多个接口。–m 选项将覆盖 –q 选项,在有限范围内通告主机路由。使用此选项等效于将 advertise_host_routes_primary 属性设置为 true。

–n

不在内核中安装路由。缺省情况下,将在内核中安装路由。使用此选项等效于将 install_routes 属性设置为 false。

–P params

等效于将参数行 params 添加到 /etc/gateways 文件中。还可以通过 parameters 属性进行设置。

–q

–s 选项相反。如果只存在一个接口,则此为缺省设置。使用此显式选项时,对于 RIP,该守护进程将始终处于“静默模式”,不会向其他计算机提供路由信息。使用此选项等效于将 quiet_mode 属性设置为 true。

–s

强制 in.routed 提供路由信息。如果存在多个网络接口并且未禁用 RIP 或路由器搜索,并且启用了全局 IPv4 转发(通过 ipadm(1M)),则此为缺省设置。使用此选项等效于将 supply_routes 属性设置为 true。

–S

如果 in.routed 没有用作互联网络路由器,则此选项仅在内核中输入每个互联网络路由器的缺省路由,而不是输入整个路由表。此选项降低了内存要求,但不会降低路由可靠性。此选项用于与仅支持 RIPv1 的旧版 in.routed 兼容。一般不建议使用此选项。使用此选项等效于将 default_routes_only 属性设置为 true。

–t

在前台运行(与 –d 选项一样),记录所接收包的内容(与 –zz 选项一样)。此选项用于与之前版本的 Solaris 兼容,没有 SMF 等效选项。

–T tracefile

将调试级别提高到至少 1 级,并将调试信息附加到跟踪文件中。出于安全性考虑,通常不在跟踪定向到文件时运行 in.routed。使用此选项等效于将 log_file 属性设置为 trace file path

–v

启用调试。与 –z 类似,但 –z 将递增 trace_level,而 –vtrace_level 设置为 1。另外,–v 需要 –T 选项。使用该选项等效于将 debug 属性设置为 true。

–V

显示守护进程版本。

–z

提高调试级别,这会导致在通过 –T 选项或 stdout 指定的跟踪文件中记录更多信息。可以使用 SIGUSR1SIGUSR2 信号或者 rtquery(1M) 命令提高或降低调试级别。

文件

/etc/defaultrouter

如果此文件存在且包含缺省路由器的地址,则系统启动脚本不会运行 in.routed。请参见 defaultrouter(4)

/etc/gateways

包含远距离网关和 in.routed 的一般配置选项的列表。请参见 gateways(4)

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/network/routing

另请参见

ipadm(1M)route(1M)routeadm(1M)rtquery(1M)svcadm(1M)ioctl(2)inet(3SOCKET)defaultrouter(4)gateways(4)attributes(5)icmp(7P)inet(7P)udp(7P)

《Internet Transport Protocols, XSIS 028112, Xerox System Integration Standard》

《Routing Information Protocol, v2》(RFC 2453,STD 0056,1998 年 11 月)

《RIP-v2 MD5 Authentication》(RFC 2082,1997 年 1 月)

《Routing Information Protocol, v1》(RFC 1058,1988 年 6 月)

《ICMP Router Discovery Messages》(RFC 1256,1991 年 9 月)

附注

为实现设计目的,该守护进程在两个方面显著区别于 RFC 2453:

  • 缺省情况下,如果未配置 RIP 验证,则 in.routed 不会丢弃已经验证的 RIPv2 消息。当 RIPv1 侦听器愿意处理已经验证的数据包时,将其删除几乎没有任何好处。在此情况下使用 –A 选项会使 in.routed 遵循 RFC。

  • 即使配置了 RIP 验证,也不会丢弃未经验证的 RIP 请求。转发表并非机密,可以通过测试流量等其他方式推断出。RIP 还是最常见的路由器搜索协议,而主机需要发送查询以得到回复。

in.routed 不会始终检测网络接口中的单向故障,例如输出端失败。