在 Oracle® Solaris 11.2 中管理网络虚拟化和网络资源

退出打印视图

更新时间: 2014 年 9 月
 
 

使用案例:配置弹性虚拟交换机

目标-此使用案例说明了如何设置一个跨越两个计算节点的弹性虚拟交换机 (EVS1)。

在此使用案例中,您将 CN1 上的 VNIC vnic0 和区域 z1 的 VNIC anet 连接到弹性虚拟交换机 EVS1,使它们属于同一个 L2 网段并且可以在 VLAN 上彼此相互通信。下图显示了跨越两个计算节点的弹性虚拟交换机 (EVS1)。

图 6-2  弹性虚拟交换机配置

image:此图显示了两个计算节点之间的弹性虚拟交换机的配置。

此图显示了一个具有四个节点且包含以下组件的网络:

  • 两个计算节点(CN1CN2

  • CN2 上具有 VNIC anet 资源的区域 z1 (z1/net0)

  • CN1 上的 VNIC vnic0

  • 一个充当 EVS 控制器的节点 (evs-controller.example.com)

  • 一个充当您需要在其上运行 evsadm 命令的 EVS 管理器的节点 (MANAGER)

  • 一个用于实现弹性虚拟交换机 EVS1 的 VLAN

  • uplink-port,指定用于 VLAN 的数据链路


注 -  这四个节点可以都位于一台计算机上。EVS 控制器和 EVS 管理器可以位于同一台计算机上。

规划弹性虚拟交换机设置

  1. 安装必需的 EVS 软件包。

    有关所需软件包的信息,请参见使用 EVS 时必需的软件包


    注 -  evsuser 是在安装 pkg:/service/network/evs 软件包时创建的特定用户。用户 evsuser 指定有“弹性虚拟交换机管理”权限配置文件。此配置文件提供用于执行 EVS 操作的所有授权和特权。
  2. 在 EVS 设置中,使用在以下组件之间为 evsuser 预先共享的公钥来设置 SSH 验证:

    • EVS 管理器和 EVS 控制器

    • 每个 EVS 节点和 EVS 控制器

    • EVS 控制器和每个 EVS 节点

    有关更多信息,请参见设置 SSH 验证


    注 -  该用例假定 controller 属性设置为 EVS 节点、EVS 管理器和 EVS 控制器上的 ssh://evsuser@evs-controller.example.com
  3. 配置 EVS 控制器。

    1. 指定一个计算节点作为网络中的 EVS 控制器,然后在每个计算节点上设置 EVS 控制器,以便这些计算节点可以与 EVS 控制器通信。请注意,您可以从与 EVS 控制器通信的任何计算节点设置控制器属性。有关更多信息,请参见配置弹性虚拟交换机

    2. 指定属性 l2-typevlan-rangeuplink-port。否则,您无法创建弹性虚拟交换机。

  4. 创建弹性虚拟交换机。您必须关联一个 IPnet 并将 VPort 添加到弹性虚拟交换机中。

  5. CN1 上创建一个临时 VNIC,并将该 VNIC 连接到弹性虚拟交换机的 VPort。

  6. 在区域 z1 上创建一个 VNIC anet 资源并将其连接到弹性虚拟交换机。

EVS 管理器操作

  1. 设置 EVS 控制器。

    MANAGER# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
  2. 设置 EVS 控制器属性。

    1. 设置必须用于弹性虚拟交换机的 L2 拓扑类型。

      MANAGER# evsadm set-controlprop -p l2-type=vlan
    2. 设置 VLAN 范围。

      MANAGER# evsadm set-controlprop -p vlan-range=200-300
    3. 指定用于 VLAN 的数据链路 (uplink-port)。

      MANAGER# evsadm set-controlprop -p uplink-port=net2
      MANAGER# evsadm set-controlprop -h CN2 -p uplink-port=net3

    注 -  您可以从数据中心的任何节点配置 EVS 控制器,只要您可以连接到 EVS 控制器并且具有必需的授权即可。有关更多信息,请参见使用 EVS 时的安全要求
  3. 验证控制器属性。

    MANAGER# evsadm show-controlprop -p l2-type,vlan-range,uplink-port
    NAME                VALUE               DEFAULT             HOST
    l2-type             vlan                vlan                --
    vlan-range          200-300             --                  --
    uplink-port         net2                --                  --
    uplink-port         net3                --                  CN2
  4. 创建名为 EVS1 的弹性虚拟交换机。

    MANAGER# evsadm create-evs EVS1
  5. 将 IPnet EVS1_ipnet 添加到 EVS1

    MANAGER# evsadm add-ipnet -p subnet=192.168.100.0/24 EVS1/EVS1_ipnet
  6. 将 VPort vport0 添加到 EVS1

    MANAGER# evsadm add-vport EVS1/vport0

    您无需始终将虚拟端口添加到弹性虚拟交换机。创建 VNIC 时,您只能指定 VNIC 必须连接到的弹性虚拟交换机的名称。在这种情况下,EVS 控制器将生成系统虚拟端口。这些虚拟端口遵循命名约定 sys-vportname,例如 sys-vport0。系统虚拟端口继承弹性虚拟交换机的属性。

  7. 验证所创建的弹性虚拟交换机。

    MANAGER# evsadm
    NAME           TENANT           STATUS    VNIC      IP                      HOST
    EVS1           sys-global       --        --        EVS1_ipnet              --
       vport0      --               free      --        192.168.100.2/24        --

    注 -  因为未指定租户名称,所以弹性虚拟交换机 EVS1 使用缺省的租户名称 sys-global。在创建弹性虚拟交换机时,可以使用 –T 选项指定租户名称。有关更多信息,请参见如何配置弹性虚拟交换机
  8. 检查与 EVS1/vport0 关联的 MAC 地址和 IP 地址。

    MANAGER# evsadm show-vportprop -p macaddr,ipaddr EVS1/vport0
    NAME          TENANT        PROPERTY  PERM   VALUE              DEFAULT   POSSIBLE
    EVS1/vport0   sys-global    ipaddr    r-     192.168.100.2/24   --        --
    EVS1/vport0   sys-global    macaddr   r-     2:8:20:3c:78:bd    --        --

    连接到 vport0 的 VNIC 将继承该 IP 地址和 MAC 地址。为 vport0 指定的 IP 地址是 IPnet EVS1_ipnet 中下一个可用的 IP 地址,而 MAC 地址则是为 vport0 随机生成的。

  9. 检查与弹性虚拟交换机 EVS1 关联的 VLAN ID。

    MANAGER# evsadm show-evs -L
    EVS          TENANT          VID   VNI
    EVS1         sys-global      200   --

计算节点 CN1 操作

  1. 指定 EVS 控制器。

    CN1# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
  2. 创建一个临时 VNIC vnic0 并将其连接到 EVS1/vport0

    CN1# dladm create-vnic -t -c EVS1/vport0 vnic0
  3. 验证所创建的 VNIC。

    CN1# dladm show-vnic -c
    LINK     TENANT         EVS     VPORT       OVER     MACADDRESS        VIDS
    vnic0    sys-global     EVS1    vport0      net2     2:8:20:3c:78:bd   200

    vnic0 的 MAC 地址映射到 VPort 的 MAC 地址。

  4. 检查 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 地址。

  5. vnic0 创建 IP 接口,并将 192.168.100.2 指定为 IP 地址。

    # ipadm create-ip -t vnic0
    # ipadm create-addr -t -a 192.168.100.2 vnic0

计算节点 CN2 操作

  1. 指定 EVS 控制器。

    CN2# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
  2. 为区域 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> select anet linkname=net0
    zonecfg:z1:anet> set evs=EVS1
    zonecfg:z1:anet> end
    zonecfg:z1> commit
    zonecfg:z1> exit
    
  3. 安装并引导区域 z1

    CN2# zoneadm -z z1 install
    CN2# zoneadm -z z1 boot
  4. 登录到区域 z1 并完成区域配置。

    CN2# zlogin -C z1

    有关区域配置的更多信息,请参见创建和使用 Oracle Solaris 区域

  5. 验证所创建的 VNIC anet

    CN2# dladm show-vnic -c
    LINK       TENANT       EVS    VPORT        OVER   MACADDRESS        VIDS
    z1/net0    sys-global   EVS1   sys-vport0   net2   2:8:20:1a:c1:e4   200

    由于您在创建 VNIC anet 资源时未指定 VPort,因此 EVS 控制器将为 VNIC anet 资源创建一个系统 VPort sys-vport0

  6. 显示与 VPort 相关的信息。

    CN2# evsadm show-vport -o all
    NAME            TENANT     STATUS VNIC    HOST MACADDR         IPADDR
    EVS1/sys-vport0 sys-global used   z1/net0 CN2  2:8:20:1a:c1:e4 192.168.100.3/24

    VNIC anet 资源已激活并为其指定了 VPort 的 IP 地址。

  7. 验证 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