1.配置流分类:

(1)配置基于二层信息的流分类

  1. 执行命令system-view,进入系统视图。
  2. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个二层流分类,进入流分类视图。

    and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则以及其中一条ACL规则才能命中;or表示流分类各规则之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

    缺省情况下,流分类中各规则之间的关系为“逻辑或”。

  3. 定义流分类中的匹配规则。能定义的匹配规则如下:
    • 定义基于QinQ报文内层VLAN的802.1p优先级的匹配规则,执行命令if-match cvlan-8021p { 8021p-value } &<1-8>。
    • 定义基于VLAN报文802.1p优先级的匹配规则,执行命令if-match 8021p { 8021p-value } &<1-8>。
    • 定义基于外层VLAN ID或基于QinQ报文内外两层Tag的VLAN ID的匹配规则,执行命令if-match vlan-id start-vlan-id [ to end-vlan-id ] [ cvlan-id cvlan-id ]。
    • 定义基于丢弃报文的匹配规则,执行命令if-match discard
    • 定义基于QinQ报文双层Tag的匹配规则,执行命令if-match double-tag
    • 定义基于MPLS报文EXP优先级的匹配规则,执行命令if-match mpls-exp exp-value &<1-8>。
    • 定义基于目的MAC地址匹配规则,执行命令if-match destination-mac mac-address [ mac-address-mask mac-address-mask ]。
    • 定义基于源MAC地址的匹配规则,执行命令if-match source-mac mac-address [ mac-address-mask mac-address-mask ]。
    • 定义基于入接口的匹配规则,执行命令if-match inbound-interface interface-type interface-number
    • 定义基于出接口的匹配规则,执行命令if-match outbound-interface interface-type interface-number
    • 定义基于以太网帧头中协议类型字段的匹配规则,执行命令if-match l2-protocol { arp | ip | mpls | rarp | protocol-value }。
    • 定义基于所有报文的匹配规则,执行命令if-match any

 

(2)基于三层信息的流分类

  1. 执行命令system-view,进入系统视图。
  2. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个三层流分类,进入流分类视图。

    and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则和其中一条ACL规则才能命中;or表示流分类之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

    缺省情况下,流分类中各规则之间的关系为“逻辑或”。

  3. 定义流分类中的匹配规则。能定义的匹配规则如下:
    • 定义基于IP报文DSCP优先级的匹配规则,执行命令if-match [ ipv6 ] dscp dscp-value &<1-8>。
    • 定义基于IP报文IP优先级的匹配规则,执行命令if-match ip-precedence ip-precedence-value &<1-8>。

      icon-note.gif 说明:

      不能在一个逻辑关系为“与”的流分类中同时配置if-match dscpif-match ip-precedence

    • 定义基于报文三层协议类型的匹配规则,执行命令if-match protocol { ip | ipv6 }。

    • 定义基于TCP报文SYN Flag的匹配规则,执行命令if-match tcp syn-flag syn-flag { syn-flag-value | ack | fin | psh | rst | syn | urg }。
    • 定义基于IPv6下一报文头类型的匹配规则,执行命令if-match ipv6 next-header header-number first-next-header

      icon-note.gif 说明:

      G24SA、X12SA、G24CA单板不支持Prefix的长度为(64,128)之间的路由。

