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

退出打印视图

更新时间: 2014 年 9 月
 
 

配置 EVS 控制器

必须只配置一个计算节点作为网络中的 EVS 控制器,然后在每个 EVS 节点上设置 EVS 控制器,以便 EVS 节点可以与 EVS 控制器通信。但是,您只需要从可与 EVS 控制器通信的任何节点设置一次 EVS 控制器的属性。可以使用 evsadm set-controlprop 命令设置 EVS 控制器的属性。有关更多信息,请参见如何配置 EVS 控制器

也可以重置 EVS 控制器的属性。Example 6–2 说明了如何重置 EVS 控制器的属性。有关 EVS 控制器及其属性的信息,请参见 EVS 控制器

要简化弹性虚拟交换机的配置,您需要以 evsuser 身份进行连接。在安装必需的 EVS 软件包 (service/network/evs) 时,将创建一个特殊用户 evsuser,并向其指定“弹性虚拟交换机管理”权限配置文件。此配置文件包含执行 EVS 操作的所有授权和特权。要使用 evsuser,您需要按如下所示设置 controller 属性:

# evsadm set-prop -p controller=ssh://evsuser@evs-controller-hostname-or-IP-address

此外,您还必须使用在运行 evsadm 命令的主机与 EVS 控制器之间预先共享的公钥来设置 SSH 验证。


注 -  要执行 EVS 操作,您需要是超级用户,或者具有“弹性虚拟交换机管理”权限配置文件的用户。有关更多信息,请参见使用 EVS 时的安全要求

设置 SSH 验证

您需要采用具有预先共享的公钥的 SSH 验证,使 evsadm 命令能够以非交互模式安全地与 EVS 控制器通信。在 EVS 设置中,需要使用在以下组件之间为 evsuser 预先共享的公钥来设置 SSH 验证:

  • EVS 管理器和 EVS 控制器-将在 EVS 管理器上运行 evsadm 命令的管理员或用户的公钥附加到 EVS 控制器上的 /var/user/evsuser/.ssh/authorized_keys 文件中。

  • EVS 节点和 EVS 控制器-将每个 EVS 节点上的 root 用户的公钥附加到 EVS 控制器上的 /var/user/evsuser/.ssh/authorized_keys 文件中。需要附加这些公钥的原因是 zoneadmd 守护进程以 root 用户的身份运行。该守护进程连接到 EVS 控制器,并检索 VNIC anet 资源的配置信息。有关更多信息,请参见 zoneadmd(1M) 手册页。

  • EVS 控制器和 EVS 节点-将 EVS 控制器上的 evsuser 的公钥附加到每个 EVS 节点上的 /var/user/evsuser/.ssh/authorized_keys 文件,因为 EVS 控制器将与每个 EVS 节点进行通信来设置 VPort 属性。

下图显示了设置 EVS 组件之间的 SSH 验证。

图 6-1  EVS 设置中的 SSH 验证

image:该图显示了设置 EVS 组件之间的 SSH 验证。

设置 SSH 验证后,需要指定 EVS 控制器。假定 controller 属性设置为 EVS 节点、EVS 管理器和 EVS 控制器上的 ssh://evsuser@evs-controller.example.com

以下过程说明如何设置 SSH 验证。

如何在 EVS 节点和 EVS 控制器之间设置 SSH 验证

  1. 成为管理员。

    有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 在 EVS 节点中生成一个 RSA 密钥对。
    evs-node# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    a0:64:de:3d:c8:26:59:cb:4a:46:b9:1d:17:04:7d:bf root@evs-node
  3. 将公钥从 EVS 节点中的 /root/.ssh/id_rsa.pub 文件复制到 EVS 控制器中的 /var/user/evsuser/.ssh/authorized_keys 文件。
  4. 从 EVS 节点以 evsuser 的身份登录 EVS 控制器,以验证是否设置了 SSH 验证。
    evs-node# ssh evsuser@evs-controller
    The authenticity of host 'evs-controller (192.168.100.10)' can't be established.
    RSA key fingerprint is 73:66:81:15:0d:49:46:e0:1d:73:32:77:4f:7c:24:a5.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'evs-controller' (RSA) to the list of known hosts.
    Last login: Wed Jun 11 14:36:28 2014 from evs-controller
    Oracle Corporation      SunOS 5.11      11.2    April 2014
    evsuser@evs-controller$ 

    该输出显示您可以从 EVS 节点以 evsuser 身份登录 EVS 控制器,而不需要使用口令。

