跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中使用虚拟网络 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍了在执行完基本配置之后可对 VNIC 执行的任务。本节包含以下主题:
注 - VNIC 可配置为 VLAN。通过一个类似的子命令 dladm modify-vlan 可以修改已使用 dladm create-vlan 命令创建的直接 VLAN。必须根据要修改 VLAN 还是修改配置为 VLAN 的 VNIC 来使用正确的子命令。对 dladm show-vlan 子命令所显示的 VLAN 使用 modify-vlan 子命令。对 dladm show-vnic 子命令所显示的 VNIC (包括带有 VLAN ID 的 VNIC)使用 modify-vnic 子命令。要修改直接 VLAN,请参见《管理 Oracle Solaris 11.1 网络性能》中的"修改 VLAN"。
以下是两种可用的 VNIC 修改方式:
全局修改,将同时更改特定数据链路上所有 VNIC 的某个属性。使用 -L 选项标识要修改其 VNIC 的底层数据链路。
选择性修改,将修改所选 VNIC 的某个属性。指定要更改其属性的 VNIC,而不是使用 -L 选项标识底层数据链路。
您可以修改以下属性:VLAN ID、MAC 地址和底层链路。修改底层链路意味着将 VNIC 移动到另一个数据链路。以下各节详细讨论了这些修改。
要更改 VNIC 的 VLAN ID,请使用以下命令之一:
dladm modify-vnic -v vid -L datalink
在此命令中,vid 指定为 VNIC 分配的新 VLAN ID。datalink 指的是在其上配置 VNIC 的底层链路。如果该数据链路中仅存在一个 VNIC,可使用此命令语法。无法对已配置有多个 VNIC 的数据链路执行此命令,因为这些 VNIC 都必定具有唯一的 VLAN ID。
dladm modify-vnic -v vid vnic
使用此命令可更改一个数据链路上的多个 VNIC 的唯一 VLAN ID。因为每个 VLAN ID 对于同一数据链路上的 VNIC 都是唯一的,所以,一次只能更改一个 VLAN ID。假设要更改在 net0 上配置的 vnica0、vnicb0 和 vnicc0 的 VLAN ID。应按照以下方式执行操作:
# dladm modify-vnic -v 123 vnica0 # dladm modify-vnic -v 456 vnicb0 # dladm modify-vnic -v 789 vnicc0
dladm modify-vnic -v vid vnic,vnic,[...]
使用此命令可更改作为一个组的多个 VNIC 的 VLAN ID,假设每个 VNIC 位于不同的数据链路上。假设要更改 vnic0、vnic1 和 vnic2 的 VLAN ID。这些 VNIC 分别配置在 net0、net1 和 net2 上。可使用以下命令:
# dladm modify-vnic -v 123 vnic0,vnic1,vnic2
VNIC 具有唯一的 MAC 地址。要修改这些地址,请使用以下任一适用于您特定环境的命令:
dladm modif-vnic -m mac-address vnic
使用此命令可为特定 VNIC 指定特定 MAC 地址。
dladm modif-vnic -m random -L datalink
此命令执行的是全局修改,可更改数据链路上所有 VNIC 的 MAC 地址。系统自动为 VNIC 指定唯一的 MAC 地址。在此命令中,-m random 选项等效于 -m auto 选项。
dladm modif-vnic -m random vnic, vnic,[...]
此命令执行的是选择性的 VNIC 修改。请注意,对于全局修改和选择性修改,-m 选项均需指定为 random。
您可以使用单个命令修改 VNIC 的 VLAN ID 和 MAC 地址。但是,使用命令全局修改多个 VNIC 属性时,务必要小心,因为这可能会导致意外行为。一次更改一个 VNIC 的多个属性要比同时更改一组中所有 VNIC 的多个属性可取。
以下示例显示了在修改 VNIC 的 VLAN ID 和 MAC 地址前后的输出:
# dladm show-vnic vnic0 LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic0 net0 1000 2:8:20:ec:c4:1d random 0 # dladm modify-vnic -m random -v 123 vnic0 # dladm show-vnic vnic0 LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic0 net0 1000 2:8:20:0:1:2 random 123
您可以将一个或多个 VNIC 从一个底层数据链路移动到另一个底层数据链路,而无需删除和重新配置 VNIC。底层链路可以是物理链路、链路聚合或 etherstub。
要成功迁移 VNIC,向其移动 VNIC 的底层数据链路必须能够适用该 VNIC 的数据链路属性。如果不支持这些属性,则迁移失败,系统将通知用户。成功迁移后,在这些 VNIC 仍与网络保持连接的情况下,使用这些 VNIC 的所有应用程序将继续正常运行。
某些与硬件相关的属性在 VNIC 迁移后可能会发生更改,例如数据链路状态、链路速度、MTU 大小等。这些属性的值继承自向其迁移 VNIC 的数据链路。
您还可以全局或选择性地迁移 VNIC。全局迁移即将一个数据链路上的所有 VNIC 均迁移到另一个数据链路。要执行全局迁移,只需指定源数据链路和目标数据链路。以下示例将 ether0 的所有 VNIC 迁移到 net1:
# dladm modify-vnic -l net1 -L ether0
其中
-l datalink 指的是向其迁移 VNIC 的目标数据链路。
-L datalink 指的是在其上配置 VNIC 的原始数据链路。
注 - 目标数据链路必须在源数据链路前面指定。
要执行选择性 VNIC 迁移,请指定要移动的 VNIC。以下示例将 net0 的选定 VNIC 迁移到 net1:
# dladm modify-vnic -l net1 vnic0,vnic1,vnic2
注 - -L 选项仅适用于全局修改。
在迁移一组 VNIC 时,还可以同时修改其 VLAN ID。但是,要指定新 VLAN ID,必须一次迁移一个 VNIC,如下例所示:
# dladm modify-vnic -l net1 -v 123 vnic0 # dladm modify-vnic -l net1 -v 456 vnic1 # dladm modify-vnic -l net1 -v 789 vnic2
迁移对 MAC 地址的影响取决于 VNIC 使用的是否为源数据链路的出厂 MAC 地址。
如果迁移过程中未指定 -m 选项,则在迁移后,出厂 MAC 地址将替换为目标数据链路中随机指定的地址。
如果迁移过程中使用了 -m address 选项,则迁移后会将该地址指定给 VNIC。
随机指定的 MAC 地址在迁移后不受影响并由其各自的 VNIC 保留。
以下示例介绍了如何迁移多个 VNIC。请注意,这些 VNIC 使用的是随机指定的 MAC 地址。因此,这些地址在迁移后不会发生更改。
# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic1 net0 1000 2:8:20:c2:39:38 random 0 vnic2 net0 1000 2:8:20:5f:84:ff random 0 # dladm modify-vnic -l net1 -L net0 # dladm show-vnic vnic0 LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic1 net1 1000 2:8:20:c2:39:38 random 0 vnic2 net1 1000 2:8:20:5f:84:ff random 0
要获取有关您系统上 VNIC 的信息,请使用 dladm show-vnic 命令。
# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE vnic1 net0 1000 Mbps 2:8:20:c2:39:38 random vnic2 net0 1000 Mbps 2:8:20:5f:84:ff random
VNIC 也是数据链路。因此,任何用于显示有关数据链路的信息的 dladm 命令也可用于显示有关系统上 VNIC(如果存在)的信息。例如,dladm show-link 在列表中包含 VNIC。或者,您可以使用 dladm show-linkprop 命令检查 VNIC 的属性。要获取有关某个 VNIC 的属性信息,请在显示链路属性时指定该 VNIC:
# dladm show-linkprop [-p property] vnic
此过程介绍了如何从系统中删除 VNIC 配置。以下步骤假设 VNIC 已连接到区域。您必须在全局区域中执行本过程。
global# zoneadm -z zone halt
注 - 要确定区域所使用的链路,请使用 dladm show-link 命令。
global# zonecfg -z zone remove net physical=vnic
global# dladm delete-vnic vnic
global# zonecfg -z zone boot
示例 2-5 从系统中删除 VNIC
在本示例中,将从 zoneB 和系统中删除 vnic1。
Global# dladm show-link LINK CLASS MTU STATE OVER net0 phys 1500 up -- net2 phys 1500 up -- net1 phys 1500 up -- net3 phys 1500 up -- zoneA/net0 vnic 1500 up net0 zoneB/net0 vnic 1500 up net0 vnic0 vnic 1500 up net1 zoneA/vnic0 vnic 1500 up net1 vnic1 vnic 1500 up net1 zoneB/vnic1 vnic 1500 up net1 Global# zoneadm -z zoneB halt Global# zonecfg -z zoneB remove net physical=vnic1 Global# dladm delete-vnic vnic1 Global# zonecfg -z zoneB reboot