(3)配置基于ACL的流分类

  • 配置基于基本ACL的流分类
    1. 执行命令system-view,进入系统视图。
    2. 执行命令acl [ number ] basic-acl-number [ match-order { auto | config } ],创建一个基本ACL,进入ACL视图。

      或执行命令acl [ ipv6 ] [ number ] basic-acl-number [ match-order { auto | config } ],创建一个基本ACL6,进入ACL6视图。

    3. (可选)执行命令step step-value,配置规则的步长。
    4. 执行命令rule [ rule-id ] { deny | permit } [ fragment | source { source-address source-wildcard | any } | time-range time-name ]*,定义基本ACLv4规则。

      或执行命令rule [ rule-id ] { deny | permit } [ fragment | source { source-ipv6-address prefix-length | source-ipv6-address prefix-length |source-ipv6-address postfix postfix-length | any } | time-range time-name ]*,定义基本ACLv6规则。

    5. 执行命令quit,返回系统视图。
    6. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个流分类,进入流分类视图。

      and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则和其中一条ACL规则才能命中;or表示流分类之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

      缺省情况下,流分类中各规则之间的关系为“逻辑或”。

    7. 执行命令if-match [ ipv6 ] acl basic-acl-number,配置基于基本ACL的流分类。
  • 配置基于高级ACL的流分类
    1. 执行命令system-view,进入系统视图。
    2. 执行命令acl [ ipv6 ] [ number ] advanced-acl-number [ match-order { auto | config } ],创建一个高级ACL,进入ACL视图。

      icon-note.gif 说明:

      advanced-acl-number用来指定高级ACL的编号,整数形式,取值范围是3000~3999。

    3. 请根据实际需求定义规则:
      • 定义针对GRE、IGMP、IP、IPinIP、OSPF协议的高级ACL规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | gre | igmp | ip |ipinip | ospf } [ tos tos ] [ destination { destination-address destination-wildcard | any } | dscp dscp | fragment | precedenceprecedence | source {source-address source-wildcard | any } | time-range time-name ] *。
      • 定义针对TCP协议的高级ACL规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ tos tos ] [ destination {destination-address destination-wildcard | any } | destination-port { eq | gt | lt | range } port | dscp dscp | fragment |precedence precedence | source { source-address source-wildcard | any } | source-port { eq | gt | lt | range } port | tcp-flag {tcp-value | ack | fin | psh | rst | syn | urg }* | time-range time-name ] *。
      • 定义针对UDP协议的高级ACL规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | udp } [ tos tos ] [ destination {destination-address destination-wildcard | any } | destination-port { eq | gt | lt | range } port | dscp dscp | fragment |precedence precedence | source { source-address source-wildcard | any } | source-port { eq | gt | lt | range } port | time-rangetime-name ] *。
      • 定义针对ICMP协议的高级ACL规则,执行命令rule [ rule-id ] { deny | permit }{ protocol-number | icmp } [ tos tos ] [ destination {destination-address destination-wildcard | any } | dscp dscp | fragment | icmp-type { icmp-name | icmp-type icmp-code } | precedenceprecedence | source { source-address source-wildcard | any } | time-range time-name ]*。
      • 定义针对TCP、UDP协议的高级ACLv6规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | tcp | udp } [ tos tos ] [destination { destination-ipv6-address prefix-length | destination-ipv6-address/prefix-length | destination-ipv6-address postfixpostfix-length | any } | destination-port { eq | gt | lt | range } port | dscp | fragment | precedence precedence | source {source-ipv6-address prefix-length | source-ipv6-address/prefix-length | source-ipv6-address postfix postfix-length | any } | source-port { eq | gt | lt | range } port | time-range time-name ] *。
      • 定义针对ICMPv6的高级ACLv6规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | icmpv6 } [ tos tos ] [ destinationdestination-ipv6-address prefix-length | destination-ipv6-address/prefix-length | destination-ipv6-address postfix postfix-length | any } | dscp dscp | fragment | icmpv6-type { icmp6-type-name | icmp6-type icmp6-code } | precedence precedence | source { source-ipv6-address prefix-length | source-ipv6-address/prefix-length | source-ipv6-address postfix postfix-length | any } | time-range time-name ]*。
      • 定义针对其他协议的高级ACLv6规则,执行命令rule [ rule-id ] { deny | permit } { protocol-number | gre | ipv6 | ipv6-ah | ipv6-esp | ospf} [ tos tos ] [ destination { destination-ipv6-address prefix-length| destination-ipv6-address/prefix-length | destination-ipv6-addresspostfix postfix-length | any } | dscp dscp | fragment | precedence precedence | source { source-ipv6-address prefix-length| source-ipv6-address/prefix-length | source-ipv6-address postfix postfix-length | any } | time-range time-name ] *。
    4. 执行命令quit,返回系统视图。
    5. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个流分类,进入流分类视图。

      and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则和其中一条ACL规则才能命中;or表示流分类之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

      缺省情况下,流分类中各规则之间的关系为“逻辑或”。

    6. 执行命令if-match [ ipv6 ] acl advanced-acl-number,配置基于高级ACL的流分类。
  • 配置基于二层ACL的流分类
    1. 执行命令system-view,进入系统视图。
    2. 执行命令acl [ number ] mac-acl-number [ match-order { auto | config } ],创建一个二层ACL,进入ACL视图。

      icon-note.gif 说明:

      mac-acl-number用来指定二层ACL的编号,整数形式,取值范围是4000~4999。

    3. (可选)执行命令step step-value,配置规则的步长。
    4. 执行命令rule [ rule-id ] { deny | permit } [ { ether-ii | 802.3 | snap } | l2-protocol type-value [ type-mask ] | destination-mac dest-mac-address [ dest-mac-mask ] | source-mac source-mac-address [ source-mac-mask ] | vlan-id vlan-id [ vlan-id-mask ] | 8021p 802.1p-value | cvlan-idcvlan-id [ cvlan-id-mask ] | cvlan-8021p 802.1p-value | double-tag ]* [ time-range time-range-name ],配置ACL规则。
    5. 执行命令quit,返回系统视图。
    6. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个流分类,进入流分类视图。

      and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则和其中一条ACL规则才能命中;or表示流分类之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

      缺省情况下,流分类中各规则之间的关系为“逻辑或”。

    7. 执行命令if-match acl l2-acl-number,配置基于二层ACL的流分类。
  • 配置基于用户自定义ACL的流分类
    1. 执行命令system-view,进入系统视图。
    2. 执行命令acl [ number ] user-defined-acl-number [ match-order { auto | config } ],创建一个用户自定义ACL,进入ACL视图。

      icon-note.gif 说明:

      user-defined-acl-number用来指定用户自定义ACL的编号,整数形式,取值范围是5000~5999。

    3. (可选)执行命令step step-value,配置规则的步长。
    4. 执行命令rule [ rule-id ] { deny | permit } [ [ l2-head | ipv4-head | ipv6-head | l4-head ] { rule-string rule-mask offset } ] [ time-rangetime-range-name ],定义用户自定义ACL规则。
    5. 执行命令quit,返回系统视图。
    6. 执行命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ],创建一个流分类,进入流分类视图。

      and表示流分类中各规则之间关系为“逻辑与”,即报文必须匹配流分类中所有的非ACL规则和其中一条ACL规则才能命中;or表示流分类之间是“逻辑或”,即报文只需匹配流分类中的一个规则即可命中。

      缺省情况下,流分类中各规则之间的关系为“逻辑或”。

    7. 执行命令if-match acl user-defined-acl-number,配置基于用户自定义ACL的流分类。

      用户可以在逻辑关系为“与”的流分类中只配置if-match acl user-defined-acl-number,也可以同时配置其他匹配规则。但是在同时配置if-match acl user-defined-acl-number和其他匹配规则时,if-match acl user-defined-acl-number只能和if-match vlan-idif-match inbound-interfaceif-match outbound-interface同时配置。

 

