跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
无法使用 ipadm create-addr 命令指定 IP 地址。
在 IP 地址配置过程中,显示消息 cannot create address object: Invalid argument provided(无法创建地址对象:提供了无效的参数)。
除了接口,ipadm 命令还可用于配置协议属性,也称为可调参数。ipadm 取代了早期发行版中常用的 ndd 命令来设置可调参数。本节提供了定制选定的 TCP/IP 协议属性的过程和示例。
TCP/IP 属性可以基于接口,也可以是全局性的。属性可以应用于特定接口,也可全局性地应用于区域中的所有接口。全局属性在不同的非全局区域中可以有不同的设置。有关支持的协议属性的列表,请参阅 ipadm(1M) 手册页。
通常情况下,TCP/IP Internet 协议的缺省设置足以使网络正常工作。然而,如果缺省设置对您的网络拓扑来说不够用,可以通过下表中介绍的过程定制这些 TCP/IP 属性。
下表描述了配置协议属性的任务并提供了各自过程的链接。
表 9-2 设置选定的 TCP/IP 属性
|
在传输协议(如 TCP、UDP 和 SCTP)上,端口 1–1023 是缺省的特权端口,只有使用 root 用户权限运行的进程可以绑定到这些端口。通过使用 ipadm 命令,您可以将超出此给定缺省范围的一个端口保留为特权端口。因此,只有 root 进程可以绑定到该端口。对于此过程,使用以下传输协议属性:
smallest_nonpriv_port
extra_priv_ports
# ipadm show-prop -p smallest_nonpriv_port protocol
其中 protocol 是要为其配置特权端口的协议类型,如 IP、UDP 和 ICMP 以及其他协议类型。
在命令输出中,POSSIBLE 字段显示普通用户可以绑定到的端口号范围。如果指定的端口在此范围内,则可以将其设置为特权端口。
# ipadm show-prop -p extra_priv_ports protocol
在命令输出中,CURRENT 字段指示当前哪些端口被标记为特权端口。如果指定的端口不包含在此字段中,则可以将其设置为特权端口。
# ipadm set-prop -p extra_priv_ports=port-number protocol
要将端口添加为特权端口,请键入以下语法。
# ipadm set-prop -p extra_priv_ports+=portnumber protocol
注 - 通过加号 (+) 限定符,您可以将多个端口指定为特权端口。加号限定符使您能够生成这些端口的列表。将此语法与限定符结合使用可将端口逐个添加到列表中。如果您不使用此限定符,则您指定的端口将取代以前被列为特权端口的所有其他端口。
要删除作为特权端口的端口,请键入以下语法。
# ipadm set-prop -p extra_priv_ports-=portnumber protocol
注 - 通过使用减号 (-) 限定符,您可以从当前特权端口列表中删除该端口。使用相同的语法可删除所有额外的特权端口,包括缺省端口。
# ipadm show-prop -p extra_priv_ports protocol
在命令输出中,确保 CURRENT 字段中现在包含指定端口。
示例 9-6 设置特权端口
在本示例中,您将端口 3001 和 3050 设置为特权端口。您还要删除端口 4045,它当前列为特权端口。
在 smallest_nonpriv_port 属性的输出中,POSSIBLE 字段指示端口 1024 是最低的非特权端口,指定端口 3001 和 3050 在可使用的非特权端口范围内。在 extra_priv_ports 属性的输出中,CURRENT 字段下的端口 2049 和 4045 被标记为特权端口。因此,您可以继续将端口 3001 设置为特权端口。
# ipadm show-prop -p smallest_nonpriv_port tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp smallest_nonpriv_port rw 1024 -- 1024 1024-32768 # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 -- 2049,4045 1-65535 # ipadm set-prop -p extra_priv_ports+=3001 tcp # ipadm set-prop -p extra_priv_ports+=3050 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 3001,3050 2049,4045 1-65535 3001,3050 # ipadm set-prop -p extra_priv_ports-=4045 tcp # ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,3001 3001,3050 2049,4045 1-65535 3050
缺省情况下,具有多个接口的系统(也称为多宿主主机)基于路由表中到通信流的目标的最长匹配路由来路由其网络通信流。如果存在多个长度相等的到目标的路由路径,Oracle Solaris 将应用等成本多路径 (ECMP) 算法将通信流量分配到这些路由。
在某些情况下,以这种方式分配通信流量并不合适。可能通过多宿主主机上的一个接口发送了 IP 数据包,但是该主机与该数据包中的 IP 源地址不位于同一子网上。此外,如果传出数据包是对某传入请求(例如 ICMP 回显请求)的响应,则请求和响应可能不经过相同的接口。这种通信流路由配置称为非对称路由。如果您的 Internet 服务提供商按照 RFC 3704 (http://rfc-editor.org/rfc/bcp/bcp84.txt) 中所述实现准入过滤,则非对称路由配置可能导致提供商丢弃传出数据包。
RFC 3704 旨在限制拒绝服务攻击在 Internet 上扩散。为了与它保持一致,必须将您的网络配置为对称路由。在 Oracle Solaris 中,可以通过使用 IP hostmodel 属性满足这一要求。此属性控制通过多宿主主机接收或传送 IP 数据包的行为。
以下过程说明如何使用 ipadm 命令为特定路由配置设置 hostmodel 属性:
# ipadm set-prop -p hostmodel=value protocol
可将该属性配置为以下三个设置之一:
对应于 RFC 1122 中定义的强端系统 (end system, ES) 模型。此设置实现对称路由。
对应于 RFC 1122 中定义的弱 ES 模型。在采用此设置的情况下,多宿主主机使用非对称路由。
通过使用首选路由配置数据包路由。如果路由表中存在多个目标路由,则使用在其上配置传出数据包的 IP 源地址的接口的路由,就是首选路由。如果不存在这样的路由,则传出数据包将使用到数据包的 IP 目标的最长匹配路由。
# ipadm show-prop protocol
示例 9-7 在多宿主主机上设置对称路由
在本示例中,您要在多宿主主机中强制实施所有 IP 通信的对称路由。
# ipadm set-prop -p hostmodel=strong ip # ipadm show-prop -p hostmodel ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv6 hostmodel rw strong -- weak strong, src-priority, weak ipv4 hostmodel rw strong -- weak strong, src-priority, weak