'\" te .\" Copyright (c) 2009, 2015, Oracle and/or its affiliates.All rights reserved. .TH flowadm 1M "2015 年 4 月 7 日" "SunOS 5.11" "系统管理命令" .SH 名称 flowadm \- 针对连接、协议、服务、容器和虚拟机管理带宽资源控制和优先级。 .SH 用法概要 .LP .nf \fBflowadm\fR .fi .LP .nf \fBflowadm show-flow\fR [\fB-P\fR] [[\fB-p\fR] \fB-o\fR \fIfield\fR[,...]] [{\fB-l\fR \fIlink\fR | \fIflow\fR}] .fi .LP .nf \fBflowadm match-flow\fR [-P] [[-p] -o field[,...]] [-l link] -a attr=value[,...] .fi .LP .nf \fBflowadm add-flow\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] \fB-l\fR \fIlink\fR \fB-a\fR \fIattr\fR=\fIvalue\fR[,...] [\fB-p\fR \fIprop\fR=\fIvalue\fR[,...]] \fIflow\fR \fBflowadm remove-flow\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] {\fB-l\fR \fIlink\fR | \fIflow\fR} .fi .LP .nf \fBflowadm set-flowprop\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] \fB-p\fR \fIprop\fR=\fIvalue\fR[,...] \fIflow\fR \fBflowadm reset-flowprop\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] [\fB-p\fR \fIprop\fR[,...]] \fIflow\fR \fBflowadm show-flowprop\fR [\fB-P\fR] [[\fB-c\fR] \fB-o\fR \fIfield\fR[,...]] [\fB-l\fR \fIlink\fR] [\fB-p\fR \fIprop\fR[,...]] [\fIflow\fR] .fi .LP .nf \fBflowadm help\fR [\fIsubcommand-name\fR] .fi .SH 描述 .sp .LP \fBflowadm\fR 命令用于为特定链路上的某类通信创建、修改、删除和显示网络带宽、优先级以及关联资源。 .sp .LP \fBflowadm\fR 命令允许用户针对传输、服务或子网管理网络带宽资源。可以以以下全部或部分属性的组合来指定服务:传输、本地端口、远程端口、本地 IP 地址和远程 IP 地址。子网由其 IP 地址和子网掩码指定。该命令可在任何类型的数据链接上使用,包括物理链接、虚拟 NIC 以及链路聚合。 .sp .LP 流定义为基于第 3 层和第 4 层标头的属性集合,可用于标识协议、服务、单个连接或虚拟机。 .sp .LP 对于什么是有效的流名称,存在一些限制。首先,流名称不能超过 31 个字符。其次,流名称中只能包含以下字符:字母数字字符 (a-z, A-Z, 0-9)、下划线 ('_')、圆点 ('.') 和短划线 ('-'),并且必须以字母开头。 .sp .LP \fBflowadm\fR 命令可用于标识流,而无需强加任何带宽资源控制。与 \fBflowstat\fR(1M) 一起使用可以更好地观察流。 .sp .LP 可以在全局区域、非全局区域和内核区域中创建、修改和删除流。区域管理员仅可以在其区域(全局或非全局)中创建流。然而,在全局区域中创建的流可以迁移至非全局区域,以下段落中有述。管理员只能从在其中创建流的区域(全局或非全局)修改或删除流。从全局区域,用户可以查看系统上全局区域和任何非全局区域内的所有流。从非全局区域,用户仅可以查看此区域内的那些流。 .sp .LP 管理员在全局区域中创建了流之后,与该流关联的数据链接可以分配至非全局区域。在此情况下,关联流也分配至同一非全局区域。当该非全局区域停止后,数据链接及其关联流将返回至全局区域。 .sp .LP 不同的区域名区分同一名称的流。例如,用户可以拥有三个名为 \fBfastpak\fR 的流,如果每个 \fBfastpak\fR 位于不同的区域。例如,\fBzone1\fR/\fBfastpak\fR、\fBzone2\fR/\fBfastpak\fR 和 \fBzone3\fR/\fBfastpak\fR 都是有效的区域名。 .sp .LP 所有流配置都位于网络配置文件 (Network Configuration Profile, NCP) 中。可以在一个系统上定义任意数量的 NCP,但是始终只能有一个活动 NCP。使用 \fBflowadm\fR 命令所做的更改将应用于当前活动 NCP。 .sp .LP NCP 可以是“固定的”或“反应性的”。有一个固定 NCP,名为 DefaultFixed。有关 NCP 的更多信息,请参阅 \fBnetcfg\fR(1M)。 .sp .LP \fBflowadm\fR 是作为一组具有相应选项的子命令实现的。选项在每个子命令的上下文中进行了说明。如果在不使用子命令的情况下调用 \fBflowadm\fR,则会显示在系统上配置的所有流。有关更多信息,请参见下文的“示例”。\fB\fR .SH 子命令 .sp .LP 支持以下子命令: .sp .ne 2 .mk .na \fB\fBflowadm show-flow\fR [\fB-P\fR] [[\fB-p\fR] \fB-o\fR \fIfield\fR[,...]] [{\fB-l\fR \fIlink\fR | \fIflow\fR}]\fR .ad .sp .6 .RS 4n 为所有流(一个链路上的所有流)或者为指定的流显示流配置信息。输出按排位顺序显示,也就是说,将首先在输出中的第一个流中搜索给定的包,依此类推。 .sp .ne 2 .mk .na \fB\fB-o\fR \fIfield\fR[,...]\fR .ad .sp .6 .RS 4n 要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔。字段名必须是以下所列字段之一,或为特殊值 \fBall\fR,以显示所有字段。对于找到的每个流,可显示以下字段: .sp .ne 2 .mk .na \fB\fBflow\fR\fR .ad .sp .6 .RS 4n 流的名称。 .RE .sp .ne 2 .mk .na \fB\fBlink\fR\fR .ad .sp .6 .RS 4n 流所在的链接名。 .RE .sp .ne 2 .mk .na \fB\fBproto\fR\fR .ad .sp .6 .RS 4n 要使用的传输层协议名称。 .RE .sp .ne 2 .mk .na \fB\fBladdr\fR\fR .ad .sp .6 .RS 4n 流的本地 IP 地址。如果未指定,将显示为 '--'。 .RE .sp .ne 2 .mk .na \fB\fBlport\fR\fR .ad .sp .6 .RS 4n 流的本地服务端口。 .RE .sp .ne 2 .mk .na \fB\fBraddr\fR\fR .ad .sp .6 .RS 4n 流的远程 IP 地址。如果未指定,将显示为 '--'。 .RE .sp .ne 2 .mk .na \fB\fBrport\fR\fR .ad .sp .6 .RS 4n 流的远程服务端口。 .RE .sp .ne 2 .mk .na \fBdir\fR .ad .sp .6 .RS 4n 流方向。值为 'in' 表示仅入站,值为 'out' 表示仅出站,值为 'bi' 表示双向。 .RE .sp .ne 2 .mk .na \fB\fBdsfld\fR\fR .ad .sp .6 .RS 4n 流和掩码的区分服务值,与 DSFLD 值结合使用,用以指定 IP 数据包头的区分服务字段中受关注的位。此字段在缺省的 \fBflowadm\fR 输出中不会显示,但可以通过以下命令来显示: .sp .in +2 .nf flowadm show-flow -o all .fi .in -2 .sp 或者 .sp .in +2 .nf flowadm show-flow -o flow,dsfld .fi .in -2 .sp .RE .sp .ne 2 .mk .na \fB\fBipaddr\fR\fR .ad .sp .6 .RS 4n 流的 IP 地址。此地址可以是本地的,也可以是远程的,具体取决于流的定义。此字段已过时,提供它只是为了实现向后兼容性。因此,除非使用 \fB-o\fR 选项指定,否则缺省情况下不会显示。鼓励用户改为使用 \fBladdr\fR 和 \fBraddr\fR。 .RE .sp .ne 2 .mk .na \fB\fBpid\fR\fR .ad .sp .6 .RS 4n 指定创建此流的进程的 PID。此字段只对系统生成的流有意义,对于用户生成的流将显示 '--'。 .sp 系统生成的流具有前缀 ".sys.sock",是由应用程序通过使用 \fBSO_FLOW_SLA\fR 选项调用 \fBsetsockopt()\fR 而生成的临时流。 .RE .RE .sp .ne 2 .mk .na \fB\fB-p\fR, \fB-–parseable\fR\fR .ad .sp .6 .RS 4n 使用稳定的可供计算机解析的格式显示。 .RE .sp .ne 2 .mk .na \fB\fB-P\fR, \fB-–persistent\fR\fR .ad .sp .6 .RS 4n 显示持久流属性信息。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR \fIlink\fR, \fB-–link\fR=\fIlink\fR | \fIflow\fR\fR .ad .sp .6 .RS 4n 显示指定链接上所有流的信息或指定流的信息。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm match-flow\fR [\fB-P\fR] [[\fB-p\fR] \fB-o\fR \fIfield\fR[,...]] [\fB-l\fR \fIlink\fR] \fB-a\fR \fIattr\fR=\fIvalue\fR[,...]\fR .ad .sp .6 .RS 4n 在系统上的现有流中查找可能与指定的流属性列表匹配的项。如果返回了多个流,则它们会按照在查找包的流分类时的顺序显示。 .sp .ne 2 .mk .na \fB\fB-p\fR, \fB--parseable\fR\fR .ad .sp .6 .RS 4n 使用稳定的可供计算机解析的格式显示。 .RE .sp .ne 2 .mk .na \fB\fB-P\fR、\fB--persistent\fR\fR .ad .sp .6 .RS 4n 显示持久流属性信息。 .RE .sp .ne 2 .mk .na \fB\fB-o\fR \fIfield\fR[,...]\fR .ad .sp .6 .RS 4n 请参见上文中 \fBshow-flow\fR 子命令的 \fB-o\fR 字段参数。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR \fIlink\fR、\fB--link\fR=\fIlink\fR\fR .ad .sp .6 .RS 4n 将匹配项限制为指定链路上的流。如果未指定链路,则使用所有链路上的流。 .RE .sp .ne 2 .mk .na \fB\fB-a\fR \fIattr\fR=\fIvalue\fR[,...], \fB--attr\fR=\fIvalue\fR\fR .ad .sp .6 .RS 4n 以逗号分隔的属性列表,用作查找匹配流的键。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm add-flow\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] \fB-l\fR \fIlink\fR \fB-a\fR \fIattr\fR=\fIvalue\fR[,...] \fB-p\fR \fI prop\fR=\fIvalue\fR[,...] \fIflow\fR\fR .ad .sp .6 .RS 4n 将流添加到系统。流由其流属性标识。 .sp 作为标识特定流的一部分,可以限制它的带宽、资源和优先级。 .sp .ne 2 .mk .na \fB\fB-t\fR、\fB--temporary\fR\fR .ad .sp .6 .RS 4n 更改是临时的,在重新引导期间不会持续存在。持续存在是缺省值。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR \fIroot-dir\fR、\fB-–root-dir\fR=\fIroot-dir\fR\fR .ad .sp .6 .RS 4n 指定备用根目录,其中 \fBflowadm\fR 应应用持久创建。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR \fIlink\fR、\fB-–link\fR=\fIlink\fR\fR .ad .sp .6 .RS 4n 指定将向其添加流的链接。 .RE .sp .ne 2 .mk .na \fB\fB-a\fR \fIattr\fR=\fIvalue\fR[,...], \fB-–attr\fR=\fIvalue\fR\fR .ad .sp .6 .RS 4n 要设置为指定值的以逗号分隔的属性列表。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR \fIprop\fR=\fIvalue\fR[,...], \fB-–prop\fR=\fIvalue\fR[,...]\fR .ad .sp .6 .RS 4n 要设置为指定值的以逗号分隔的属性列表。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm remove-flow\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] {\fB-l\fR \fIlink \fR | \fIflow\fR}\fR .ad .sp .6 .RS 4n 删除由其链接或名称标识的现有流。 .sp .ne 2 .mk .na \fB\fB-t\fR、\fB-–temporary\fR\fR .ad .sp .6 .RS 4n 更改是临时的,在重新引导期间不会持续存在。持续存在是缺省值。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR \fIroot-dir\fR、\fB-–root-dir\fR=\fIroot-dir\fR\fR .ad .sp .6 .RS 4n 指定备用根目录,其中 \fBflowadm\fR 应应用持久删除。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR \fIlink\fR | \fIflow\fR, \fB-–link\fR=\fIlink\fR | \fIflow\fR\fR .ad .sp .6 .RS 4n 如果指定一个链接,则从该链接删除所有流。如果指定单个流,则仅删除该流。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm set-flowprop\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] \fB-p\fR \fIprop\fR=\fIvalue\fR[,...] \fIflow\fR\fR .ad .sp .6 .RS 4n 设置按名称指定的流上的一个或多个属性的值。使用 \fBshow-flow\fR 子命令可以检索完整的属性列表。 .sp .ne 2 .mk .na \fB\fB-t\fR、\fB-–temporary\fR\fR .ad .sp .6 .RS 4n 更改是临时的,在重新引导期间不会持续存在。持续存在是缺省值。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR \fIroot-dir\fR、\fB-–root-dir\fR=\fIroot-dir\fR\fR .ad .sp .6 .RS 4n 指定备用根目录,其中 \fBflowadm\fR 应应用持久属性设置。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR \fIprop\fR=\fIvalue\fR[,...], \fB-–prop\fR=\fIvalue\fR[,...]\fR .ad .sp .6 .RS 4n 要设置为指定值的以逗号分隔的属性列表。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm reset-flowprop\fR [\fB-t\fR] [\fB-R\fR \fIroot-dir\fR] [\fB-p\fR \fIprop \fR=\fIvalue\fR[,...]] \fIflow\fR\fR .ad .sp .6 .RS 4n 将指定流上的一个或多个属性重置为其缺省值。如果未指定属性,则重置所有属性。请参见 \fBshow-flowprop\fR 子命令了解属性说明,其中包含它们的缺省值。 .sp .ne 2 .mk .na \fB\fB-t\fR、\fB-–temporary\fR\fR .ad .sp .6 .RS 4n 指定重置为临时重置。临时重置将持续到下一次重新引导。 .RE .sp .ne 2 .mk .na \fB\fB-R\fR \fIroot-dir\fR、\fB-–root-dir\fR=\fIroot-dir\fR\fR .ad .sp .6 .RS 4n 指定备用根目录,其中 \fBflowadm\fR 应应用持久属性设置。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR \fIprop\fR[,...]\fR .ad .sp .6 .RS 4n 要重置的以逗号分隔的属性列表。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm show-flowprop\fR [\fB-cP\fR] [\fB-l\fR \fIlink\fR] [\fB-p\fR \fIprop\fR[,...]] [\fIflow\fR]\fR .ad .sp .6 .RS 4n 显示所有流、指定链接上的流或指定流的一个或多个属性的当前值或持久值。 .sp 缺省情况下,将显示当前值。如果未指定属性,所有可用流属性都将显示。对于每个属性,将显示下列字段: .sp .ne 2 .mk .na \fB\fBFLOW(流)\fR\fR .ad .sp .6 .RS 4n 流的名称。 .RE .sp .ne 2 .mk .na \fB\fBPROPERTY\fR\fR .ad .sp .6 .RS 4n 属性的名称。 .RE .sp .ne 2 .mk .na \fB\fBPERM\fR\fR .ad .sp .6 .RS 4n 属性的权限。'r-' 表示只读属性,'rw' 表示属性即可读也可写。 .RE .sp .ne 2 .mk .na \fB\fBVALUE\fR\fR .ad .sp .6 .RS 4n 当前(或持久性)属性值。如果该值未设置,则显示为 \fB--\fR(双连字符),如果该值未知,则显示为 \fB?\fR(问号)。尚未设置或尚未重置的持久性值将显示为 \fB--\fR,并且将使用系统的 \fBDEFAULT\fR 值(如果有)。 .RE .sp .ne 2 .mk .na \fB\fBDEFAULT\fR\fR .ad .sp .6 .RS 4n 属性的缺省值。如果属性无缺省值,则显示 \fB--\fR(双连字符)。 .RE .sp .ne 2 .mk .na \fB\fBPOSSIBLE\fR\fR .ad .sp .6 .RS 4n 属性可具有的值的逗号分隔列表。如果这些值跨越一定的数字范围,最小值和最大值可能会显示为缩写。如果可能值未知或无限制,则显示 \fB--\fR(双连字符)。 .RE 流属性在以下“流属性”部分中有述。 .sp .ne 2 .mk .na \fB\fB-c\fR, \fB-–parseable\fR\fR .ad .sp .6 .RS 4n 使用稳定的可供计算机解析的格式显示。 .RE .sp .ne 2 .mk .na \fB\fB-P\fR, \fB-–persistent\fR\fR .ad .sp .6 .RS 4n 显示持久流属性信息。 .RE .sp .ne 2 .mk .na \fB\fB-p\fR \fIprop\fR[,...], \fB-–prop\fR=\fIprop\fR[,...]\fR .ad .sp .6 .RS 4n 要显示的属性的逗号分隔列表。 .RE .RE .sp .ne 2 .mk .na \fB\fBflowadm help\fR [\fIsubcommand-name\fR]\fR .ad .sp .6 .RS 4n 显示所有支持的 \fBflowadm\fR 子命令或给定子命令的用法。如果您显示特定子命令的帮助信息,则会显示命令语法和一个示例。使用不带参数的 \fBflowadm help\fR 可以显示所有子命令。 .RE .SS "流属性" .sp .LP 在 \fBflowadm\fR 命令中标识流的流操作数是一个来自以下列表的以逗号分隔的一个或多个关键字、值对列表。 .sp .ne 2 .mk .na \fB\fBlocal_ip\fR[\fB/\fR\fIprefix_len\fR]\fR .ad .sp .6 .RS 4n 按本地 IP 地址标识网络流。\fIvalue\fR 必须是采用点分十进制记法的 IPv4 地址或采用冒号分隔记法的 IPv6 地址。\fIprefix_len\fR 是可选项。 .sp 如果指定了 \fIprefix_len\fR,它将描述子网地址的网络掩码,并与 \fBifconfig\fR(1M) 和 \fBroute\fR(1M) 地址遵循相同的表示法约定。如果未指定,给定的 IP 地址将被视为主机地址,其 IPv4 地址的缺省前缀长度是 \fB/32\fR,对于 IPv6,为 \fB/128\fR。 .RE .sp .ne 2 .mk .na \fB\fBremote_ip\fR[\fB/\fR\fIprefix_len\fR]\fR .ad .sp .6 .RS 4n 按远程 IP 地址标识网络流。语法与 \fBlocal_ip\fR 属性相同 .RE .sp .ne 2 .mk .na \fB\fBtransport\fR={\fBtcp\fR|\fBudp\fR|\fBsctp\fR|\fBicmp\fR|\fBicmpv6\fR}\fR .ad .sp .6 .RS 4n 标识要使用的层 4 协议。通常结合 \fBlocal_port\fR 或 \fBremote_port\fR 使用,以标识需要特别关注的本地或远程服务。 .RE .sp .ne 2 .mk .na \fB\fBlocal_port\fR\fR .ad .sp .6 .RS 4n 标识由本地端口指定的服务。 .RE .sp .ne 2 .mk .na \fB\fBremote_port\fR\fR .ad .sp .6 .RS 4n 标识由远程端口指定的服务。 .RE .sp .ne 2 .mk .na \fB\fBdirection\fR={\fBin|out|bi\fR}\fR .ad .sp .6 .RS 4n 表示流方向为仅入站、仅出站或双向。如果未指定此属性,则会将流视为双向。 .RE .sp .ne 2 .mk .na \fB\fBdsfield\fR[\fB:\fR\fIdsfield_mask\fR]\fR .ad .sp .6 .RS 4n 标识 8 位区分服务字段(如 RFC 2474 中所定义)。 .sp 可选的 \fIdsfield_mask\fR 用于在与 \fBdsfield\fR 值比较时,指定区分服务字段中受关注的位。位位置中的 \fB0\fR 表示该位值需要忽略,\fB1\fR 则表示不要忽略。掩码范围可以是从 \fB0x01\fR 到 \fB0xff\fR。 如果未指定 \fIdsfield_mask\fR,将使用缺省掩码 \fB0xff\fR。\fBdsfield\fR 值和掩码必须为十六进制。 .RE .sp .LP 允许使用属性的所有组合。这去除了早期发行版中的限制,在早期发行版中仅允许使用某些组合。 .sp .LP 可以在一个链路上创建具有不同的属性组合的流。这去除了早期发行版中的限制,在早期发行版中,一个给定链路上的所有流都必须具有相同的流属性组合。 .sp .LP 请注意,当创建具有不同属性组合的流时,它们可以是互斥的,也可以是重叠的(非独占)。 .sp .LP 在后一种情况下,各个流将根据在创建流时指定的属性数目进行排位。具有相同属性数的流将根据系统缺省策略进行排位。\fBflowadm show-flow\fR 输出按照排位顺序列出给定链路上的流,也就是说,将首先在输出中的第一个流中搜索给定的包,依此类推。 .SS "限制" .sp .LP 此处存在个别流限制与各区域流限制。 .SS "个别流限制" .sp .LP 针对每个流,属性只能列一次。例如,以下命令无效: .sp .in +2 .nf # \fBflowadm add-flow -l vnic1 -a local_port=80,local_port=8080 httpflow\fR .fi .in -2 .sp .sp .LP \fBtransport\fR 和 \fBlocal_port\fR 或者 \fBtransport\fR 和 \fBremote_port\fR: .sp .LP TCP、UDP 或 SCTP 流可通过本地端口或远程端口进行指定。不允许指定端口的 ICMP 或 ICMPv6 流。 .sp .LP 以下命令有效: .sp .in +2 .nf # \fBflowadm add-flow -l e1000g0 -a transport=udp udpflow\fR # \fBflowadm add-flow -l e1000g0 -a transport=tcp,local_port=80 \e udp80flow\fR .fi .in -2 .sp .sp .LP 以下命令无效: .sp .in +2 .nf # \fBflowadm add-flow -l e1000g0 -a transport=icmpv6,remote_port=16 \e flow16\fR .fi .in -2 .sp .SS "各区域流限制" .sp .LP 在一个区域内,两个流不能具有相同的名称。添加具有指定链接的流后,显示、修改或删除该流时无需此链接。 .SS "流属性" .sp .LP 以下流属性均受支持。请注意,将给定属性设置为给定值的功能取决于驱动程序和硬件。 .sp .ne 2 .mk .na \fB\fBmaxbw\fR\fR .ad .sp .6 .RS 4n 设置流的全双工带宽。此带宽指定为一个带有某个容量级后缀(分别表示 Kbps、Mbps 和 Gbps 的 \fBK\fR、\fBM\fR 或 \fBG\fR)的整数。如果未指定单位,输入值将以 Mbps 为单位进行读取。缺省值是无带宽限制。 .RE .sp .ne 2 .mk .na \fB\fBpriority\fR\fR .ad .sp .6 .RS 4n 设置流的优先级。priority 值可以是 'high'、'medium' 和 'low' 之一。priority 的缺省值为 'medium'。 .sp 将流的该标记设置为 'high' 具有以下效果:归类给该流的包将优先于同一链路上的常规流中的包进行处理。此外,如果 NIC 具有流负载转移功能,该流还将负载转移到 NIC。高优先级流可能延迟更短,具体取决于可用的系统资源。 .RE .sp .ne 2 .mk .na \fB\fBdscp\fR\fR .ad .sp .6 .RS 4n 在流的所有传出 IP 包上设置指定的 DSCP 值。有效值为 0 到 63。必须以十进制形式指定该值。对于 IPV4,在 DSCP 字段中设置六个 DSCP 位,对于 IPv6,在流量类字段中设置 6 个 DSCP 位。两个 ECN 位保持不变。这符合 RFC 2474。 .sp 请注意,如果在流上设置 '\fBdscp\fR' 属性并且包分类为该流,将覆盖应用程序使用 \fBsetsockopt\fR(3C) 设置的任何 IP_TOS 值。 .RE .sp .ne 2 .mk .na \fB\fBhwflow\fR\fR .ad .sp .6 .RS 4n 只读属性,显示是否将流负载转移到底层 NIC。'on' 表示对流进行负载转移,'off' 表示不进行负载转移。 .RE .sp .ne 2 .mk .na \fB\fBrank\fR\fR .ad .sp .6 .RS 4n 指定流的排位。'rank' 的有效值为 65535。 .sp 不要求在所有流上设置 rank 属性。指定了 rank 属性的流在查找顺序中始终位于未指定 rank 属性的流之前。 .sp 排位值较低的流在查找顺序中位于排位值较高的流之前。可以存在具有相同排位的两个流。在这种情况下,根据缺省的系统策略,将会中断任何关联。 .RE .SH 示例 .LP \fB示例 1 \fR显示流配置 .sp .LP 下面的命令在未使用参数的情况下调用了 flowadm,因此显示了系统中的所有流。 .sp .in +2 .nf # \fBflowadm\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DIR tcpflow net0 tcp -- -- -- -- bi udpflow net0 udp -- -- -- -- bi .fi .in -2 .sp .LP \fB示例 2 \fR围绕重点端口创建策略 .sp .LP 以下命令将围绕 HTTPS 服务器上的传入 HTTPS 通信流量创建策略,以便 HTTPS 获取专用 NIC 硬件和内核 TCP/IP 资源。稍后可使用指定的名称 \fBhttps-1\fR 修改或删除该策略。 .sp .in +2 .nf # \fBflowadm add-flow -l net0 -a transport=TCP,local_port=443 https-1\fR # \fBflowadm show-flow -l net0\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD https-1 net0 tcp -- 443 -- -- bi .fi .in -2 .sp .LP \fB示例 3 \fR修改现有策略以添加带宽资源控制 .sp .LP 以下命令将修改之前示例中的 \fBhttps-1\fR 策略。该命令可以添加带宽控制。 .sp .in +2 .nf # \fBflowadm set-flowprop -p maxbw=500M https-1\fR # \fBflowadm show-flow https-1\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD https-1 net0 tcp -- 443 -- -- bi .fi .in -2 .sp .sp .in +2 .nf # \fBflowadm show-flowprop https-1\fR FLOW PROPERTY PERM VALUE DEFAULT POSSIBLE https-1 maxbw rw 500 -- -- https-1 priority rw medium medium low,medium,high https-1 hwflow r- off -- on,off .fi .in -2 .sp .LP \fB示例 4 \fR限制 UDP 带宽使用 .sp .LP 以下命令将针对 UDP 协议创建策略,以便其无法使用超过 100Mbps 的可用带宽。将流命名为 \fBlimit-udp-1\fR。 .sp .in +2 .nf # flowadm add-flow -l net0 -a transport=UDP -p maxbw=100M \ limit-udp-1 .fi .in -2 .sp .LP \fB示例 5 \fR为通过本地地址/端口定义的流设置策略 .sp .LP 以下命令将为本地 IP 端口为 \fI192.168.200.102:443\fR 的 TCP 流创建策略。即,我们希望对 HTTPS 包进行特殊处理,以便这些包以高优先级进行传送,并且最大带宽为 800 Mbps。 .sp .in +2 .nf # \fBflowadm add-flow -l net0 -a transport=tcp,\ local_ip=192.168.200.102,local_port=443 \ -p priority=high,maxbw=800M my-https\fR .fi .in -2 .sp .sp .in +2 .nf # \fBflowadm show-flow\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD my-https net0 tcp 192.168.200.102 443 -- -- bi .fi .in -2 .sp .sp .in +2 .nf # \fBflowadm show-flowprop\fR FLOW PROPERTY PERM VALUE DEFAULT POSSIBLE my-https maxbw rw 800 -- -- my-https priority rw high medium low,medium,high my-https hwflow r- off -- on,off .fi .in -2 .sp .LP \fB示例 6 \fR为通过本地/远程地址/端口定义的流设置策略 .sp .LP 以下命令将为本地 IP 端口为 \fI192.168.200.102:443\fR、远程 IP 端口为 \fI192.168.200.104:12785\fR 的 TCP 流创建策略。即,我们希望对通过特定远程 IP 端口通信的 HTTPS 包进行特殊处理。属于此流的所有包都将以高优先级进行传送。同时,此流不能使用超过 800 Mbps 的可用带宽。 .sp .in +2 .nf # \fBflowadm add-flow -l net0 -a transport=tcp,\ local_ip=192.168.200.102,local_port=443,\ remote_ip=192.168.200.104,remote_port=12785 \ -p priority=high,maxbw=800M my-flow\fR .fi .in -2 .sp .sp .in +2 .nf # \fBflowadm show-flow\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD my-flow net0 tcp 192.168.200.102 443 192.168.200.104 12785 bi .fi .in -2 .sp .sp .in +2 .nf # \fBflowadm show-flowprop\fR FLOW PROPERTY PERM VALUE DEFAULT POSSIBLE my-flow maxbw rw 800 -- -- my-flow priority rw high medium low,medium,high my-flow hwflow r- off -- on,off .fi .in -2 .sp .LP \fB示例 7 \fR设置策略,利用 \fBdsfield\fR 属性 .sp .LP 以下命令将针对具有 500 Mbps 的带宽的 EF PHB(101110 的 DSCP 值来自 RFC 2598)设置策略。该流的 \fBdsfield\fR 值将是 \fB0x2e\fR (101110) ,而 \fBdsfield_mask\fR 为 \fB0xfc\fR(因为我们希望忽略两个最低有效位)。 .sp .in +2 .nf # \fBflowadm add-flow -l net0 -a dsfield=0x2e:0xfc -p maxbw=500M efphb-flow\fR .fi .in -2 .sp .LP \fB示例 8 \fR查看多个区域中的流 .sp .LP 以下命令将显示具有相同名称的两个流。第一个流位于全局区域中,第二个位于区域 \fBzone1\fR 中。 该命令从全局区域调用,使用户能够查看系统上的所有流 .sp .in +2 .nf # \fBflowadm\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD tcpflow net0 tcp -- -- -- -- bi zone1/tcpflow zone1/net0 tcp -- -- -- -- bi .fi .in -2 .sp .LP \fB示例 9 \fR获取创建系统流的进程 .sp .LP 以下命令显示在给定一个系统流的情况下如何获取 PID 和进程名称。 .sp .in +2 .nf # \fBflowadm\fR FLOW LINK PROTO LADDR LPORT RADDR RPORT DSFLD 1.sys.sock net5 tcp 10.1.5.100 51204 10.1.5.101 22 bi .fi .in -2 .sp .sp .in +2 .nf # \fBps `flowadm show-flow -p -o pid 5.sys.sock`\fR PID TT S TIME COMMAND 1581 pts/1 T 0:00 ssh 10.1.5.101 .fi .in -2 .sp .sp .LP 以下命令显示如何查找某个 PID 所创建的所有流。 .sp .in +2 .nf # \fBflowadm show-flow -p -o pid,flow | grep 1581\fR 1581:1.sys.sock .fi .in -2 .sp .LP \fB示例 10 \fR在“仅出站”流上设置带宽限制 .sp .LP 以下命令显示了如何创建仅出站流并在其上设置带宽限制。 .sp .in +2 .nf # \fBflowadm add-flow -l net4 -a remote_ip=10.1.5.101,direction=out backup\fR # \fBflowadm set-flowprop -p maxbw=500M backup\fR .fi .in -2 .sp .SH 退出状态 .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .sp .6 .RS 4n 所有操作都成功执行。 .RE .sp .ne 2 .mk .na \fB\fB>0\fR\fR .ad .sp .6 .RS 4n 出现错误。 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/network _ 接口稳定性Committed(已确定) .TE .SH 另请参见 .sp .LP \fBacctadm\fR(1M)、\fBdladm\fR(1M)、\fBflowstat\fR(1M)、\fBifconfig\fR(1M)、\fBprstat\fR(1M)、\fBroute\fR(1M)、\fBattributes\fR(5)、\fBifconfig\fR(1M) .SH 附注 .sp .LP \fBshow-usage\fR 子命令(在以前版本的 \fBflowadm\fR 中存在)已替换为 \fBflowstat\fR(1M) \fB-h\fR 命令。