2.配置流行为

(1)配置禁止或允许动作

  1. 请在执行命令system-view,进入系统视图。
  2. 执行命令traffic behavior behavior-name,创建一个流行为,进入流行为视图。
  3. 请根据实际需要进行如下配置:
    • 执行命令permit,配置允许动作。
    • 执行命令deny,配置禁止动作。

    icon-note.gif 说明:

    • 如果配置了deny动作,则符合流分类规则的报文都会丢弃,即使配置其它动作也不会生效(流量统计除外)。
    • 如果配置了permit动作,则对符合流分类规则的报文采取的动作进行逐条匹配。

(2)配置重定向

  1. 执行命令system-view,进入系统视图。
  2. 执行命令traffic behavior behavior-name,创建一个流行为,进入流行为视图。
  3. 请根据实际需要进行如下配置:
    • 执行命令redirect cpu,将符合流分类的报文重定向到CPU。

      icon-caution.gif 注意:

      应用包含redirect cpu的流策略后,会将符合流分类规则的报文重定向到CPU,对CPU造成影响。请谨慎使用此命令。

    • 执行命令redirect [ ***-instance ***-instance-name ] ip-nexthop ip-address &<1-4>,将符合流分类的报文重定向到下一跳。

      当存在多个下一跳时,设备按照主备方式对报文进行重定向转发。一个流行为中最多可以配置4个下一跳,设备根据下一跳的配置顺序确定主备链路,配置在前面的下一跳IP地址优先级高,配置的第一个下一跳IP地址作为主用链路,其它链路作为备用链路。当主用链路Down掉之后,则自动选取优先级高的下一跳作为新的主链路。

      icon-note.gif 说明:

      通过配置报文重定向功能可以实现策略路由。

    • 执行命令redirect ip-multihop { nexthop ip-address } &<2-4>,将符合流分类的报文重定向到配置的多个下一跳中的一个。

      如果配置了多个下一跳,设备按照等价路由负载分担方式对报文进行重定向转发,即:设备按照报文的源IP地址(不管流量大小)并根据HASH算法在多个下一跳中选择一个进行转发。源IP地址相同的流量,则不管流量多大都是选择同一个下一跳转发。

      使用重定向到多下一跳的正常转发过程中,如果当前下一跳对应的出接口状态突然为Down,或路由突然发生了改变,设备可将链路快速切换到当前可用的某个下一跳对应的出接口上。

      如果设备上没有命令中下一跳IP地址对应的ARP表项,使用此命令能配置成功,但重定向不能生效,设备仍按报文原来的目的地址转发,直到设备上有对应的ARP表项。

    • 执行命令redirect interface interface-type interface-number,将符合流分类的报文重定向到指定接口。
    • 执行命令redirect lsp public dest-address { nexthop-address | interface interface-type interface-number | secondary },将符合流分类的报文重定向到公网目标LSP上。
    • 执行命令redirect multi-trunk { eth-trunk trunk-id } &<1-4>,将符合流分类的报文重定向到多个Eth-Trunk。

      如果入端口为高速率接口(比如XGE接口),而重定向的出接口为低速率接口(比如GE接口),需要将报文重定向到多个Eth-Trunk下的物理接口,以保证流量较均匀地分配出去,避免丢包。此时,可通过将符合流分类的报文重定向到一个或多个Eth-Trunk来实现负载分担。详细应用及配置请参见配置基于Eth-Trunk的分流

    icon-note.gif 说明:

    不能在同一流行为中既配置remark destination-mac又配置以下命令:

    • redirect ip-nexthop
    • redirect ip-multihop
