在 Oracle VM Server for SPARC 虚拟网络中使用基于链路的 IPMP
虚拟网络设备和虚拟交换机设备支持网络堆栈的链路状态更新。默认情况下,虚拟网络设备会报告其虚拟链路(到虚拟交换机的 LDC)的状态。默认情况下将启用此配置,不需要您执行其他配置步骤。
有时可能需要检测物理网络链路状态更改。例如,如果已将物理设备分配给虚拟交换机,即使从虚拟网络设备到其虚拟交换机设备的链路是连通的,从服务域到外部网络的物理网络链路也可能断开。在这种情况下,可能需要获取物理链路状态并将其报告给虚拟网络设备及其堆栈。
可以使用 linkprop=phys-state 选项为虚拟网络设备以及虚拟交换机设备配置物理链路状态跟踪。如果启用此选项,则当虚拟设备(虚拟网络或虚拟交换机)作为域中的接口创建时,它会根据物理链路状态报告其链路状态。您可以使用标准 Oracle Solaris 网络管理命令(例如 dladm 和 ifconfig)来检查链路状态。此外,链路状态也记录在 /var/adm/messages 文件中。
对于 Oracle Solaris 10,请参见 dladm(1M) 和 ifconfig(1M) 手册页。对于 Oracle Solaris 11,请参见 dladm(1M)、ipadm(1M) 和 ipmpstat(1M) 手册页。
注 -您可以在 Oracle VM Server for SPARC 系统上同时运行不识别链路状态和识别链路状态的 vnet 和 vsw 驱动程序。但是,如果打算配置基于链路的 IPMP,则必须安装识别链路状态的驱动程序。如果打算启用物理链路状态更新,请同时将 vnet 和 vsw 驱动程序升级到 Oracle Solaris 10 1/13 OS,并且至少运行 Logical Domains Manager 1.3 版。
如何配置物理链路状态更新
此过程展示如何为虚拟网络设备启用物理链路状态更新。
也可以按照类似的步骤操作并指定 ldm add-vsw 和 ldm set-vsw 命令的 linkprop=phys-state 选项来启用虚拟交换机设备的物理链路状态更新。
注 -仅当虚拟交换机设备本身作为接口创建时,才需要使用 linkprop=phys-state 选项。如果指定了 linkprop=phys-state 且物理链路断开,则虚拟网络设备会将其链路状态报告为断开,即使与虚拟交换机的连接是连通的也是如此。由于 Oracle Solaris OS 当前未提供接口来报告两种不同的链路状态,例如虚拟链路状态和物理链路状态,因此会发生这种情况。
启用虚拟设备的物理链路状态更新。
您可以通过以下方式来启用虚拟网络设备的物理链路状态更新:
运行 ldm add-vnet 命令时,通过指定 linkprop=phys-state 创建虚拟网络设备。
指定 linkprop=phys-state 选项可配置虚拟网络设备以获取物理链路状态更新并将其报告给堆栈。
注 -如果指定了 linkprop=phys-state 且物理链路断开(即使与虚拟交换机的连接是连通的),则虚拟网络设备会将其链路状态报告为断开。由于 Oracle Solaris OS 当前未提供接口来报告两种不同的链路状态,例如虚拟链路状态和物理链路状态,因此会发生这种情况。
# ldm add-vnet linkprop=phys-state if-name vswitch-name ldom
以下示例启用在逻辑域 ldom1 上连接到 primary-vsw0 的 vnet0 的物理链路状态更新。
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1
运行 ldm set-vnet 命令时,通过指定 linkprop=phys-state 修改现有虚拟网络设备。
# ldm set-vnet linkprop=phys-state if-name ldom
以下示例启用逻辑域 ldom1 上 vnet0 的物理链路状态更新:
# ldm set-vnet linkprop=phys-state vnet0 ldom1
要禁用物理链路状态更新,请运行 ldm set-vnet 命令指定 linkprop=。
以下示例禁用逻辑域 ldom1 上 vnet0 的物理链路状态更新:
# ldm set-vnet linkprop= vnet0 ldom1
示例 8-5配置基于链路的 IPMP
以下示例说明如何在启用和不启用物理链路状态更新的情况下配置基于链路的 IPMP:
以下示例在域中配置两个虚拟网络设备。每个虚拟网络设备连接到服务域中的独立虚拟交换机设备,以使用基于链路的 IPMP。
注 -未在这些虚拟网络设备上配置测试地址。此外,使用 ldm add-vnet 命令创建这些虚拟网络设备时,您不需要执行其他配置操作。
下列命令将虚拟网络设备添加到域。请注意,由于未指定 linkprop=phys-state,因此只监视与虚拟交换机链路的状态更改。
# ldm add-vnet vnet0 primary-vsw0 ldom1
# ldm add-vnet vnet1 primary-vsw1 ldom1
以下命令在来宾域中配置虚拟网络设备并将其分配给 IPMP 组。请注意,未在这些虚拟网络设备上配置测试地址,原因是正在使用基于链路的故障检测。
Oracle Solaris 10 OS:使用 ifconfig 命令。
# ifconfig vnet0 plumb
# ifconfig vnet1 plumb
# ifconfig vnet0 192.168.1.1/24 up
# ifconfig vnet1 192.168.1.2/24 up
# ifconfig vnet0 group ipmp0
# ifconfig vnet1 group ipmp0
Oracle Solaris 11 OS:使用 ipadm 命令。
请注意,net0 和 net1 分别为 vnet0 和 vnet1 的 Oracle Solaris 11 虚名。
# ipadm create-ip net0
# ipadm create-ip net1
# ipadm create-ipmp ipmp0
# ipadm add-ipmp -i net0 -i net1 ipmp0
# ipadm create-addr -T static -a 192.168.1.1/24 ipmp0/v4addr1
# ipadm create-addr -T static -a 192.168.1.2/24 ipmp0/v4addr2
以下示例在域中配置两个虚拟网络设备。每个域连接到服务域中的独立虚拟交换机设备,以使用基于链路的 IPMP。虚拟网络设备也配置为获取物理链路状态更新。
请注意,net0 和 net1 分别为 vnet0 和 vnet1 的 Oracle Solaris 11 虚名。
Oracle Solaris 10 OS:使用以下命令:
# ldm add-vnet linkprop=phys-state vnet0 primary-vsw0 ldom1
# ldm add-vnet linkprop=phys-state vnet1 primary-vsw1 ldom1
Oracle Solaris 11 OS:使用以下命令:
# ldm add-vnet linkprop=phys-state net0 primary-vsw0 ldom1
# ldm add-vnet linkprop=phys-state net1 primary-vsw1 ldom1
注 -虚拟交换机必须分配有物理网络设备,域才能成功绑定。如果域已绑定而没有为虚拟交换机分配物理网络设备,则 ldm add-vnet 命令将失败。
以下命令创建虚拟网络设备并将其分配给 IPMP 组:
Oracle Solaris 10 OS:使用 ifconfig 命令。
# ifconfig vnet0 plumb
# ifconfig vnet1 plumb
# ifconfig vnet0 192.168.1.1/24 up
# ifconfig vnet1 192.168.1.2/24 up
# ifconfig vnet0 group ipmp0
# ifconfig vnet1 group ipmp0
Oracle Solaris 11 OS:使用 ipadm 命令。
请注意,net0 和 net1 分别为 vnet0 和 vnet1 的虚名。
# ipadm create-ip net0
# ipadm create-ip net1
# ipadm create-ipmp ipmp0
# ipadm add-ipmp -i net0 -i net1 ipmp0
# ipadm create-addr -T static -a 192.168.1.1/24 ipmp0/v4addr1
# ipadm create-addr -T static -a 192.168.1.2/24 ipmp0/v4addr2