网络配置是“永久性”的,并且与底层物理接口解耦,这意味着你配置的是 IP 地址,而不是 eth0 或 net0 这样的物理接口,即使硬件更换或重启,配置也会保留。

核心概念
在开始配置前,必须理解以下几个 Solaris 11 网络的核心概念:
-
网络数据链路层
- 这是物理接口(如
net0,net1)的抽象层,它代表了网络硬件驱动程序和与之相关的配置参数(如速度、双工模式、MTU)。 - 常见的数据链路类型:
aggr(聚合链路/LACP),vnic(虚拟网络接口),vlan(虚拟局域网),ibd(InfiniBand) 等。
- 这是物理接口(如
-
IP 接口层
- 这是网络层(IP协议)的抽象,一个 IP 接口通常绑定到一个数据链路上,并拥有一个 IP 地址、子网掩码和 IPv6 地址。
- IP 接口是你在 Solaris 11 中进行大部分 IP 配置的地方。
ip.0是一个 IP 接口,它通常绑定在net0这个数据链路上。
-
IPMP (IP Multipathing)
(图片来源网络,侵删)- 这是 Solaris 11 中实现高可用性的标准方式,它不再像 Solaris 10 那样依赖于
groupd守护进程。 - 工作原理:你创建一个 IPMP 组,然后将多个数据链路(如
net0,net1)加入这个组,你将 IP 地址配置在 测试地址 上,而不是绑定在单个物理接口上。 - 优点:
- 故障检测:可以快速检测到链路或接口故障。
- 负载均衡:可以在多个活动接口之间分发流量。
- 透明切换:当一个接口故障时,IP 流量会自动切换到组内其他健康的接口上,对上层应用和最终用户是透明的。
- 这是 Solaris 11 中实现高可用性的标准方式,它不再像 Solaris 10 那样依赖于
-
虚拟网络接口
- VNIC (Virtual Network Interface):在物理网络接口(如
net0)上创建的虚拟接口,每个 VNIC 都有自己独立的 MAC 地址和 IP 配置,这是实现网络虚拟化(如 Oracle Solaris Zones)的基础。 - VLAN (Virtual LAN):在物理接口上创建的 802.1Q 标记的虚拟接口,用于划分不同的广播域。
- VNIC (Virtual Network Interface):在物理网络接口(如
常用网络管理命令
Solaris 11 引入了一套全新的命令,取代了传统的 ifconfig 和 ndd,新的命令都以 ip 开头,并且通常需要 root 权限。
| 功能 | 传统命令 (Solaris 10) | 新命令 (Solaris 11) |
|---|---|---|
| 查看接口状态 | ifconfig -a |
ipadm show-if |
| 查看接口地址 | ifconfig -a |
ipadm show-addr |
| 配置静态 IP | ifconfig plumb ... |
ipadm create-addr ... |
| 配置 DHCP | ifconfig dhcp |
ipadm create-addr -T dhcp ... |
| 管理数据链路 | dladm |
dladm (此命令未变,但用法更关键) |
| 查看路由表 | netstat -rn |
netstat -rn 或 route -p show |
| 查看 DNS | cat /etc/resolv.conf |
svccfg -s network/dns:default listprop |
| 查看所有网络服务 | svcs network |
svcs -a | grep network |
常见网络配置任务
查看当前网络配置
检查所有网络接口和地址。
# 查看所有网络接口(数据链路层) dladm show-phys # 查看所有 IP 接口 ipadm show-if # 查看所有已配置的 IP 地址 ipadm show-addr
配置静态 IP 地址
假设你要为名为 net0 的数据链路配置一个静态 IP 地址。

# 1. 确保接口存在并处于 "up" 状态 ipadm show-if net0 # 2. 在 net0 上创建一个静态 IPv4 地址 # -a: 指定地址类型 (static) # -T: 指定地址族 (v4 或 v6) # -p: 指定属性,如 "addr=192.168.1.100/24" ipadm create-addr -a static -T v4 -p addr=192.168.1.100/24 net0/v4addr # 3. 验证配置 ipadm show-addr # 输出应包含类似以下内容: # ADDROBJ TYPE STATE ADDR # ----------------------------------------------------------------- # net0/v4addr static ok 192.168.1.100/24
配置 DHCP 客户端
将一个接口设置为通过 DHCP 获取 IP 地址。
# 在 net0 上创建一个 DHCP 地址 ipadm create-addr -a dhcp -T v4 net0/dhcpaddr # 验证是否获取到地址 ipadm show-addr # 你会看到 DHCP 分配的地址信息
配置默认网关
在 Solaris 11 中,网关的配置也通过 SMF 服务进行。
# 设置默认网关 route -p add default 192.168.1.1 # 验证路由表 netstat -rn | grep default # 输出: default 192.168.1.1 UG 0 0 0 net0
配置 DNS
DNS 的配置通过 network/dns SMF 服务管理。
# 查看当前 DNS 配置 svccfg -s network/dns:default listprop # 设置 DNS 服务器 svccfg -s network/dns:default svc:/network/dns:default> setprop config/nameserver = astring: "8.8.8.8 8.8.4.4" svc:/network/dns:default> exit # 刷新服务以应用更改 svcadm refresh network/dns:default # 验证 /etc/resolv.conf 是否已更新 cat /etc/resolv.conf
配置主机名
主机名也由 SMF 服务管理。
# 查看当前主机名 hostname # 设置永久主机名 svccfg -s system/identity:node setprop config/nodename = astring: "solaris11-host" # 重启相关服务 svcadm restart system/identity:node # 验证 hostname
创建链路聚合
为了提高带宽和可用性,可以将多个物理网卡聚合在一起。
# 假设你有 net0 和 net1 两个网卡 # 1. 创建一个聚合,使用 LACP 协议 dladm create-aggr -l net0 -l net1 aggr1 # 2. 验证聚合状态 dladm show-aggr # 应该显示 aggr1 及其成员 net0, net1 的状态 # 3. 在聚合上配置 IP 地址 ipadm create-addr -a static -T v4 -p addr=192.168.1.101/24 aggr1/v4addr
配置 IPMP
这是实现网络高可用的标准方法。
# 假设你有 net0 和 net1 两个网卡,并且它们连接到了同一个交换机 # 1. 创建一个 IPMP 组 ipadm create-ipmp -a net0,net1 ipmp0 # 2. 在 IPMP 组上配置一个测试地址 # 测试地址用于探测组内其他成员的可达性,它本身不用于数据传输 ipadm create-addr -a static -T v4 -p addr=10.0.0.1/24 ipmp0/testaddr # 3. 配置一个用于数据传输的“在用地址” # 这个地址可以配置在组内任何一个活动接口上,或者直接配置在 IPMP 组上 ipadm create-addr -a static -T v4 -p addr=192.168.1.102/24 ipmp0/v4addr # 4. 验证 IPMP 状态 ipmpstat -an # 输出会显示 IPMP 组、成员接口的状态和测试地址信息
配置 VNIC (用于 Zones)
当你需要在 Oracle Solaris Zone 中拥有独立的网络接口时,会创建 VNIC。
# 假设你有一个名为 aggr1 的聚合链路 # 1. 在 aggr1 上创建一个 VNIC dladm create-vnic -l aggr1 -v 100 vnic100 # 2. 为这个 VNIC 分配 IP 地址 ipadm create-addr -a static -T v4 -p addr=192.168.1.110/24 vnic100/v4addr # 3. 将这个 VNIC 分配给一个 Zone # (假设 Zone 已经创建,名为 my-zone) zonecfg -z my-zone zonecfg:my-zone> add net zonecfg:my-zone:net> set physical=vnic100 zonecfg:my-zone:net> end zonecfg:my-zone> exit
故障排除
-
网络不通
ipadm show-addr: 确认 IP 地址已正确配置且状态为ok。ipadm show-if: 确认接口状态为up。dladm show-phys: 确认物理链路状态为up,没有link down错误。netstat -in: 检查输入/输出包数,判断是否有流量。ping <gateway>: 测试是否能到达网关。snoop -d net0 icmp: 抓包,查看是否有 ICMP 请求/回复。
-
服务未启动
- Solaris 11 的所有网络服务都是 SMF 服务。
svcs network/physical:default: 查看物理网络服务状态。svcs network/ipmp:default: 查看 IPMP 服务状态。- 如果服务是
disabled,使用svcadm enable <fmri>启用它。 - 如果服务是
maintenance,使用svcs -xv查看详细错误原因。
-
配置不生效
- 重启相关服务:对于 DNS、主机名等配置,修改后需要
svcadm refresh或svcadm restart才能生效。 - 检查 SMF 属性:使用
svccfg -s <service> listprop确认属性是否按预期设置。 - 检查永久性:Solaris 11 的配置默认是永久的,如果只是临时修改,需要确认没有覆盖永久配置。
- 重启相关服务:对于 DNS、主机名等配置,修改后需要
Solaris 11 的网络管理模型更加现代化和健壮,从 ifconfig 到 ipadm 的转变,标志着配置方式从“命令行即时生效”向“SMF 服务持久化”的转变,掌握 数据链路、IP 接口 和 IPMP 这三个核心概念,并熟练使用 ipadm 和 dladm 命令,是高效管理 Solaris 11 网络的关键。
