系统管理指南:IP 服务

与 IPv6 相关的守护进程

本节讨论与 IPv6 相关的守护进程。

用于相邻节点搜索功能的 in.ndpd 守护进程

in.ndpd 守护进程可实现 IPv6 相邻节点搜索协议和路由器搜索。该守护进程还可实现 IPv6 的地址自动配置功能。下面显示了 in.ndpd 支持的选项。

-d

启用调试功能。

-D

针对特定事件启用调试功能。

-f

指定要从中读取配置数据的文件,而不是缺省的 /etc/inet/ndpd.conf 文件。

-I

列显与每个接口相关的信息。

-n

不回送路由器通告。

-r

忽略收到的包。

-v

指定详细模式,报告各种类型的诊断消息。

-t

启用包跟踪功能。

in.ndpd 守护进程由在 /etc/inet/ndpd.conf 配置文件中设置的参数以及 /var/inet/ndpd_state.interface 启动文件中适用的参数来控制。

如果 /etc/inet/ndpd.conf 文件存在,系统将解析该文件并使用它将节点配置为路由器。表 11–2 列出了此文件中可能出现的有效关键字。当主机引导之后,路由器可能无法立即使用。由路由器通告的包可能会被丢弃,当然,它们可能将无法送达到主机。

/var/inet/ndpd_state.interface 文件是一个状态文件。由每个节点定期更新。当该节点失败并重新启动之后,该节点可以在没有路由器的情况下配置其接口。此文件包含接口地址、上次更新文件的时间以及文件的有效期。此文件还包含从以前的路由器通告中“获知”的其他参数。


注 –

您不必修改状态文件的内容,in.ndpd 守护进程会自动维护状态文件。


有关配置变量和可允许值的列表,请参见 in.ndpd(1M) 手册页和 ndpd.conf(4) 手册页。

用于 IPv6 路由的 in.ripngd 守护进程

in.ripngd 守护进程可实现用于 IPv6 路由器的下一代路由信息协议 (Routing Information Protocol next-generation, RIPng)。RIPng 定义 IPv6 中与 RIP 等效的协议。在使用 routeadm 命令配置 IPv6 路由器并启用 IPv6 路由时,in.ripngd 守护进程可在路由器上实现 RIPng。

下面显示了 RIPng 支持的选项:

-p n

n 指定用于收发 RIPnG 包的备用端口号。

-q

禁止显示路由信息。

-s

强制显示路由信息,即使该守护进程充当路由器也是如此。

-P

禁止使用毒性逆转 (poison reverse)。

-S

如果 in.ripngd 不充当路由器,该守护进程将只输入每个路由器的缺省路由。

inetd 守护进程和 IPv6 服务

启用了 IPv6 的服务器应用程序可以既处理 IPv4 请求又处理 IPv6 请求,也可以仅处理 IPv6 请求。服务器始终通过 IPv6 套接字处理请求。另外,服务器还与相应的客户机使用相同的协议。要为 IPv6 添加或修改服务,请使用服务管理工具 (Service Management Facility, SMF) 中的命令。

要配置 IPv6 服务,必须确保该服务 inetadm 配置文件中的 proto 字段中列出了相应的值:

如果用其他实现来替代 Oracle Solaris : 命令,则必须验证所实现的服务是否支持 IPv6。如果该服务不支持 IPv6,则必须将 proto 值指定为 tcpudpsctp

下面是针对 echo 服务清单运行 inetadm 时生成的配置文件,该服务清单既支持 IPv4 又支持 IPv6,并且在 SCTP 上运行:


# inetadm -l svc:/network/echo:sctp_stream
	SCOPE    NAME=VALUE	  name="echo"
	         endpoint_type="stream"
	         proto="sctp6"
	         isrpc=FALSE
	         wait=FALSE
	         exec="/usr/lib/inet/in.echod -s"
	         user="root"
	default  bind_addr=""
	default  bind_fail_max=-1
	default  bind_fail_interval=-1
	default  max_con_rate=-1
	default  max_copies=-1
	default  con_rate_offline=-1
	default  failrate_cnt=40
	default  failrate_interval=60
	default  inherit_env=TRUE
	default  tcp_trace=FALSE
	default  tcp_wrappers=FALSE

要更改 proto 字段的值,请使用以下语法:


# inetadm -m FMRI proto="transport-protocols"

随 Oracle Solaris : 软件一起提供的所有服务器都只需要一个用来将 proto 指定为 tcp6udp6sctp6 的配置文件项。但是,远程 shell 服务器 (shell) 和远程执行服务器 (exec) 现在由单个服务实例组成,该服务实例要求 proto 值中同时包含 tcptcp6only 值。例如,要为 shell 设置 proto 值,可发出以下命令:


# inetadm -m network/shell:default proto="tcp,tcp6only"

有关写入使用套接字且启用了 IPv6 的服务器的更多详细信息,请参见《编程接口指南》中的“IPv6 extensions to the Socket API”。

在为 IPv6 配置服务时的注意事项

在为 IPv6 添加或修改服务时,请记住以下几点: