将虚拟交换机或虚拟网络设备添加到域时,可以通过设置 id 属性来指定其设备编号。
primary# ldm add-vsw [id=switch-id] vswitch-name domain-name primary# ldm add-vnet [id=network-id] if-name vswitch-name domain-name
域的每个虚拟交换机和虚拟网络设备都具有唯一的设备编号,该编号在绑定域时分配。如果使用显式设备编号(通过设置 id 属性)添加虚拟交换机或虚拟网络设备,将使用指定的设备编号。否则,系统将自动指定最低的可用设备编号。在这种情况下,分配的设备编号取决于将虚拟交换机或虚拟网络设备添加到系统的方式。当域被绑定时,在 ldm list-bindings 命令的输出中可以看到最终分配给虚拟交换机或虚拟网络设备的设备编号。
以下示例显示 primary 域有一个虚拟交换机 primary-vsw0。此虚拟交换机的设备编号是 0 (switch@0)。
primary# ldm list-bindings primary ... VSW NAME MAC NET-DEV DEVICE DEFAULT-VLAN-ID PVID VID MTU MODE primary-vsw0 00:14:4f:fb:54:f2 net0 switch@0 1 1 5,6 1500 ...
以下示例显示 ldg1 域有两个虚拟网络设备:vnet 和 vnet1。vnet 设备的设备编号是 0 (network@0),vnet1 设备的设备编号是 1 (network@1)。
primary# ldm list-bindings ldg1 ... NETWORK NAME SERVICE DEVICE MAC MODE PVID VID MTU vnet primary-vsw0@primary network@0 00:14:4f:fb:e0:4b hybrid 1 1500 ... vnet1 primary-vsw0@primary network@1 00:14:4f:f8:e1:ea 1 1500 ...
同样,当含虚拟网络设备的域正在运行 Oracle Solaris OS 时,虚拟网络设备具有网络接口 vnetN。但是,虚拟网络设备的网络接口编号 N 不必与虚拟网络设备的设备编号 n 相同。
注意 - Oracle Solaris OS 根据设备编号保留网络接口名称和虚拟交换机或虚拟网络设备之间的映射。如果未将设备编号显式分配给虚拟交换机或虚拟网络设备,当域被解除绑定并且之后再次绑定时,其设备编号可以更改。在这种情况下,由域中正在运行的 OS 分配的网络接口名称也可能会更改现有系统配置,并使现有系统配置无法使用。例如,在从域配置中删除虚拟交换机或虚拟网络接口时,可能会发生这种情况。 |
您不能使用 ldm list-* 命令直接确定与虚拟交换机或虚拟网络设备相对应的 Oracle Solaris OS 网络接口名称。但是,可以使用 ldm list -l 命令输出和 Oracle Solaris OS 的 /devices 下的条目的组合来获取此信息。
在 Oracle Solaris 11 系统上,可以使用 ldm list-netdev 命令查找 Oracle Solaris OS 网络接口名称。有关更多信息,请参见 ldm(1M) 手册页。
以下示例显示 ldm list-netdev 和 ldm list -o network 命令。ldm list -o network 命令显示 NAME 字段中的虚拟网络设备。ldm list-netdev 输出显示 NAME 列中的对应 OS 接口名称。
primary# ldm list -o network ldg1 .... NETWORK NAME SERVICE ID DEVICE MAC MODE PVID VID MTU MAXBW LINKPROP vnet0-ldg1 primary-vsw0@primary 0 network@0 00:14:4f:fa:eb:4e 1 1500 vnet1-ldg1 svcdom-vsw0@svcdom 1 network@1 00:14:4f:f8:53:45 4 1500 PVLAN :400,community primary# ldm list-netdev ldg1 DOMAIN ldg1 NAME CLASS MEDIA STATE SPEED OVER LOC ---- ----- ----- ----- ----- ---- --- net0 VNET ETHER up 0 vnet0 primary-vsw0/vnet0-ldg1 net1 VNET ETHER up 0 vnet1 svcdom-vsw0/vnet1-ldg1 net2 VNET ETHER unknown 0 vnet2 svcdom-vsw1/vnet2-ldg1
要验证 ldm list-netdev 输出是否正确,请从 ldg1 运行 dladm show-phys 和 dladm show-linkprop -p mac-address 命令:
ldg1# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 0 unknown vnet0 net1 Ethernet up 0 unknown vnet1 net2 Ethernet unknown 0 unknown vnet2 ldg1# dladm show-linkprop -p mac-address LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE net0 mac-address rw 0:14:4f:fa:eb:4e 0:14:4f:fa:eb:4e 0:14:4f:fa:eb:4e -- net1 mac-address rw 0:14:4f:f8:53:45 0:14:4f:f8:53:45 0:14:4f:f8:53:45 --
此过程介绍如何在与 net-c 对应的 ldg1 中查找 Oracle Solaris OS 网络接口名称。此示例还显示了查找虚拟交换机而不是虚拟网络设备的网络接口名称的不同之处。在此示例过程中,来宾域 ldg1 包含两个虚拟网络设备:net-a 和 net-c。
primary# ldm list -l ldg1 ... NETWORK NAME SERVICE DEVICE MAC net-a primary-vsw0@primary network@0 00:14:4f:f8:91:4f net-c primary-vsw0@primary network@2 00:14:4f:f8:dd:68 ...
net-c 的虚拟网络设备编号是 2 (network@2)。
要确定虚拟交换机的网络接口名称,请查找虚拟交换机设备编号,n 以 switch@n 表示。
ldg1# uname -n ldg1 ldg1# find /devices/virtual-devices@100 -type c -name network@2\* /devices/virtual-devices@100/channel-devices@200/network@2:vnet1
网络接口名称是冒号后面的条目部分,即 vnet1。
要确定虚拟交换机的网络接口名称,请将 –name 选项的参数替换为 virtual-network-switch@n\*。然后,查找具有名称 vswN 的网络接口。
ldg1# dladm show-phys |grep vnet1 net2 Ethernet up 0 unknown vnet1
# dladm show-linkprop -p mac-address net2 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE net2 mac-address rw 00:14:4f:f8:dd:68 00:14:4f:f8:dd:68 -- --
此示例 MAC 地址与步骤 1 中 net-c 的 ldm list -l 命令的输出匹配。
ldg1# ifconfig vnet1 vnet1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 0.0.0.0 netmask 0 ether 0:14:4f:f8:dd:68