如何在 EVS 管理器和 EVS 控制器之间设置 SSH 验证

  1. 成为管理员。

    有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 在 EVS 管理器中生成一个 RSA 密钥对。
    evs-manager# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    a0:64:de:3d:c8:26:59:cb:4a:46:b9:1d:17:04:7e:bf root@evs-manager
  3. 将公钥从 EVS 管理器中的 /root/.ssh/id_rsa.pub 文件复制到 EVS 控制器中的 /var/user/evsuser/.ssh/authorized_keys 文件。
  4. 从 EVS 管理器中以 evsuser 身份登录 EVS 控制器,以验证是否设置了 SSH 验证。
    evs-manager# ssh evsuser@evs-controller
    The authenticity of host 'evs-controller (192.168.100.10)' can't be established.
    RSA key fingerprint is 73:66:81:15:0d:49:46:e0:1d:73:32:77:4f:7c:24:a5.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'evs-controller' (RSA) to the list of known hosts.
    Last login: Wed Jun 11 14:38:28 2014 from evs-controller
    Oracle Corporation      SunOS 5.11      11.2    April 2014
    evsuser@evs-controller$ 

    该输出显示您可以从 EVS 管理器以 evsuser 身份登录 EVS 控制器,而不需要使用口令。

如何在 EVS 控制器和 EVS 节点之间设置 SSH 验证

  1. 成为管理员。

    有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 成为 EVS 控制器中的 evsuser 用户。
    evs-controller# su - evsuser

    有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  3. 在 EVS 控制器中为 evsuser 生成一个 RSA 密钥对。
    evsuser@evs-controller$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/var/user/evsuser/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /var/user/evsuser/.ssh/id_rsa.
    Your public key has been saved in /var/user/evsuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    a0:64:de:3d:c8:26:59:cb:4a:46:b9:1e:17:04:7d:bf evsuser@evs-controller
  4. 将公钥从 EVS 控制器中的 /var/user/evsuser/.ssh/id_rsa.pub 文件复制到 EVS 节点中的 /var/user/evsuser/.ssh/authorized_keys 文件。
  5. 从 EVS 控制器以 evsuser 身份登录 EVS 节点,以验证是否设置了 SSH 验证。
    evsuser@evs-controller$ ssh evsuser@evs-node
    The authenticity of host 'evs-node (192.168.100.20)' can't be established.
    RSA key fingerprint is 73:66:89:15:0d:49:46:e0:1d:73:32:77:4f:7c:24:a5.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'evs-node' (RSA) to the list of known hosts.
    Last login: Wed Jun 11 14:40:28 2014 from evs-node
    Oracle Corporation      SunOS 5.11      11.2    April 2014
    evsuser@evs-node$ 

    该输出显示您可以从 EVS 控制器以 evsuser 身份登录 EVS 节点,而不需要使用口令。


    Caution

    注意  -  如果没有在 EVS 设置期间设置 SSH 验证,evsadm 命令将无法以非交互模式安全地与 EVS 控制器通信。


如何配置 EVS 控制器

开始之前