3.配置流策略:
  1. 执行命令system-view,进入系统视图。
  2. 执行命令traffic policy policy-name [ match-order { auto | config } ],创建流策略并进入流策略视图。
  3. 执行命令classifier classifier-name behavior behavior-name,在策略中关联流分类和流行为。
4.应用流策略
  • 在全局或槽位应用流策略
    1. 执行命令system-view,进入系统视图。
    2. 执行命令traffic-policy policy-name global { inbound | outbound } [ slot slot-id ],在全局或槽位的入方向或出方向应用流策略。

      全局每个方向上能且只能应用一个流策略。

      槽位的每个方向上能且只能应用一个流策略。如果全局某方向应用流策略后,不能再指定槽位在该方向应用流策略;指定槽位在某方向应用流策略后,也不能再全局在该方向应用流策略。

      • 在全局应用,系统对进入设备的所有匹配流分类规则的入方向或出方向报文流实施策略控制。
      • 在槽位应用,系统对进入该槽位对应单板的所有匹配流分类规则的入方向或出方向报文流实施策略控制。
  • 在接口上应用流策略
    1. 执行命令system-view,进入系统视图。
    2. 执行命令interface interface-type interface-number [.subnumber ],进入接口视图。
    3. 执行命令traffic-policy policy-name { inbound | outbound },在接口入方向或出方向应用流策略。

      每个接口的每个方向上能且只能应用一个流策略。

      应用后,系统对流经该接口并匹配流分类中规则的入方向或出方向报文实施策略控制。

      icon-note.gif 说明:

      建议不要在Untag类型端口出方向上应用包含有remark 8021premark cvlan-idremark vlan-id等动作的流策略,否则,可能导致报文内容出错。

      在X40SFC单板上,如果1~20中接口的与21~40号中的端口加入同一Eth-Trunk或VLAN,Eth-Trunk或VLAN出方向使用car动作进行限速,Eth-Trunk或VLAN的下行实际通过流量是配置CAR值的限速的2倍。

      在S6300上,如果1~24中接口的与25~48号中的端口加入同一Eth-Trunk或VLAN,Eth-Trunk或VLAN出方向使用car动作进行限速,Eth-Trunk或VLAN的下行实际通过流量是配置CAR值的限速的2倍。

  • 在VLAN下应用流策略
    1. 执行命令system-view,进入系统视图。
    2. 执行命令vlan vlan-id,进入VLAN视图。
    3. 执行命令traffic-policy policy-name { inbound | outbound },在VLAN入方向或出方向应用流策略。

      每个VLAN的每个方向能且只能应用一个流策略。

      应用后,系统对属于该VLAN并匹配流分类中规则的入方向或出方向报文实施策略控制。

后续处理

流策略应用后:

  • 再增加、修改、删除该流策略下绑定的流分类中的匹配规则,不需再重新应用流策略即可生效。
  • 再增加、修改、删除该流策略下绑定的流行为中的动作,不需再重新应用流策略即可生效。
  • 再增加、删除、修改该流策略下绑定的流分类及流行为对,不需再重新应用流策略即可生效。