睿诚科技协会

Solaris 11网络如何配置与管理?

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

Solaris 11网络如何配置与管理?-图1
(图片来源网络,侵删)

核心概念

在开始配置前,必须理解以下几个 Solaris 11 网络的核心概念:

  1. 网络数据链路层

    • 这是物理接口(如 net0, net1)的抽象层,它代表了网络硬件驱动程序和与之相关的配置参数(如速度、双工模式、MTU)。
    • 常见的数据链路类型:aggr (聚合链路/LACP), vnic (虚拟网络接口), vlan (虚拟局域网), ibd (InfiniBand) 等。
  2. IP 接口层

    • 这是网络层(IP协议)的抽象,一个 IP 接口通常绑定到一个数据链路上,并拥有一个 IP 地址、子网掩码和 IPv6 地址。
    • IP 接口是你在 Solaris 11 中进行大部分 IP 配置的地方。ip.0 是一个 IP 接口,它通常绑定在 net0 这个数据链路上。
  3. IPMP (IP Multipathing)

    Solaris 11网络如何配置与管理?-图2
    (图片来源网络,侵删)
    • 这是 Solaris 11 中实现高可用性的标准方式,它不再像 Solaris 10 那样依赖于 groupd 守护进程。
    • 工作原理:你创建一个 IPMP 组,然后将多个数据链路(如 net0, net1)加入这个组,你将 IP 地址配置在 测试地址 上,而不是绑定在单个物理接口上。
    • 优点
      • 故障检测:可以快速检测到链路或接口故障。
      • 负载均衡:可以在多个活动接口之间分发流量。
      • 透明切换:当一个接口故障时,IP 流量会自动切换到组内其他健康的接口上,对上层应用和最终用户是透明的。
  4. 虚拟网络接口

    • VNIC (Virtual Network Interface):在物理网络接口(如 net0)上创建的虚拟接口,每个 VNIC 都有自己独立的 MAC 地址和 IP 配置,这是实现网络虚拟化(如 Oracle Solaris Zones)的基础。
    • VLAN (Virtual LAN):在物理接口上创建的 802.1Q 标记的虚拟接口,用于划分不同的广播域。

常用网络管理命令

Solaris 11 引入了一套全新的命令,取代了传统的 ifconfigndd,新的命令都以 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 -rnroute -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 地址。

Solaris 11网络如何配置与管理?-图3
(图片来源网络,侵删)
# 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

故障排除

  1. 网络不通

    • ipadm show-addr: 确认 IP 地址已正确配置且状态为 ok
    • ipadm show-if: 确认接口状态为 up
    • dladm show-phys: 确认物理链路状态为 up,没有 link down 错误。
    • netstat -in: 检查输入/输出包数,判断是否有流量。
    • ping <gateway>: 测试是否能到达网关。
    • snoop -d net0 icmp: 抓包,查看是否有 ICMP 请求/回复。
  2. 服务未启动

    • Solaris 11 的所有网络服务都是 SMF 服务。
    • svcs network/physical:default: 查看物理网络服务状态。
    • svcs network/ipmp:default: 查看 IPMP 服务状态。
    • 如果服务是 disabled,使用 svcadm enable <fmri> 启用它。
    • 如果服务是 maintenance,使用 svcs -xv 查看详细错误原因。
  3. 配置不生效

    • 重启相关服务:对于 DNS、主机名等配置,修改后需要 svcadm refreshsvcadm restart 才能生效。
    • 检查 SMF 属性:使用 svccfg -s <service> listprop 确认属性是否按预期设置。
    • 检查永久性:Solaris 11 的配置默认是永久的,如果只是临时修改,需要确认没有覆盖永久配置。

Solaris 11 的网络管理模型更加现代化和健壮,从 ifconfigipadm 的转变,标志着配置方式从“命令行即时生效”向“SMF 服务持久化”的转变,掌握 数据链路IP 接口IPMP 这三个核心概念,并熟练使用 ipadmdladm 命令,是高效管理 Solaris 11 网络的关键。

分享:
扫描分享到社交APP
上一篇
下一篇