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种配置模式:
自动 使用 DHCP 从任何连接的以太网接口获取网络配置(IP 地址、路由器和 DNS)。
不支持接口热插拔和IPMP。手动(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 地址。
数据链路层命令
在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 -