使用在运行 evsadm 命令的主机与 EVS 控制器之间预先共享的密钥设置 SSH 验证。

  1. 成为具有“弹性虚拟交换机管理”权限配置文件的管理员或用户。

    有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  2. 设置 EVS 控制器。
    # evsadm set-prop -p controller=[value[...,]]

    此命令为执行此命令的主机设置属性值。唯一支持的属性是 controller,格式可以是:ssh://[user@]evs-controller-host-namessh://[user@]evs-controller-IP-address

  3. (u53ef选) 显示所配置的 EVS 控制器。
    # evsadm show-prop [[-c] -o field[,...]] [-p controller[,...]]

    有关更多信息,请参见显示 EVS 控制器

  4. 设置 EVS 控制器的属性。
    # evsadm set-controlprop [-h host] -p prop=[value[...,]]

    有关更多信息,请参见设置 EVS 控制器的属性

  5. (u53ef选) 显示 EVS 控制器的属性。
    # evsadm show-controlprop [[-c] -o field[,...]] [-p prop[,...]]

    有关更多信息,请参见显示 EVS 控制器的属性

示例 6-1  配置 EVS 控制器

以下示例说明了如何将主机 s11-server 配置为 EVS 控制器,其 L2 网段是使用 VXLAN 创建的。

# evsadm set-prop -p controller=ssh://evsuser@s11-server
# evsadm show-prop
PROPERTY            PERM   VALUE                      DEFAULT
controller          rw     ssh://evsuser@s11-server   -- 
# evsadm set-controlprop -p l2-type=vxlan 
# evsadm set-controlprop -p vxlan-range=10000-20000 
# evsadm set-controlprop -p vxlan-addr=192.168.10.0/24
# evsadm set-controlprop -h s11-server -p uplink-port=net3
# evsadm set-controlprop -h s11-client -p uplink-port=net4
# evsadm show-controlprop
PROPERTY            PERM VALUE               DEFAULT             HOST
l2-type             rw   vxlan               vlan                --
uplink-port         rw   net3                --                  s11-server
uplink-port         rw   net4                --                  s11-client
vlan-range          rw   --                  --                  --
vlan-range-avail    r-   --                  --                  --
vxlan-addr          rw   192.168.10.0/24     0.0.0.0             --
vxlan-ipvers        rw   v4                  v4                  --
vxlan-mgroup        rw   0.0.0.0             0.0.0.0             --
vxlan-range         rw   10000-20000         --                  --
vxlan-range-avail   r-   10000-20000         --                  --

在此示例中,vxlan-range-avail 属性显示了可用于实现弹性虚拟交换机的 VXLAN ID (10000-20000)。属于子网 192.168.10.0/24 的一个 IP 接口用于在 EVS 节点上创建 VXLAN 链路。

以下示例说明了如何将 IP 地址为 192.168.100.1 的主机配置为 EVS 控制器,其 L2 网段是使用 VLAN 创建的。

# evsadm set-prop -p controller=ssh://evsuser@192.168.100.1
# evsadm set-controlprop -p l2-type=vlan
# evsadm set-controlprop -p vlan-range=200-300,400-500
# evsadm set-controlprop -p uplink-port=net2
# evsadm set-controlprop -h host2.example.com -p uplink-port=net3 
# evsadm set-controlprop -h host3.example.com -p uplink-port=net4

该输出显示为弹性虚拟交换机预留了 VLAN ID 200-300400-500。除了 host2.example.comhost3.example.com 之外,所有主机上的数据链路 net2 均为 uplink-port。在 host2 上,数据链路 net3 用作 uplink-port,而在 host3 上,数据链路 net4 用作 uplink-port

示例 6-2  重置 EVS 控制器的属性

以下示例说明了如何重置控制器属性 uplink-port

# evsadm show-controlprop -p uplink-port
PROPERTY            PERM     VALUE      DEFAULT             HOST
uplink-port         rw       net2       --                  --
# evsadm set-controlprop -p uplink-port=
# evsadm show-controlprop -p uplink-port
PROPERTY            PERM     VALUE      DEFAULT             HOST
uplink-port         rw       --         --                  --