目标-此使用案例说明了如何为租户设置一个跨越两个计算节点的弹性虚拟交换机 (HR)。
在此使用案例中,您将 CN1 上的 VNIC vnic0 和区域 z1 的 VNIC anet 连接到弹性虚拟交换机 HR,使它们属于同一 L2 网段并且可以在 VXLAN 上彼此相互通信。这些 VNIC 属于租户 tenantA。下图显示了 EVS 设置。
图 6-3 租户的弹性虚拟交换机配置
此图显示了一个具有四个节点且包含以下组件的网络:
两个计算节点(CN1 和 CN2)
CN2 上具有 VNIC anet 资源的区域 z1
CN1 上的 VNIC vnic0
一个充当 EVS 控制器的节点 CONTROLLER
一个充当您需要在其上运行 evsadm 命令的 EVS 管理器的节点 MANAGER
一个用于实现弹性虚拟交换机 HR 的 VXLAN
uplink-port,指定用于 VXLAN 的数据链路
安装必需的 EVS 软件包。有关所需软件包的信息,请参见使用 EVS 时必需的软件包。
在 EVS 设置中,使用在以下组件之间为 evsuser 预先共享的公钥来设置 SSH 验证:
EVS 管理器和 EVS 控制器
每个 EVS 节点和 EVS 控制器
EVS 控制器和每个 EVS 节点
有关更多信息,请参见设置 SSH 验证。
配置 EVS 控制器并设置控制器属性。
在所有计算节点上设置 EVS 控制器,然后设置控制器属性以指定如何跨计算节点实现弹性虚拟交换机。
指定属性 l2-type、vxlan-range 和 uplink-port。否则,您无法创建弹性虚拟交换机。
创建弹性虚拟交换机。您必须关联一个 IPnet 并将 VPort 添加到弹性虚拟交换机中。
在 CN1 上创建一个临时 VNIC,并将该 VNIC 连接到弹性虚拟交换机的 VPort。
在区域 z1 上创建 VNIC anet 并将 VNIC anet 资源连接到弹性虚拟交换机。
设置 EVS 控制器。
MANAGER# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
设置 EVS 控制器属性。
设置必须用于弹性虚拟交换机的 L2 拓扑类型。此示例使用了 VXLAN。
MANAGER# evsadm set-controlprop -p l2-type=vxlan
设置 VXLAN 范围。
MANAGER# evsadm set-controlprop -p vxlan-range=200-300
指定用于 VXLAN 的数据链路 (uplink-port)。
MANAGER# evsadm set-controlprop -p uplink-port=net2
MANAGER# evsadm set-controlprop -h CN2 -p uplink-port=net3
验证 EVS 控制器属性。
MANAGER# evsadm show-controlprop -p l2-type,vxlan-range,uplink-port NAME VALUE DEFAULT HOST l2-type vxlan vlan -- vxlan-range 200-300 -- -- uplink-port net2 -- -- uplink-port net3 -- CN2
为租户 tenantA 创建弹性虚拟交换机 HR。
MANAGER# evsadm create-evs -T tenantA HR
将 IPnet hr_ipnet 添加到弹性虚拟交换机 HR。
MANAGER# evsadm add-ipnet -T tenantA -p subnet=192.168.100.0/24 HR/hr_ipnet
将 VPort vport0 添加到弹性虚拟交换机 HR。
MANAGER# evsadm add-vport -T tenantA HR/vport0
验证为租户 tenantA 创建的弹性虚拟交换机。
MANAGER# evsadm NAME TENANT STATUS VNIC IP HOST HR tenantA -- -- hr_ipnet -- vport0 -- free -- 192.168.100.2/24 --
检查与 HR/vport0 关联的 MAC 地址和 IP 地址。
MANAGER# evsadm show-vportprop -p macaddr,ipaddr HR/vport0 NAME TENANT PROPERTY PERM VALUE DEFAULT POSSIBLE HR/vport0 tenantA ipaddr r- 192.168.100.2/24 -- -- HR/vport0 tenantA macaddr r- 2:8:20:d8:da:10 -- --
检查与弹性虚拟交换机 HR 关联的 VXLAN 网段 ID。
MANAGER# evsadm show-evs -L EVS TENANT VID VNI HR tenantA -- 200
指定 EVS 控制器。
CN1# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
创建临时的 VNIC vnic0 并将其连接到弹性虚拟交换机 HR/vport0。
CN1# dladm create-vnic -t -T tenantA -c HR/vport0 vnic0
验证所创建的 VNIC。
CN1# dladm show-vnic -c LINK TENANT EVS VPORT OVER MACADDRESS VIDS vnic0 tenantA HR vport0 evs-vxlan200 2:8:20:d8:da:10 0
vnic0 的 MAC 地址映射到 VPort 的 MAC 地址。
检查 vnic0 允许的 IP 地址。
CN1# dladm show-linkprop -p allowed-ips vnic0 LINK PROPERTY VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 allowed-ips 192.168.100.2 192.168.100.2 -- --
allowed-ips 属性设置为与 VPort 关联的 IP 地址。此输出意味着您无法在 vnic0 上创建除 192.168.100.2 之外的任何 IP 地址。
为 vnic0 创建 IP 接口,并将 192.168.100.2 指定为 IP 地址。
# ipadm create-ip -t vnic0 # ipadm create-addr -t -a 192.168.100.2 vnic0
检查自动生成的 VXLAN 数据链路。
CN1# dladm show-vxlan LINK ADDR VNI MGROUP evs-vxlan200 0.0.0.0 200 224.0.0.1
指定 EVS 控制器。
CN2# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
为区域 z1 配置 VNIC anet 并将其连接到弹性虚拟交换机。
CN2# zonecfg -z z1 Use 'create' to begin configuring a new zone zonecfg:z1> create create: Using system default template 'SYSdefault' zonecfg:z1> set zonepath=/export/zones/z1 zonecfg:z1> set tenant=tenantA zonecfg:z1> select anet linkname=net0 zonecfg:z1:anet> set evs=HR zonecfg:z1:anet> end zonecfg:z1> commit zonecfg:z1> exit
安装并引导区域 z1。
CN2# zoneadm -z z1 install CN2# zoneadm -z z1 boot
登录到区域 z1 并完成区域配置。
CN2# zlogin -C z1
有关区域配置的更多信息,请参见创建和使用 Oracle Solaris 区域 。
验证所创建的 VNIC anet 资源。
CN2# dladm show-vnic -c LINK TENANT EVS VPORT OVER MACADDRESS VIDS z1/net0 tenantA HR sys-vport0 evs-vxlan200 2:8:20:1a:c1:e4 0
因为未指定 VPort,所以 EVS 控制器将为 VNIC anet 资源创建一个系统 VPort sys-vport0。
显示与 VPort 相关的信息。
CN2# evsadm show-vport -o all NAME TENANT STATUS VNIC HOST MACADDR IPADDR HR/sys-vport0 tenantA used z1/net0 CN2 2:8:20:1a:c1:e4 192.168.100.3/24
VNIC anet 资源已激活并为其指定了 VPort 的 IP 地址。
验证 VNIC anet z1/net0 的 IP 地址。
CN2# zlogin z1 ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok -- -- net0/v4 inherited ok -- 192.168.100.3/24