跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中使用虚拟网络 Oracle Solaris 11.1 Information Library (简体中文) |
流包含根据一个属性组织的网络数据包。流使您能够进一步指定网络资源。有关流的概述,请参见通过使用流管理网络资源。
使用流管理资源包含以下常规步骤:
基于通过使用流管理网络资源中列出的一个特定属性创建流。
通过设置与网络资源相关的属性,定制流的资源使用。当前,仅可以设置用于处理数据包的带宽。
# dladm show-link
# ipadm show-addr
# flowadm add-flow -l link -a attribute=value[,attribute=value] flow
指您在其上配置流的链路。
指以下分类之一(您可以根据这些分类将网络数据包组织到流中):
IP 地址
传输协议(UDP、TCP 或 SCTP)
应用程序的端口号(例如,端口 21 用于 FTP)
DS 字段属性,仅用于 IPv6 数据包中的服务质量。有关 DS 字段的更多信息,请参阅《在 Oracle Solaris 11.1 中管理 IP 服务质量》中的"DS 代码点"。
指为特定流指定的名称。
有关流和流属性的更多详细信息,请参见 flowadm(1M) 手册页。
# dladm show-linkprop -p maxbw link
其中,link 是在其上配置流的数据链路。
POSSIBLE 字段中列出了值的范围。
# flowadm set-flowprop -p maxbw=value flow
您设置的值必须在链路带宽值的允许范围内。
注 - 当前,仅可以定制一个流的带宽。
# flowadm
注 - 如果使用 flowadm 命令时不带任何子命令,该命令将提供与 flowadm show-flow 命令相同的信息。
# flowadm show-flowprop flow
示例 3-8 通过设置链路和流属性管理资源
本示例将为数据链路和流指定网络资源的步骤合并在一起。本示例基于下图中所示的配置。
图中显示了两个相互连接的物理主机。
Host1 具有以下配置:
它有一个非全局区域,充当路由器区域。为该区域指定了两个接口:net0 连接到 Internet,net1 连接到包含第二个主机的内部网络。
udpflow 是在 net0 上配置的流,用于隔离 UDP 通信并对 UDP 包使用资源的方式实施控制。有关配置流的信息,请参见管理流上的资源。
Host2 具有以下配置:
它有三个非全局区域及其各自的 VNIC。这些 VNIC 是在 net0 上配置的,该接口的卡支持动态环分配。有关环分配的更多信息,请参见使用客户机、传送环和接收环。
每个区域的网络处理负载是不同的。在本示例中,zone1 的负载重,zone2 的负载为中等,zone3 的负载轻。根据这些区域的负载情况对其指定资源。
将一个单独的 VNIC 配置为基于软件的客户机。有关 MAC 客户机的概述,请参见MAC 客户机和环分配。
本示例中的任务涉及以下方面:
创建流和配置流控制-在 net1 上创建了一个流,以便对 Host2 接收的 UDP 包进行单独的资源控制。
为 Host2 上的 VNIC 配置网络资源属性-根据每个区域上的处理负载,为每个区域的 VNIC 配置一组专用环。还要配置一个单独的没有专用环的 VNIC 作为基于软件的客户机的示例。
请注意,该示例不包括任何区域配置过程。要配置区域,请参阅《Oracle Solaris 11.1 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 17 章 "规划和配置非全局区域(任务)"。
# ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 net0 ip ok -- -- net0/v4 static ok -- 10.10.6.5/24 net1 ip failed ipmp0 -- net1/v4 static ok -- 10.10.12.42/24
接下来,在 net1 上创建一个流以将 UDP 通信隔离到 Host2。然后,实现该流上的资源控制。
# flowadm add-flow -l net1 -a transport=udp udpflow # flowadm set-flowprop -p maxbw=80 udpflow
然后,检查有关创建的流的信息。
flowadm FLOW LINK IPADDR PROTO LPORT RPORT DFSLD udpflow net1 -- udp -- -- -- # flowadm show-flowprop FLOW PROPERTY VALUE DEFAULT POSSIBLE udpflow maxbw 80 -- --
在 Host2 上,为每个区域在 net0 上配置 VNIC。在每个 VNIC 上实现资源控制。然后,将 VNIC 指定给其各自的区域。
# dladm create-vnic -l net0 vnic0 # dladm create-vnic -l net0 vnic1 # dladm create-vnic -l net0 vnic2 # dladm set-prop -p rxrings=4,txrings=4 vnic0 # dladm set-prop -p rxrings=2,txrings=2 vnic1 # dladm set-prop -p rxrings=1,txrings=1 vnic2 # zonecfg -z zone1 # zonecfg:zone1> add net # zonecfg:zone1:net> set physical=vnic0 # zonecfg:zone1:net> end # zonecfg:zone1> commit # zonecfg:zone1> exit # zoneadm -z zone1 reboot # zonecfg -z zone2 # zonecfg:zone2> add net # zonecfg:zone2:net> set physical=vnic1 # zonecfg:zone2:net> end # zonecfg:zone2> commit # zonecfg:zone2> exit # zoneadm -z zone2 reboot # # zonecfg -z zone3 # zonecfg:zone3> add net # zonecfg:zone3:net> set physical=vnic2 # zonecfg:zone3:net> end # zonecfg:zone3> commit # zonecfg:zone3> exit # zoneadm -z zone3 reboot #
假定 pool1(Host2 中的一个 CPU 集)以前配置为由 zone1 使用。绑定该 CPU 池以便同时管理 zone1 的网络处理,如下所示:
# dladm set-prop -p pool=pool1 vnic0
最后,创建一个基于软件的客户机,它与主接口 net0 共享环。
# dladm create-vnic -p rxrings=sw,txrings=sw -l net0 vnic3