系统管理指南:IP 服务

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 添加或修改服务时,请记住以下几点: