跳过导航链接 | |
退出打印视图 | |
配置和管理 Oracle Solaris 11.1 网络 Oracle Solaris 11.1 Information Library (简体中文) |
Oracle Solaris 可以让单个接口拥有多个 IP 地址。例如,使用网络多路径 (network multipathing, IPMP) 之类的技术,可以将多个网络接口卡 (network interface card, NIC) 连接到同一 IP 链路层。此链路可以具有一个或多个 IP 地址。此外,启用了 IPv6 的系统上的接口具有一个链路本地 IPv6 地址,至少具有一个 IPv6 路由地址,并且至少一个接口具有 IPv4 地址。
当系统启动事务时,应用程序便会对 getaddrinfo 套接字发出调用。getaddrinfo 将搜索可能在目标系统上使用的地址。然后,内核将设置此列表的优先级,以便找到包的最佳目标。此过程称为目标地址排序。然后,如果确定了包的最佳目标地址,Oracle Solaris 内核将选择相应的源地址格式。此过程称为地址选择。有关目标地址排序的更多信息,请参见 getaddrinfo(3SOCKET) 手册页。
仅启用了 IPv4 的系统和启用了双栈 IPv4/IPv6 的系统必须执行缺省地址选择。大多数情况下,不需要更改缺省地址选择机制。但是,您可能需要更改地址格式的优先级,以便支持 IPMP 或首选使用 6to4 地址格式等。
以下过程介绍如何修改地址选择策略表。有关 IPv6 缺省地址选择的概念性信息,请参阅ipaddrsel 命令。
注意 - 如果不是出于下一个任务中提到的某些原因,请不要更改 IPv6 地址选择策略表。策略表构造不正确可能会导致网络出现问题。请确保保存了策略表的副本(如下一过程所示)。 |
# ipaddrsel # Prefix Precedence Label ::1/128 50 Loopback ::/0 40 Default 2002::/16 30 6to4 ::/96 20 IPv4_Compatible ::ffff:0.0.0.0/96 10 IPv4
# cp /etc/inet/ipaddrsel.conf /etc/inet/ipaddrsel.conf.orig
针对 /etc/inet/ipaddrsel 中的各项使用以下语法:
prefix/prefix-length precedence label [# comment ]
下面是一些常见的对策略表的修改:
为 6to4 地址指定最高优先级。
2002::/16 50 6to4 ::1/128 45 Loopback
6to4 地址格式现在具有最高优先级 50,而先前优先级为 50 的回送现在的优先级变为 45。其他地址格式保持不变。
指定与特定目标地址进行通信的特定源地址。
::1/128 50 Loopback 2001:1111:1111::1/128 40 ClientNet 2001:2222:2222::/48 40 ClientNet ::/0 40 Default
对于仅有一个物理接口的主机,此特定项非常有用。此处,2001:1111:1111::1/128 是发往网络 2001:2222:2222::/48 中目标的所有包的首选源地址。优先级 40 使得源地址 2001:1111:1111::1/128 的优先级高于为接口配置的其他地址格式。
IPv4 地址优先于 IPv6 地址。
::ffff:0.0.0.0/96 60 IPv4 ::1/128 50 Loopback . .
IPv4 格式 ::ffff:0.0.0.0/96 的优先级已从缺省的 10 更改为 60,这是表中的最高优先级。
ipaddrsel -f /etc/inet/ipaddrsel.conf
# ipaddrsel -d
编辑 /etc/inet/ipaddrsel.conf 文件时,所做的任何修改即使在重新引导系统之后也都会保留下来。如果希望已修改的策略表仅存在于当前会话中,请执行以下过程。