跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
流包含根据一个属性组织的网络数据包。流使您能够进一步指定网络资源。有关流的概述,请参见通过使用流管理网络资源。
要使用流管理资源,请执行以下常规步骤:
基于通过使用流管理网络资源中列出的一个特定属性创建流。
通过设置与网络资源相关的属性,定制流的资源使用。当前,仅可以设置用于处理数据包的带宽。
流可以在物理网络上创建,也可以在虚拟网络上创建。要配置流,请使用 flowadm 命令。有关详细技术信息,请参阅 flowadm(1M) 手册页。
# 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 管理:IP 服务》中的"DS 代码点"。
指为特定流指定的名称。
有关流和流属性的更多详细信息,请参见 flowadm(1M) 手册页。
# flowadm set-flowprop -p property=value[,property=value,...] flow
您可以指定以下用于控制资源的流属性:
用此流标识的数据包可以使用的链路的最大带宽量。您设置的值必须在链路带宽值的允许范围内。要显示链路带宽值的范围,检查以下命令生成的输出中的 POSSIBLE 字段:
# dladm show-linkprop -p maxbw link
注 - 当前,仅可以定制一个流的带宽。
# flowadm show-flow -l link
# flowadm show-flowprop flow
示例 21-8 通过设置链路和流属性管理资源
本示例将为数据链路和流指定网络资源的步骤合并在一起。本示例基于下图中所示的配置。
图中显示了两个相互连接的物理主机。
Host1 具有以下配置:
它有一个非全局区域,充当路由器区域。为该区域指定了两个接口:external0 连接到 Internet,internal0 连接到内联网(其中包含第二个主机)。
已将 IP 接口重命名为使用定制名称。使用定制名称不是必需的,但在链路和接口上使用定制名称有利于管理网络。请参见网络设备和数据链路名称。
在 internal0 上配置一个流以隔离 UDP 通信流量并实现对 UDP 数据包如何使用资源的控制。有关配置流的信息,请参见管理流上的资源。
Host2 具有以下配置:
它有三个非全局区域及其各自的 VNIC。这些 VNIC 是在 nxge 卡上配置的,该卡支持动态环分配。有关环分配的更多信息,请参见传送和接收环。
每个区域的网络处理负载是不同的。在本示例中,zone1 的负载重,zone2 的负载为中等,zone3 的负载轻。根据这些区域的负载情况对其指定资源。
将一个单独的 VNIC 配置为基于软件的客户端。有关 MAC 客户端的概述,请参见MAC 客户端和环分配。
本示例中的任务涉及以下方面:
创建流和配置流控制-在 internal0 上创建一个流,以便对 Host2 接收的 UDP 数据包创建单独的资源控制。
为 Host2 上的 VNIC 配置网络资源属性-根据每个区域上的处理负载,为每个区域的 VNIC 配置一组专用环。还要配置一个单独的没有专用环的 VNIC 作为基于软件的客户端的示例。
请注意,该示例不包括任何区域配置过程。要配置区域,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 17 章 "规划和配置非全局区域(任务)"。
首先,查看有关 Host1 上的链路和 IP 接口的信息。
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE internal0 Ethernet up 1000 full nge1 e1000g0 n unknown 0 half e1000g0 e1000g1 n unknown 0 half e1000g1 external0 Ethernet up 1000 full nge0 # dladm show-link LINK CLASS MTU STATE BRIDGE OVER internal0 phys 1500 up -- nge1 e1000g0 phys 1500 unknown -- -- e1000g1 phys 1500 unknown -- -- external0 phys 1500 up -- nge0 # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/4 static ok 127.0.0.1/8 external0 static ok 10.10.6.5/24 internal0 static ok 10.10.12.42/24
接下来,在 internal0 上创建一个流以将 UDP 通信流量隔离到 Host2。然后,实现该流上的资源控制。
# flowadm add-flow -l external0 -a transport=udp udpflow # flowadm set-flowprop -p maxbw=80 udpflow
然后,检查有关创建的流的信息。
flowadm show-flow FLOW LINK IPADDR PROTO PORT DFSLD udpflow internal0 -- udp -- -- # flowadm show-flowprop SECURE OUTPUT FOR THIS
在 Host2 上,为每个区域在 nxge0 上配置 VNIC。在每个 VNIC 上实现资源控制。然后,将 VNIC 指定给其各自的区域。
# dladm create-vnic -l nxge0 vnic0 # dladm create-vnic -l nxge0 vnic1 # dladm create-vnic -l nxge0 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 # zone1>zonecfg>net> set physical=vnic0 # zone2>zonecfg>net> set physical=vnic1 # zone3>zonecfg>net> set physical=vnic2
假定 pool1(Host2 中的一个 CPU 集)以前配置为由 zone1 使用。绑定该 CPU 池以便同时管理 zone1 的网络处理,如下所示:
# dladm set-prop -p pool=pool01 vnic0
最后,创建一个基于软件的客户端,它与主接口 nxge0 共享环。
dladm create-vnic -p rxrings=sw,txrings=sw -l nxge0 vnic3