Solaris 10 与 Solaris 11 网络配置比较

Oracle 向solaris 11的网络堆栈添加了大量新特性。
我们将讨论solaris中的新特性11 网络堆栈,并在适用的情况下将其与 solaris 10 进行比较。

手动网络配置

现在让我们看一个在 solaris 10 和 solaris 11 中配置 IP 地址的示例。

Solaris 10:

# ifconfig e1000g1 plumb
# ifconfig e1000g1 192.168.1.20 netmask 255.255.255.0 up

我们还必须编辑 /etc/hosts、/etc/netmasks、/etc/hostname.e1000g1 文件,以使新 IP 地址保持重启。

Solaris 11:

在配置 IP 地址之前,请确保我们已启用手动 NCP (DefaultFixed)。

# netadm enable -p ncp DefaultFixed
# netadm list

现在我们可以手动配置IP。
ipadm 命令创建要配置的新接口。

# ipadm create-ip net0
# ipadm create-addr -T static -a local=192.168.1.10/24 net0/onitroad
-T specifies either static, dhcp or addrconf (for IPv6) types of addresses.
the string onitroad can be any random string used to identify the interface.
# ipadm
NAME              CLASS/TYPE STATE        UNDER      ADDR
lo0               loopback   ok           --         -
   lo0/v4         static     ok           --         127.0.0.1/8
net0              ip         ok           --         -
   net0/onitroad   static     ok           --         192.168.1.10/24

在solaris 10和solaris 11中IP地址的取消配置如下:

Solaris 10:

# ifconfig unplumb e1000g1

还要删除 /etc/hosts、/etc/netmasks 和 /etc/hostname.e10000g1 中的条目(删除完整文件)。

Solaris 11:

如果是solaris 11,即使我们需要更改接口的IP 地址,也必须重新删除和创建接口。

# ipadm delete-ip net2

网络配置文件

从solaris 11 开始不推荐使用以下网络文件,它由SMF 管理以在重新启动后具有持久网络配置。

/etc/defaultdomain
/etc/dhcp.*
/etc/hostname.*
/etc/hostname.ip*.tun*
/etc/nodename
/etc/nsswitch.conf

网络配置文件

Solaris 11 使用基于配置文件的网络配置。
它有2种配置模式:

  1. 自动 使用 DHCP 从任何连接的以太网接口获取网络配置(IP 地址、路由器和 DNS)。
    不支持接口热插拔和IPMP。

  2. 手动(DefaultFixed NCP)接口需要使用 dladm 和 ipadm 命令手动配置。
    也称为 DefaultFixed NCP。
    支持接口热插拔和IPMP。

要检查 NCP:

# netadm list
TYPE        PROFILE        STATE
ncp         Automatic      disabled
ncp         DefaultFixed   online
loc         Automatic      offline
loc         NoNet          offline
loc         DefaultFixed   online

如我们所见,当前 DefaultFixed 配置文件处于联机状态,而自动配置文件处于禁用状态。

要启用自动 NCP 配置文件:

# netadm enable -p ncp Automatic

启用手动 NCP 配置文件

# netadm enable -p ncp DefaultFixed

IP层命令

ifconfig 命令在solaris 11 中仍然有效,但在solaris 11 中添加了另外2 个命令用于查看接口的IP 地址和MAC 地址。

Solaris 10:

# ifconfig -a
lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 2
        inet 192.168.1.10 netmask ffffff00 broadcast 192.168.1.255
        ether 0:c:29:f6:ef:67

Solaris 11:

# ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    -
net0       ip       ok       yes    -

上面的命令显示了系统中现有的接口。

# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/onitroad      static   ok           192.168.1.10/24

上面的命令向我们显示了分配给接口的 MAC 和 IP 地址。

https://onitroad.com 更多教程

数据链路层命令

在solaris 11 中,dladm show-dev 命令不起作用并被dladm show-phys 命令替换,如下所示。
一个主要变化是,solaris 11 中的每个接口都将被标识为“net#”(例如 net0、net1),它还包括 IPMP 接口(如 ipmp0)。
这有助于接口的热交换,因为操作系统不考虑实际的物理网络设备名称,而是使用“虚名”的概念,如 net0、net1 等。

Solaris 10:

# dladm show-dev
e1000g0         link: up        speed: 1000  Mbps       duplex: full

Solaris 11:

# dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
net0              Ethernet             up         1000   full      e1000g0

Solaris 10:

# dladm show-link
e1000g0         type: non-vlan  mtu: 1500       device: e1000g0

下面输出中的 OVER 列将显示数据链路在哪些物理数据链路上运行(仅适用于 aggr、vlan 等情况)。

Solaris 11:

# dladm show-link
LINK                CLASS     MTU    STATE    OVER
net0                phys      1500   up       -
日期:2020-09-17 00:15:17 来源:oir作者:oir