evsadm - 创建和管理弹性虚拟交换机 (Elastic Virtual Switch, EVS) 及其资源,也就是 IP 网络 (IP network, IPnet) 和虚拟端口 (Virtual Port, VPort)。
evsadm
evsadm set-prop -p <prop>=[<val>[,...]] evsadm show-prop [[-c] -o <field>[,...]] [-p <prop>[,...]]
evsadm set-controlprop [-h host] -p {<prop>=[<val>[,...]]}[,...] evsadm set-controlprop [-h host] -p uplink-port=<val>[,vlan-range=[<val>[,...]]] [,vxlan-range=[<val>[,...]]][,flat=yes|no] evsadm show-controlprop [[-c] -o <field>[,...]] [-p <prop>[,...]]
evsadm create-evs [-T <tenantname>] [-p {<prop>=<val>[,...]}[,..]] <evsname> evsadm delete-evs [-T <tenantname>] <evsname> evsadm show-evs [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [<evsname>]
evsadm add-ipnet [-T <tenantname>] -p subnet=<val>[{,<prop>=<val>[,...]}[,...]] <evsname>/<ipnetname> evsadm remove-ipnet [-T <tenantname>] <evsname>/<ipnetname> evsadm show-ipnet [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [[<evsname>/][ipnetname]]
evsadm add-vport [-T <tenantname>] [-p {<prop>=val[,...]}[,...]] <evsname>/<vportname> evsadm remove-vport [-T <tenantname>] <evsname>/<vportname> evsadm reset-vport [-T <tenantname>] <evsname>/<vportname> evsadm show-vport [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [[<evsname>/][<vportname>]]
evsadm set-evsprop [-T <tenantname>] -p <prop>=[<val>[,...]] <evsname> evsadm show-evsprop [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [-p <prop>[,...]] [evsname]
evsadm set-vportprop [-T <tenantname>] -p <prop>=[<val>[,...]] <evsname>/<vportname> evsadm show-vportprop [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [-p <prop>[,...]] [[evsname/][vportname]]
evsadm set-ipnetprop [-T <tenantname>] -p <prop>=<val> <evsname>/<ipnetname> evsadm show-ipnetprop [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]] [-p <prop>[,...]] [[evsname/][ipnetname]]
evsadm help [subcommand-name]
evsadm 命令提供了一组子命令来执行以下操作:
管理 EVS
管理与 EVS 关联的 IP 网络
管理与 EVS 关联的虚拟端口
弹性虚拟交换机 (Elastic Virtual Switch, EVS) 是跨越一台或多台服务器(物理计算机)的虚拟交换机。它表示一个隔离的 L2 网段,L2 网段作为 Flat(未标记)、VLAN 或 VXLAN 来实现。EVS 在连接到它的虚拟机之间提供网络连接。有两种与 EVS 关联的主要资源:IPnet 和 VPort。
IP 网络表示一个 IPv4 或 IPv6 地址片区(也就是子网)以及用于该片区的缺省路由器。一个 EVS 只能关联一个 IPnet。通过 VPort 连接到 EVS 的所有区域/VNIC 将从与 EVS 关联的 IPnet 获取 IP 地址。
VPort 表示 VNIC 与 EVS 之间的连接点。它封装了各种网络配置参数,例如 SLA(maxbw、cos 和 priority)、IP 地址以及 MAC 地址。此配置是 VNIC 连接到 VPort 时由 VNIC 继承的。
针对 EVS 以及与其关联的所有资源提供配置和管理功能。应当使用一个控制器管理网络中的所有 EVS。控制器有与之关联的用于捕获在物理计算机中实现 L2 网段所需的信息的属性,这些属性可通过 set-controlprop 子命令进行管理。EVS 控制器用一个 RAD 模块实现并导出 EVS 客户机使用的 RAD 接口。
这指的是与 EVS 控制器进行通信来定义 L2 网络拓扑和在这些网络上使用的 IP 地址的实体。因此,evsadm(8) 是一个 EVS 管理器。
借助 evsadm 并使用 EVS、IPnet 和 VPort,可以定义 L2 网络拓扑和在这些网络上使用的 IP 地址。然后,使用 dladm(8) 将 VNIC 连接到这些拓扑,或使用 zonecfg(8) 将 VNIC anet(并因此将区域)连接到这些拓扑。dladm(8) 和 zonecfg(8) 构成了 EVS 控制器的客户机,并从控制器提取信息来检索 VPort 属性。(起初,使用 evsadm(8) 将配置推送到控制器)。请注意,支持本地区域和内核区域。
任何希望将其 VNIC 或其区域的 VNIC anet 资源作为 EVS 一部分的主机。现有工具 dladm(8) 和 zonecfg(8) 已修改,以指定需要作为 EVS 一部分的 VNIC。
Tenant 用于名称空间管理。在一个 tenant 内定义的 EVS 及其资源在该 tenant 的名称空间外不可见。Tenant 用作一个容器,将该 tenant 的所有资源存放在一起。
每个 evsadm 子命令都针对上面提到的某个对象运行。对应关系如下所示。
|
EVS、IPnet 和 VPort 用一个名称来标识。名称不能超过 127 个字符,并且应当是字母数字字符以及 "." 和 "_" 的组合。
此外,这些名称还可以包含特殊分隔符字符 "-"。这些名称表示资源是在 evsadm 外部创建的。名称包含一个前缀(标识创建者),后跟一个 "-" 和一个传统的资源名称。例如 sys-vport0,其中,此处的 "sys" 表示资源是由系统创建的。这可以确保使用 evsadm 创建的资源永远不会出现命名冲突。相应地,evsadm 无法用来创建包含 "-" 的资源。
只要计算机能够与运行 EVS 控制器的计算机进行通信,就可以在该计算机上运行 evsadm 命令。该计算机与 EVS 控制器一起工作来执行所有 evsadm 子命令。在使用 evsadm 之前,必须指定 EVS 控制器的主机名或 IP 地址。这可以通过使用 "set-prop" 子命令设置 "controller" 属性来完成。
# evsadm set-prop -p controller=ssh://[username@]evs-controller.example.com # evsadm show-prop NAME VALUE DEFAULT controller ssh://[username@]evs-controller.example.com --
其中,可选的 'username' 为分配了 "Elastic Virtual Switch Administration"(弹性虚拟交换机管理)RBAC 配置文件(请参见 prof_attr(5))的用户。为了简化配置,当您安装强制性的 EVS IPS 软件包 (service/network/evs) 时,会创建一个称为 "evsuser" 且具有执行 EVS 操作所需的所有授权和特权的用户。如果要使用附带的 'evsuser',则将控制器属性设置为:
# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
正如您可以看到的,SSH 用于与 EVS 控制器通信。为了使该通信是非交互式的,必须在主机(即,将执行 vsadm 的主机)与 EVS 控制器之间设置使用预先共享的公钥执行的 SSH 验证。
# evsadm set-prop -p controller=unix://
evsadm 的每个子命令具有与之关联的选项,下文围绕每个子命令介绍了这些选项。许多子命令都具有以下共同选项:
指定应在其名称空间中应用子命令操作的 tenant 的名称。如果未指定,则会假定操作在缺省的 tenant sys-global 中执行。
用户必须具有 "Elastic Virtual Switch Administration"(弹性虚拟交换机管理)权限配置文件才能执行以下子命令:
create-evs delete-evs show-evs set-evsprop show-evsprop add-ipnet remove-ipnet show-ipnet set-ipnetprop show-ipnetprop add-vport remove-vport show-vport set-vportprop show-vportprop reset-vport set-prop set-controlprop
具有弹性虚拟交换机观察权限配置文件的用户可以执行以下观察子命令:
show-evs show-evsprop show-ipnet show-ipnetprop show-vport show-vportprop show-prop show-controlprop
支持以下子命令:
为执行命令的主机设置某个属性的值。唯一支持的属性是 "controller"。当前,此属性仅支持 rad(8) SSH 和 UNIX URI 方案。有关更多信息,请参见下文的“示例”部分。
要设置为指定值的属性的名称。一次只能设置一个属性。请注意,如果未提供 <val>,则属性将重置为其缺省值。
显示当前主机的一个或多个属性的当前值。唯一支持的属性是 'controller',该属性指定要连接到的 EVS 控制器。
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
属性的名称
属性的权限。可以是 rw 或 r-。
属性的值
属性的缺省值
使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。
将 EVS 控制器的属性修改为用户指定的值。有关控制器属性的列表及其可能值,请参见下文中的“控制器属性”部分。可以使用 show-controlprop 子命令检索这些属性。
设置 uplink-port 属性时,可以选择指定 vlan-range、vxlan-range 或 flat。如果指定 vlan-range,则表示相应的 uplink-port 将支持那些 VLAN ID。如果指定 vxlan-range,则表示相应的 uplink-port 将支持那些 VXLAN ID。如果指定 flat,则表示相应的 uplink-port 将支持 flat 网络类型。如果 EVS 节点具有多个上行链路端口,则 vlan-range、vxlan-range 和 flat 有助于唯一标识单个 uplink-port 来为该 EVS 节点创建 VNIC。有关更多信息,请参见“示例”部分。
要重置属性值,请使用空值设置该属性。
可以从任意 EVS 组件设置控制器的属性,只要可以从该组件访问控制器即可。
所设置的属性仅应用于指定的主机。
EVS 控制器上要设置为指定值的控制器属性的名称。如果该属性接受多个值,则应使用逗号作为分隔符来指定这些值。一次只能指定一个属性。请注意,如果未提供 <val>,则属性将重置为其缺省值。
如果正在设置的属性为 uplink-port,则可以通过 vlan-range、vxlan-range 和 flat 指定其他元数据。
显示控制器的一个或多个属性的当前值。如果未指定属性,则将显示所有可用控制器属性。有关控制器属性的列表,请参见下文中的“控制器属性”部分。
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
控制器属性的名称
控制器属性的权限
控制器属性的值
控制器属性的缺省值
如果值为 "--",则属性将应用于所有主机或属于全局作用域。否则,它指定属性应用于该特定的主机。
表示将由相应的 uplink-port 为其提供服务的 VLAN ID 的范围(以逗号分隔)。此字段将仅包含对应于 uplink-port 的值,对于其余属性,将显示 '--'。
表示将由相应的 uplink-port 为其提供服务的 VXLAN ID 的范围(以逗号分隔)。此字段将仅包含对应于 uplink-port 或 vxlan-addr 的值,对于其余属性,将显示 '--'。
指定给定的 uplink-port 是否支持 Flat(未标记)网络类型。显示的值将为 yes 或 no。
使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”部分。
创建名为 evsname 的 EVS。如果指定了一个 tenant 名称,则将在该 tenant 的名称空间内创建 EVS,否则将在缺省的 tenant sys-global 中创建。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要创建的 EVS 上要设置为指定值的 EVS 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“EVS 属性”部分。
删除指定的 EVS。如果有任何 VPort 在使用,此操作将失败。如果 VPort 有连接到它的 VNIC,则说明它在使用。如果没有 VPort 在使用,此操作将删除与 EVS 关联的所有 VPort 和 IPnet。show-evs 输出中的 STATUS 字段显示 EVS 是处于繁忙还是空闲状态。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
显示 EVS 控制器管理的所有 EVS 或者指定 EVS 的 EVS 信息。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 EVS
按 EVS 名称过滤 EVS
按主机名过滤 EVS
按 ipnet 名称过滤 EVS
按 vport 名称过滤 EVS
EVS 表示一个隔离的 L2 网段。要实施或实现这一点,需要使用 Flat(未标记)、VLAN 或 VXLAN。此选项通过以下字段提供该信息。
EVS 的名称
拥有 EVS 的 tenant 的名称
L2 网络类型network
用来实现 EVS 的 VLAN ID
用来实现 EVS 的 VXLAN 网段 ID
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
EVS 的名称
拥有 EVS 的 tenant 的名称
EVS 处于空闲还是繁忙状态。如果 EVS 至少有一个 VPort 连接了 VNIC,则它处于繁忙状态。
与 EVS 关联的虚拟端口的数目。
与 EVS 关联的 IP 网络的列表。当前,一个 EVS 只能关联一个 IP 网络。
EVS 跨越的主机的列表。
使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。
为给定的 EVS evsname 添加名为 ipnetname 的 ipnet。如果指定了 tenant 名称,则 ipnet 将与 tenant tenantname 名称空间中的 EVS evsname 相关联。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要创建的 EVS 上要设置为指定值的 IPnet 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“IPnet 属性”部分。请注意,"subnet" 是必需属性,如果未指定该属性,操作将失败。
从 EVS evsname 中删除指定的 ipnet ipnetname。如果有任何 VPort 在使用,此操作将失败。如果 VPort 有连接到它的 VNIC,则说明它在使用。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
显示 EVS 控制器管理的所有 IPnet 或者指定 IPnet 的 IPnet 信息。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 ipnet
按 EVS 名称过滤 ipnet
按 ipnet 名称过滤 ipnet
按主机名过滤 ipnet
IPnet 可以通过其属性名称进行过滤。所以,所有 IPnet 属性都是有效过滤器。有关 IPnet 属性的列表,请参见下文中的“IPnet 属性”部分。
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
ipnet 的名称以及与之关联的 EVS 的名称。格式为 evsname/ipnetname。
ipnet 的名称
EVS 的名称
拥有 EVS 的 tenant 的名称。
表示此 IPnet 的子网(IPv4 或 IPv6)。
IP 地址范围的起始地址。
IP 地址范围的结束地址。
给定 ipnet 的缺省路由器的 IP 地址。
可以分配给 VPort 的可用 IP 地址的逗号分隔列表。
使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。
为给定的 EVS evsname 添加名为 vportname 的 VPort。如果指定了 tenant 名称,则 VPort 将与 tenant tenantname 名称空间中的 EVS evsname 相关联。
当创建 VPort 时,将为其分配一个随机 MAC 地址和 ipnet 地址范围中的一个 IP 地址。因此,在向 EVS 添加 VPort 之前,绝对有必要将一个 IPnet 与 EVS 相关联。
请注意,不一定要向 EVS 添加 VPort。当创建 VNIC 时,指定要将 VNIC 连接到的 EVS 名称就足够了。在这种情况下,控制器将生成一个系统 VPort(在 VPort 名称中由前缀 "sys-" 予以标识),并且它继承 EVS 属性。
显式创建 VPort 的优势在于,可以在创建该 VPort 时为其指定所需的属性并且可以在创建之后对其进行修改。另一方面,不能指定也不能修改系统 VPort 的属性。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要创建的 VPort 上要设置为指定值的 VPort 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“虚拟端口属性”部分。
删除指定的 VPort。当删除某个 VPort 时,将释放与该 VPort 关联的 IP 地址和 MAC 地址。
请注意,如果有与该 VPort 关联的 VNIC,删除 VPort 会失败。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
重置指定的 VPort。当某个 VPort 与实际上不存在的 VNIC 相关联时,可以通过重置该 VPort 将其释放。重置系统 VPort 后会立即将其删除。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
显示 EVS 控制器管理的所有 VPort 或者指定 VPort 的 VPort 信息。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 VPort
按 EVS 名称过滤 VPort
按 VPort 名称过滤 VPort
按主机名过滤 VPort
VPort 可以通过其属性名称进行过滤。所以,所有 VPort 属性都是有效过滤器。有关 VPort 属性的列表,请参见下文中的“VPort 属性”部分。
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
VPort 的名称以及与之关联的 EVS 的名称。格式为 evsname/vportname。
VPort 的名称
EVS 的名称
拥有 EVS 的 tenant 的名称
VPort 在使用还是空闲。如果 VPort 有与之关联的 VNIC,则说明它在使用。否则,它是空闲的。
与 VPort 关联的 VNIC 的名称。
与 VPort 关联的 VNIC 所在的主机。
使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。
在指定 evsname 上设置某个属性的值。有关 EVS 属性的列表及其可能值,请参见下文中的“EVS 属性”部分。可以使用 show-evsprop 子命令检索这些属性。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要设置为指定值的属性的名称。请注意,如果未提供 <val>,则属性将重置为其缺省值。
显示所有 EVS 或指定 EVS 的一个或多个属性的当前值。如果未指定属性,则将显示所有可用 EVS 属性。有关 EVS 属性的列表,请参见下文中的“EVS 属性”部分。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 EVS
按 EVS 名称过滤 EVS
按主机名过滤 EVS
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
EVS 的名称
拥有 EVS 的 tenant 的名称
EVS 属性的名称
属性的读/写权限。显示的值是 r- 和 rw 中的一个。
当前的属性值。如果未设置值,则将显示为 "--"。如果是未知的,则值显示为 "?"。
系统选择的有效属性值。系统按以下顺序选择 VPort 属性:
当前的 VPort 属性值
当前的 EVS 属性值
缺省的 VPort 属性值
属性的缺省值。如果属性没有缺省值,则显示 "--"。
属性可具有的值的逗号分隔列表。如果这些值在某个数字范围中,则可以显示简写形式min-max。如果可能的值未知或无限制,则会显示 "--"。
在指定 vportname 上设置某个属性的值。有关 VPort 属性的列表及其可能值,请参见下文中的“虚拟端口属性”部分。可以使用 show-vportprop 子命令检索这些属性。
如果 VPort 有连接到它的 VNIC,则设置该 VPort 上的属性还会导致 VNIC 的属性更改。
请注意,不允许更改系统 VPort 的属性。有关系统 VPort 的更多信息,请参见 add-vport 子命令。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要设置为指定值的属性的名称。请注意,如果未提供 <val>,则属性将重置为其缺省值。
显示所有 VPort 或指定 VPort 的一个或多个属性的当前值。如果未指定属性,则将显示所有可用 VPort 属性。有关 VPort 属性的列表,请参见下文中的“虚拟端口属性”部分。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 VPort
按 EVS 名称过滤 VPort
按 VPort 名称过滤 VPort
按主机名过滤 VPort
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
VPort 的名称以及与之关联的 EVS 的名称。格式为 evsname/vportname。
VPort 的名称
EVS 的名称
拥有 EVS 的 tenant 的名称
VPort 属性的名称
属性的读/写权限。显示的值是 r- 和 rw 中的一个。
当前的属性值。如果未设置值,则将显示为 "--"。如果是未知的,则值显示为 "?"。
属性的缺省值。如果属性没有缺省值,则显示 "--"。
属性可具有的值的逗号分隔列表。如果这些值在某个数字范围中,则可以显示简写形式min-max。如果可能的值未知或无限制,则会显示 "--"。
设置指定的 ipnetname 上的属性值。有关 IPnet 属性及其可能值的列表,请参见下文中的“IP 网络属性”部分。可以使用 show-ipnetprop 子命令检索这些属性。
有关 –T 选项的更多信息,请参见上文的“概念”部分。
要设置为指定值的属性的名称。请注意,如果未提供 <val>,则属性将重置为其缺省值。
显示所有 IPnet 或指定 IPnet 的一个或多个属性的当前值。如果未指定属性,则将显示所有可用的 IPnet 属性。有关 IPnet 属性的列表,请参见下文中的“IP 网络属性”部分。
用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:
按 tenant 名称过滤 IPnet
按 EVS 名称过滤 IPnet
按 IPnet 名称过滤 IPnet
按主机名过滤 IPnet
要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。
IPnet 的名称以及与之关联的 EVS 的名称。格式为 evsname/ipnetname
IPNET 的名称
EVS 的名称
拥有 EVS 的 tenant 的名称
IPnet 属性的名称
属性的读/写权限。显示的值是 r- 或 rw 中的一个
当前的属性值。如果未设置值,则将显示为 "--"。如果是未知的,则值显示为 "?"
属性的缺省值。如果属性没有缺省值,则显示 "--"
属性可具有的值的逗号分隔列表。如果这些值在某个数字范围中,则可以显示简写形式min-max。如果可能的值未知或无限制,则会显示 "--"。
显示所有受支持的 evsadm 子命令或显示给定子命令的用法。如果您针对某个特定子命令调用 help,则会显示命令语法。使用无参数的 evsadm help 将显示所有受支持的子命令。
许多 evsadm 子命令都具有一个以计算机可解析的格式显示输出的选项。输出格式是一行或多行以冒号 (:) 分隔的字段。显示的字段特定于使用的子命令,并且在给定子命令的 –o 选项的条目下列出。输出仅包括通过 –o 选项请求的字段,这些字段按请求的顺序排列。
当请求多个字段时,将在输出之前使用反斜杠 (\) 对任何文本冒号字符进行转义。类似地,也会对文本反斜杠字符进行转义 (\\)。通过使用带有环境变量 IFS=: 的 shell read(1) 函数,可以解析此转义格式(请参见下文的“示例”部分)。请注意,当仅请求一个字段时,不会进行转义。
这些属性包含着在物理计算机中实现虚拟交换机或 L2 网段所必需的信息。对于大多数属性,作用域或适用范围实际上是整个数据中心或全局。不过,也有一些属性(具体有 uri、uplink-port 和 vxlan-addr),可以以主机为单位覆盖其值。
定义将如何在物理计算机中实现 EVS。可能值为 "flat"(未标记)、"vlan" 或 "vxlan"。缺省情况下,l2-type 为 "vlan"。请注意,更改 l2-type 不会影响在更改之前创建的那些 EVS。只有在更改之后创建的 EVS 才会具有新的 l2-type。这意味着基于 Flat、VLAN 和 VXLAN 的 L2 网段可以共存。
要实现 Flat,EVS 的所有 VPort 都将位于同一网络上(该网络还可以与主机共享)。将不在此类 VPort 上标记包。连接到 flat l2 类型的 EVS 的所有 VNIC(以及 VM 实例)在创建时都将 VLAN ID 设置为 0。此类 EVS 将用于直接映射到现有物理网络。
要实现 VLAN,需要将一个 EVS 的所有 VPort 与同一个 VLAN ID 相关联。要使用的 VLAN ID 来自 vlan-range 属性。此 l2-type 假定物理网络已配置为在这些 VLAN 上发送/接收数据包,或者已在 Oracle Solaris 和交换结构中启用了 GVRP 之类的协议。至少必须指定 vlan-range 和 uplink-port。否则,EVS 创建将失败。
要实现 VXLAN,需要将一个 EVS 的所有 VPort 与同一个 VXLAN ID 相关联。要使用的 VXLAN ID 来自 vxlan-range 属性。其他 VXLAN 属性(例如 vxlan-addr、vxlan-group、vxlan-ipvers 和 uplink-port)影响 VXLAN 的创建方式。至少必须指定 vxlan-range 和 uplink-port 或 vxlan-addr。否则,EVS 创建将失败。
将用于创建 EVS 的 VLAN ID 范围的逗号分隔列表。对于所创建的每个 EVS 都将消耗一个 VLAN ID。VLAN ID 在 EVS 之间提供数据包隔离。有效值为 [1-4094]。
可以用于创建 EVS 的 VXLAN 网段编号范围的逗号分隔列表。对于所创建的每个 EVS 都将消耗一个 VXLAN 网段编号。VXLAN 网段编号在 EVS 之间提供了 L2 隔离。有效值为 [0 - 16777215]。
指定创建 VXLAN 数据链路时应当基于的 IP 地址。这还可以设置为一个子网地址。
创建 VXLAN 链路时需要使用的多播地址。VXLAN 链路将使用此地址来搜索同一 VXLAN 网段上的其他 VXLAN 链路。如果未设置此属性,则 VXLAN 链路将使用缺省的 all-host 地址。
表示承载 VXLAN 数据链路的 IP 接口必须使用的 IP 地址的版本。可能值为 "v4" 和 "v6"。缺省值为 "v4"。
指定要用于以下网络类型的数据链路:Flat、VLAN 和 VXLAN。
用于唯一标识数据中心中的 EVS 控制器的 ID。它是只读属性,安装 EVS 控制器时自动生成该属性值。
指定模板,EVS 控制器根据该模板计算实际 RAD URI(请参见 rad(8))方案。计算得出的 RAD URI 将在 EVS 控制器与 EVS 节点之间使用。uri_template 值的形式为 ssh://[username@] 或 unix://[username@]。有关用法,请参见下文的“示例”部分。
表示 IPv4 或 IPv6 地址的片区。对于 IPv4,该值指定为以 len 为前缀的标准 IPv4 点分十进制形式,即:
ddd.ddd.ddd.ddd/yy
其中,"ddd" 是介于 0 和 255 之间的一到三位十进制数字,"yy" 是介于 1 和 30 之间的一到两位十进制数字。
对于 IPv6,该值指定为以 len 为前缀的标准 IPv6 文本,即:
ex:x:x:x:x:x:x:x/yyy
其中,"x" 是地址的八个 16 位部件的十六进制值,"yy" 是介于 1 和 126 之间的一到三位十进制数字。
缺省路由器指定给定子网的网关的 IP 地址。这是可选的,未指定时,将选择范围中的第一个地址作为缺省的路由器 IP 地址。
表示一个子网内 IP 地址的子范围。将从该池(而不是整个子网)中选择一个 IP 地址以分配给虚拟端口。可以使用逗号作为分隔符指定多个范围,这些范围不能彼此重叠。每个范围的格式均为 start_ip_address-end_ip_address。请注意,start_ip_address 和 end_ip_address 必须位于子网内。
为虚拟端口上的外发包设置 802.1p 优先级。值的范围为 0 到 7。当设置了此属性时,虚拟端口上的所有外发包将带有一个 VLAN 标记,其中优先级字段设置为该属性值。这可以用来在各个 VPort 之间提供差异化服务。
设置虚拟端口的全双工带宽。此带宽指定为一个带有某个容量级后缀(分别表示 Kbps、Mbps 和 Gbps 的 K、M 或 G)的整数。如果未指定单位,输入值将以 Mbps 为单位进行读取。缺省值是无带宽限制。
设置虚拟端口的相对优先级。该值可指定为 high、medium 或 low 标记之一。缺省值为 medium。此优先级不会反映在线路上的任何协议优先级字段中,而是用于系统内的包处理调度。高优先级链路可能延迟更短,具体取决于可用的系统资源。
启用一种或多种链路保护。与数据链路的 protection 属性相同。有效值包括:
MAC 地址防欺骗。外发包的源 MAC 地址必须与链路的已配置 MAC 地址匹配。系统将删除不匹配的包。
IP 地址防欺骗。传出包的源 IP 地址必须与 VPort 的 IP 地址、从 DHCP 回复获悉的 IPv4/IPv6 地址、符合 RFC 2464 的链路本地 IPv6 地址以及未指定的(全零) IPv4/IPv6 地址匹配。
如果传出 ARP 包的发送方协议地址是 VPort 的 IP 地址,则可以传递此包。
DHCPv4 数据包中的客户机 ID 必须与 VPort 的 MAC 地址匹配。DHCPv6 数据包中的 DUID 类型必须为 1 或 3,并且 DUID 的链路层地址部分必须与 VPort 的 MAC 地址匹配。
将传出包类型限定为 IPv4、IPv6 和 ARP。
不会应用保护
表示与虚拟端口关联的 IP 地址。当 VNIC 连接到某个 VPort 时,此地址将应用于 VNIC。缺省情况下,EVS 控制器将自动从与 EVS 关联的 IPnet 选择 IP 地址。如果需要为某个区域/VNIC 分配一个特定的 IP 地址,则可以通过在向 EVS 添加 VPort 时手动将 ipaddr 设置为所需的 IP 地址来实现此目的。
创建 VPort 之后,将无法通过 evsadm set-vportprop 命令更改其 IP 地址。
表示与虚拟端口关联的 MAC 地址。连接到此 VPort 的 VNIC 基本上从此 VPort 继承 MAC 地址。缺省情况下,EVS 控制器将为 VPort 生成一个随机 MAC 地址。如果需要为某个 VNIC 分配一个特定的 MAC 地址,则可以通过在向 EVS 添加 VPort 时手动将 macaddr 设置为所需的 MAC 地址来实现此目的。
创建 VPort 之后,将无法通过 evsadm set-vportprop 命令更改其 MAC 地址。
一个只读属性,表示 VPort 与之关联的 EVS。
一个只读属性,表示 VPort 与之关联的 tenant。
请参见上文中的“虚拟端口属性”部分。这定义将与 EVS 的每个虚拟端口关联的缺省 maxbw。
请参见上文中的“虚拟端口属性”部分。这定义将与 EVS 的每个虚拟端口关联的缺省优先级。
一个只读属性,表示 EVS 与之关联的 tenant。
有关更多信息,请参见上文中的“控制器属性”部分。这些属性指定应当将 EVS 实施为的网络类型(flat、vlan 或 vxlan)以及该网络类型对应的段 ID。通常,可以使用 l2-type 来覆盖缺省的控制器设置。
请参见“VPort 属性”部分。如果设置,则它为 EVS 的所有端口定义缺省值。
在下面的所有示例中,假定 EVS 管理器、EVS 控制器和 EVS 节点在同一个节点上。
示例 1 设置 evsadm 应当连接到的 EVS 控制器# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com
现在为使用 ssh-keygen(1) 调用 evsadm 的用户创建 SSH 密钥。将 $HOME/.ssh/id_rsa.pub 复制到 /var/user/evsuser/.ssh/authorized_keys。现在以 evsuser 身份对 evs-controller.example.com 进行 SSH 连接,以验证是否可以在不使用口令的情况下进行连接(注:回答 SSH 客户机弹出的 yes/no 问题)。
# evsadm show-prop NAME VALUE DEFAULT controller ssh://evs-controller.example.com --
请注意,因为 EVS 框架中的所有参与节点都位于同一物理计算机上,所以我们可以仅使用本地连接(unix 域套接字)进行连接,而不使用 SSH:
EVS 管理器 (evsadm(8)) 到 EVS 控制器。
EVS 客户机(dladm(8) 和 zoneadmd(8))到 EVS 控制器。
可以通过以下项实现这一点:
# evsadm set-prop -p controller=unix:// # evsadm show-prop NAME VALUE DEFAULT controller unix:// --示例 2 对 EVS 控制器进行设置,以便使用 VLAN 创建 L2 网段
继续上面的示例,现在控制器是 evs-controller.example.com,使用 set-controlprop 命令所做的任何更改都将反映在该控制器上。
# 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 NAME VALUE DEFAULT HOST l2-type vlan vxlan -- vlan-range 200-300,400-500 -- -- uplink-port net2 -- -- uplink-port net3 -- host2.example.com uplink-port net4 -- host3.example.com
VLAN ID 200-300 和 400-500 是为 EVS 预留的。net2 是除了 host2.example.com 和 host3.example.com 之外的所有主机上的 uplink-port。在 host2 上,net3 将用作 uplink-port,在 host3 上,net4 将用作 uplink-port。
示例 3 对 EVS 控制器进行设置,以便使用 VXLAN 创建 L2 网段# evsadm set-controlprop -p l2-type=vxlan # evsadm set-controlprop -p vxlan-range=20000-30000 # evsadm set-controlprop -p vxlan-addr=192.168.10.0/24 # evsadm show-controlprop -p l2-type,vxlan-range,vxlan-addr NAME VALUE DEFAULT HOST l2-type vxlan vxlan -- vxlan-range 20000-30000 -- -- vxlan-addr 192.168.10.0/24 0.0.0.0 --
VXLAN ID 20000-30000 是为 EVS 预留的。将使用属于子网 192.168.10.0/24 的 IP 接口来创建 VXLAN 链路。
示例 4 创建一个 EVS,关联一个 IP 子网,向 EVS 添加一个 VPort 并连接一个 VNIC在使用 evsadm 之前,设置控制器属性。
# evsadm set-prop -p controller=ssh://evs-controller.example.com
另外,还必须在 RAD 客户机与控制器之间手动设置使用预先共享的密钥执行的 SSH 验证,以便 RAD 客户机能够以非交互方式连接到 EVS 控制器。
现在创建名为 HR 的 EVS。
# evsadm create-evs HR # evsadm show-evs HR EVS TENANT STATUS NVPORTS IPNETS HOST HR sys-global -- 0 -- --
因为没有提供 tenant 名称,所以 EVS 创建在 sys-global 下。它没有与之关联的 IP 网络或 VPort。
现在创建一个 IP 网络。
# evsadm add-ipnet -p subnet=192.168.13.0/24 HR/hr_ipnet # evsadm show-ipnet NAME TENANT SUBNET DEFROUTER AVAILRANGE HR/hr_ipnet sys-global 192.168.13.0/24 192.168.13.1 192.168.13.2-192.168.13.254
现在向 HR 添加一个 VPort。
# evsadm add-vport HR/vport0 # evsadm show-vport NAME TENANT STATUS VNIC HOST HR/vport0 sys-global free -- -- # evsadm show-vport -o name,macaddr,ipaddr NAME MACADDR IPADDR HR/vport0 2:8:20:95:1:de 192.168.13.2/24
不带子命令的 evsadm 将生成以下输出。
# evsadm NAME TENANT STATUS VNIC IP HR sys-global -- -- hr_ipnet vport0 -- free -- 192.168.13.2/24
现在将 VNIC vnic0 连接到 HR/vport0。
# dladm create-vnic -t -c HR/vport0 vnic0 # dladm show-vnic -c LINK TENANT EVS VPORT OVER MACADDRESS VIDS vnic0 sys-global HR vport0 evs-vxlan200 2:8:20:95:1:de 0 # dladm show-linkprop -p allowed-ips vnic0 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 allowed-ips rw 192.168.13.2 192.168.13.2 -- --
注意 vnic0 的 allowed-ips 是如何通过 VPort 的 IP 地址设置的。
现在将 VPort 的 maxbw 属性设置为 1G 并查看它如何反映在 vnic0 上。
# dladm show-linkprop -p maxbw vnic0 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 maxbw rw -- -- -- -- # evsadm set-vportprop -p maxbw=1G HR/vport0 # dladm show-linkprop -p maxbw vnic0 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 maxbw rw 1000 1000 -- --示例 5 创建具有 flat l2 类型的 EVS
定义 EVS 节点上将用于创建 FLAT VNIC 的 uplink-port。
# evsadm set-controlprop -p uplink-port=net0,flat=yes
现在创建 Flat EVS,将子网与其关联,然后添加一组 VPort。
# evsadm create-evs -p l2-type=flat evs0 # evsadm show-evs -L EVS TENANT L2TYPE VID VNI evs0 sys-global flat -- -- # evsadm add-ipnet -p subnet=192.168.100.0/24 evs0/ipnet0 # evsadm add-vport evs0/vport0 # evsadm add-vport evs0/vport1 # evsadm add-vport evs0/vport2
然后,evs0 的所有三个 VPort 将位于同一网络上,这些 VPort 上的传出包将取消标记。
示例 6 显示 EVS 的属性# evsadm show-evsprop HR EVS TENANT PROPERTY PERM VALUE DEFAULT POSSIBLE HR sys-global maxbw rw -- -- -- HR sys-global priority rw -- medium low,medium, high HR sys-global tenant r- sys-global -- --示例 7 显示 VPort 的属性
# evsadm show-vportprop HR/ NAME TENANT PROPERTY PERM VALUE DEFAULT POSSIBLE HR/vport0 sys-global cos rw 3 0 0-7 HR/vport0 sys-global maxbw rw -- -- 10K- HR/vport0 sys-global priority rw -- medium low,medium, HR/vport0 sys-global ipaddr r- 192.168.13.2/24 -- -- HR/vport0 sys-global macaddr r- 2:8:20:5c:cb:a5 -- -- HR/vport0 sys-global evs r- HR -- -- HR/vport0 sys-global tenant r- sys-global -- --
# evsadm show-vportprop HR/ NAME TENANT PROPERTY PERM VALUE EFFECTIVE POSSIBLE HR/vport0 sys-global cos rw 3 3 0-7 HR/vport0 sys-global maxbw rw -- -- HR/vport0 sys-global priority rw -- medium low,medium, HR/vport0 sys-global ipaddr r- 192.168.13.2/24 192.168.13.2/24 -- HR/vport0 sys-global macaddr r- 2:8:20:5c:cb:a5 2:8:20:5c:cb:a5 -- HR/vport0 sys-global evs r- HR -- -- HR/vport0 sys-global tenant r- sys-global -- --示例 8 删除虚拟端口
# evsadm remove-vport HR/vport0
请注意,如果 vport 正在使用,以上操作会失败。
示例 9 删除 IPnet# evsadm remove-ipnet HR/hr_ipnet
请注意,如果 IP 子网中的某个 IP 地址正在使用,以上操作会失败。
示例 10 删除 EVS# evsadm delete-evs HR
请注意,如果 EVS 的某个 VPort 正在使用,以上操作会失败。
示例 11 为 Tenant 创建一个 EVS 并关联一个 IPnet 和 VPort以下示例为 tenant tenantA 创建 EVS evsA 并将 192.168.100.0/24 作为 IPnet 与之关联,同时添加一个 maxbw 为 1G 的 VPort。
# evasdm create-evs -T tenantA evsA # evsadm add-ipnet -T tenantA -p subnet=192.168.100.0/24 evsA/ipnetA # evsadm add-vport -T tenantA -p maxbw=1G evsA/vport0 # evsadm NAME TENANT STATUS VNIC IP HOST evsA tenantA -- -- ipnetA -- vport0 -- free -- 192.168.100.2/24 -- # evsadm show-vport NAME TENANT STATUS VNIC HOST evsA/vport0 tenantA free -- -- # evsadm show-ipnet NAME TENANT SUBNET DEFROUTER AVAILRANGE evsA/ipnetA tenantA 192.168.100.0/24 192.168.100.1 192.168.100.3-192.168.100.254示例 12 指定每个 EVS 节点 RAD 连接
要推送 VPort 属性和检索 VPort 统计信息,EVS 控制器将连接到 EVS 节点。需要如何建立 RAD 连接可由 uri_template 控制器属性进行控制。此属性全局应用于所有 EVS 节点。但是,如果需要对 EVS 节点指定不同类型的连接,则可以覆盖该主机的全局值。
值的形式为 ssh://[username@] 或 unix://[username@]。
# evsadm show-controlprop -p uri_template PROPERTY PERM VALUE DEFAULT HOST uri_template rw ssh:// ssh:// --
这基本上表示所有每 EVS 节点 RAD 连接都应使用 SSH 并且应将执行 evsadm 的用户用作 SSH 用户。
# evsadm set-controlprop -p uri_template=ssh://evsuser # evsadm show-controlprop -p uri_template PROPERTY PERM VALUE DEFAULT HOST uri_template rw ssh://evsuser ssh:// -
这基本上表示所有每 EVS 节点 RAD 连接都应使用 SSH。但是,对于 SSH 用户,应转而使用 evsuser。
# evsadm set-controlprop -p uri_template=unix:// # evsadm show-controlprop -p uri_template PROPERTY PERM VALUE DEFAULT HOST uri_template rw unix:// unix:// --
在单个服务器 EVS 的情况下(即,EVS 框架中的所有参与节点都位于同一物理计算机上),不需要 SSH,我们可以仅使用本地连接(unix 域套接字)。
# evsadm set-controlprop -h evs-controller.example.com -p uri_template=unix:// # evsadm show-controlprop -p uri_template PROPERTY PERM VALUE DEFAULT HOST uri_template rw ssh:// ssh:// -- uri_template rw unix:// unix:// evs-controller.example.com
这基本上表示所有每 EVS 节点 RAD 连接都应使用缺省 SSH,但 evs-controller.example.com 除外,其中应使用本地连接。
示例 13 为给定的 IP 网络指定池(一个子网内 IPv4 或 IPv6 地址的子范围)# evsadm create-evs HR # evsadm add-ipnet HR/ipnet0 -p subnet=10.0.0.0/24 # evsadm set-ipnetprop -p pool=10.0.0.10-10.0.0.15 HR/ipnet0 # evsadm show-ipnetprop -p pool HR/ipnet0 NAME TENANT PROPERTY PERM VALUE DEFAULT POSSIBLE HR/ipnet0 sys-global pool rw 10.0.0.10-10.0.0.15 -- -- # evsadm add-vport HR/vport0 # evsadm add-vport HR/vport1 # evsadm add-vport HR/vport2 # evsadm add-vport HR/vport3 # evsadm add-vport HR/vport4 # evsadm add-vport HR/vport5 # evsadm add-vport HR/vport6 evsadm: vport addition failed: insufficient resource # evsadm NAME TENANT STATUS VNIC IP HOST HR sys-global idle -- ipnet0 -- vport0 -- free -- 10.0.0.10/24 -- vport1 -- free -- 10.0.0.11/24 -- vport2 -- free -- 10.0.0.12/24 -- vport3 -- free -- 10.0.0.13/24 -- vport4 -- free -- 10.0.0.14/24 -- vport5 -- free -- 10.0.0.15/24 -- # evsadm set-ipnetprop -p pool=10.0.0.10-10.0.0.20 HR/ipnet0 # evsadm add-vport HR/vport6 # evsadm add-vport HR/vport7 # evsadm NAME TENANT STATUS VNIC IP HOST HR sys-global idle -- ipnet0 -- vport0 -- free -- 10.0.0.10/24 -- vport1 -- free -- 10.0.0.11/24 -- vport2 -- free -- 10.0.0.12/24 -- vport3 -- free -- 10.0.0.13/24 -- vport4 -- free -- 10.0.0.14/24 -- vport5 -- free -- 10.0.0.15/24 -- vport6 -- free -- 10.0.0.16/24 -- vport7 -- free -- 10.0.0.17/24 -- # evsadm add-vport HR/vport8 -p ipaddr=10.0.0.100 # evsadm NAME TENANT STATUS VNIC IP HOST HR sys-global idle -- ipnet0 -- vport8 -- free -- 10.0.0.100/24 -- vport0 -- free -- 10.0.0.10/24 -- vport1 -- free -- 10.0.0.11/24 -- vport2 -- free -- 10.0.0.12/24 -- vport3 -- free -- 10.0.0.13/24 -- vport4 -- free -- 10.0.0.14/24 -- vport5 -- free -- 10.0.0.15/24 -- vport6 -- free -- 10.0.0.16/24 -- vport7 -- free -- 10.0.0.17/24 -- # evsadm set-ipnetprop -p pool= HR/ipnet0
以上调用会将池重置为除缺省网关 IP 之外的整个子网范围。
# evsadm show-ipnetprop -p pool HR/ipnet0 NAME TENANT PROPERTY PERM VALUE DEFAULT POSSIBLE HR/ipnet0 sys-global pool rw 10.0.0.2-10.0.0.254 -- --
在本例中,添加到 HR 的所有 VPort 均将从指定的池中获取 IP 地址。如果池中没有可再分配的 IP 地址,则 VPort 添加将失败。要使用池之外的地址,必须在创建 VPort 时显式使用 -p ipaddr=<IP address>。
示例 14 从一个给定主机通过多个上行链路端口进行连接# evsadm set-controlprop -p vlan-range=200-300 # evsadm set-controlprop -h host1 -p uplink-port=net0,vlan-range=200-250 evsadm: warning: provided value range is a subset of the complete range. Ensure to provide the remaining value range on a different uplink-port or vxlan-addr # evsadm set-controlprop -h host1 -p uplink-port=net1,vlan-range=251-300 # evsadm show-controlprop -p uplink-port -o property,perm,value,default, vlan_range,vxlan_range,host PROPERTY PERM VALUE DEFAULT VLAN_RANGE VXLAN_RANGE HOST uplink-port rw net0 -- 200-300 -- -- uplink-port rw net0 -- 200-250 -- host1 uplink-port rw net1 -- 251-300 -- host1 # evsadm create-evs evs0 -p vlanid=200 # evsadm create-evs evs1 -p vlanid=251 # evsadm show-evs -L EVS TENANT VID VNI evs0 sys-global 200 -- evs1 sys-global 251 -- # evsadm add-ipnet evs0/ipnet0 -p subnet=10.0.0.0/24 # evsadm add-ipnet evs1/ipnet1 -p subnet=10.0.1.0/24 # dladm create-vnic -c evs0 -t vnic0 # dladm create-vnic -c evs1 -t vnic1 # dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VIDS vnic0 net0 1000 2:8:20:d4:d7:d5 fixed 200 vnic1 net1 1000 2:8:20:a:11:40 fixed 251 # evsadm set-controlprop -h host1 -p uplink-port= # evsadm show-controlprop -p uplink-port -o property,perm,value,default, vlan_range,vxlan_range,host PROPERTY PERM VALUE DEFAULT VLAN_RANGE VXLAN_RANGE HOST uplink-port rw net0 -- 200-300 2000-3000 --
这说明 host1 有两个上行链路端口 net0 和 net1,net0 上支持的 VLAN 范围是 200-250,net1 上支持的 VLAN 范围是 251-300。对于其余的所有主机,net0 将托管整个 VLAN 范围。重置主机的 uplink-port 属性将清除该主机的所有 uplink-port 值。
示例 15 配置 Protection 属性# evsadm create-evs evs0 # evsadm add-ipnet evs0/ipnet0 -p subnet=10.0.0.0/24 # evsadm add-vport evs0/vport0 # evsadm show-vportprop -p protection NAME TENANT PROPERTY PERM VALUE EFFECTIVE POSSIBLE evs0/vport0 sys-global protection rw -- mac-nospoof, mac-nospoof, ip-nospoof restricted, ip-nospoof, dhcp-nospoof, none # dladm create-vnic -c evs0/vport0 -t vnic0 # dladm show-linkprop vnic0 -p protection LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 protection rw mac-nospoof, mac-nospoof, -- mac-nospoof, ip-nospoof ip-nospoof restricted, ip-nospoof, dhcp-nospoof # evsadm set-vportprop -p protection=none evs0/vport0 # dladm show-linkprop vnic0 -p protection LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 protection rw -- -- -- mac-nospoof, restricted, ip-nospoof, dhcp-nospoof # evsadm set-vportprop -p protection=restricted evs0/vport0 # dladm show-linkprop vnic0 -p protection LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 protection rw restricted restricted -- mac-nospoof, restricted, ip-nospoof, dhcp-nospoof # evsadm set-vportprop -p protection= evs0/vport0
未指定值表示将重置保护
# dladm show-linkprop vnic0 -p protection LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic0 protection rw mac-nospoof, mac-nospoof, -- mac-nospoof, ip-nospoof ip-nospoof restricted, ip-nospoof, dhcp-nospoof
请注意,VPort 的 protection 属性的缺省值是 mac-nopsoof, ip-nospoof。重置 protection 属性会将其值恢复为缺省值。
有关下列属性的说明,请参见 attributes(7):
|
ssh-keygen(1)、prof_attr(5)、attributes(7)、dladm(8)、evsstat(8)、rad(8)、zonecfg(8),