シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

拡張 ACL の hardware resource LOU, l4op について

はじめに

このドキュメントでは、拡張 ACL でポート指定する際に使われる hardware resource についてのテクニカル ノートを提供します。

 

問題の説明

拡張 ACL の中で、range や gt, lt, neq オプションなどを使ってオペランド(ポート範囲)を指定する場合、TCAM とは別に LOU (Logical Operations Unit) と呼ばれる hardware resource が使用されます。Nexus 7000 シリーズ スイッチでは、LOU がモジュールごとに用意されています。 ACL 内の1つの ACE (Access Control Entry) に対して使用される LOU は l4op (Layer 4 Operation) と呼ばれ、Nexus 7000 では 1つの ACL に対し、l4op は10個までという制限があります。

オペランドを指定した場合でも l4op となる場合とそうでない場合があるため、このドキュメントではその区別の仕方や実際に使用されている hardware resource の確認方法について解説します。

 

解説

l4op の該当性

上述の通り、l4op となるかそうでないかは、指定したオペランドによって異なります。

Nexus 7000 においては、1つの ACE 内で指定されたオペランドが5個以下のビットマスクで表現できる場合は l4op ではなく、6個以上のビットマスクで表現される場合は l4op となります。

 

まず始めに、以下の ACL について見てみましょう。

N7K(config)# ip access-list VLAN200_IN
N7K(config-acl)# permit tcp any 1.1.1.1/32 range 1 17

オペランドは 1-17 となっています。

このポート範囲は、以下のように5つのビットマスクで表現されます。

00001 : 1
0001X : 2-3
001XX : 4-7
01XXX : 8-15
1000X : 16-17

このように、5個までのビットマスクで表現できるオペランドに対しては、各ビットマスクごとにhardware table 上に ACE が保持されます。これは、l4op とはなりません。

N7K# show hardware access-list input entries detail module 4
-----snip-----
                VLAN 200  :
                =========
Tcam 1 resource usage:
----------------------
Label_b = 0x800
 Bank 0
 ------
   IPv4 Class
     Policies: RACL(VLAN200_IN)  [Merged]
     Entries:
       [Index] Entry [Stats]
       ---------------------
[73344] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 fragment  [0]
[76288] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 16 17  [0]
[99072] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 8 15  [0]
[21264] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 4 7  [0]
[111616] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 2 3  [0]
[73216] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 eq 1  [0]
[71424] deny-routed ip 0.0.0.0/0 0.0.0.0/0  [0]
[14400] deny-routed ip 0.0.0.0/0 0.0.0.0/0 fragment  [0]


L4 protocol cam entries usage: none

No mac protocol cam entries are in use
-----snip-----

※module  4 上のインターフェースに access-list VLAN200_IN を適用しているため、コマンド上で "module 4" と指定しています。

 

次に、以下の ACE について考えてみましょう。

N7K(config)# ip access-list VLAN200_IN
N7K(config-acl)# permit tcp any 2.2.2.2/32 range 2001 2999

オペランドは 2001-2999 であり、以下のように19個ものビットマスクで表現されます。

011111010001 : 2001
01111101001X : 2002-2003
0111110101XX : 2004-2007
011111011XXX : 2008-2015
0111111XXXXX : 2016-2047
10000000000X : 2048-2049
10000000001X : 2050-2051
1000000001XX : 2052-2055
100000001XXX : 2056-2063
10000001XXXX : 2064-2079
1000001XXXXX : 2080-2111
100001XXXXXX : 2112-2175
10001XXXXXXX : 2176-2303
1001XXXXXXXX : 2304-2559
1010XXXXXXXX : 2560-2815
10110XXXXXXX : 2816-2943
1011100XXXXX : 2944-2975
10111010XXXX : 2976-2991
101110110XXX : 2992-2999

6個以上のビットマスクで表現される オペランドに対しては、オペランドは分割されずに1つのエントリとして hardware 上に保持されます。

N7K# show hardware access-list input entries detail module 4
-----snip-----
                VLAN 200  :
                =========
Tcam 1 resource usage:
----------------------
Label_b = 0x5
 Bank 0
 ------
   IPv4 Class
     Policies: RACL(VLAN200_IN)  [Merged]
     Entries:
       [Index] Entry [Stats]
       ---------------------
[91490] permit-routed tcp 0.0.0.0/0 2.2.2.2/32 fragment  [0]
[112320] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 fragment  [0]
[14980] permit-routed tcp 0.0.0.0/0 2.2.2.2/32 range 2001 2999   [0]
[73216] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 16 17  [0]
[20896] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 8 15  [0]
[91504] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 4 7  [0]
[29504] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 range 2 3  [0]
[112192] permit-routed tcp 0.0.0.0/0 1.1.1.1/32 eq 1  [0]
[96788] deny-routed ip 0.0.0.0/0 0.0.0.0/0  [0]
[72970] deny-routed ip 0.0.0.0/0 0.0.0.0/0 fragment  [0]


L4 protocol cam entries usage: none

No mac protocol cam entries are in use
-----snip-----

この場合は l4op となり、以下のようにして確認できます。

N7K# show hardware access-list input l4ops module 4
-----snip-----
                VLAN 200  :
                =========
Tcam 1 resource usage:
----------------------
Lou usage:
   Lou    sw_id   l4op_bit   ref_count          Operation
----------------------------------------------------------------------
   3(AB)      2        0         1      dest-port: RANGE(2001, 2999)

TCP flags usage: none
-----snip-----

 

LOU, l4op 使用量の確認

ここでは、以下の ACL 例に対して考察します。

N7K(config)# ip access-list VLAN200_IN
N7K(config-acl)# permit tcp 2.2.2.2/32 2.2.2.8/32 range 5001 6000
N7K(config-acl)# permit tcp 2.2.2.2/32 2.2.2.9/32 range 6001 7000
N7K(config-acl)# permit tcp 2.2.2.2/32 range 7001 8000 2.2.2.10/32
N7K(config-acl)# permit tcp 2.2.2.2/32 2.2.2.11/32 gt 1500
N7K(config-acl)# permit tcp 2.2.2.2/32 lt 2300 2.2.2.12/32

 

この ACL が適用されているインターフェースを持つ module 4 の LOU, l4op の許容量と使用量は以下のようにして確認できます。

N7K# show hardware access-list resource utilization module 4

         ACL Hardware Resource Utilization (Module 4)
         --------------------------------------------
                          Used    Free    Percent
                                          Utilization
-----------------------------------------------------
Tcam 0, Bank 0            2       32766   0.00
Tcam 0, Bank 1            3       32765   0.00
Tcam 1, Bank 0            11      32757   0.03
Tcam 1, Bank 1            3       32765   0.00

LOU                       5       99      4.80
Both LOU Operands         3
Single LOU Operands       2
LOU L4 src port:          1
LOU L4 dst port:          1
LOU L3 packet len:        0
LOU IP tos:               0
LOU IP dscp:              0
LOU ip precedence:        0
LOU ip TTL:               0
TCP Flags                 0       16      0.00

Protocol CAM              0       7       0.00
Mac Etype/Proto CAM       0       14      0.00

Non L4op labels, Tcam 0   0       6143    0.00
Non L4op labels, Tcam 1   0       6143    0.00
L4 op labels, Tcam 0      0       2047    0.00
L4 op labels, Tcam 1      1       2046    0.04

Ingress Dest info table   0       512     0.00
Egress Dest info table    0       512     0.00
N7K#
N7K# show hardware access-list input l4ops module 4
-----snip-----
                VLAN 200  :
                =========
Tcam 1 resource usage:
----------------------
Lou usage:
   Lou    sw_id   l4op_bit   ref_count          Operation
----------------------------------------------------------------------
   0(AB)      0        0         1      dest-port: RANGE(5001, 6000)
   1(AB)      1        1         1      dest-port: RANGE(6001, 7000)
   2(AB)      2        2         1      src-port: RANGE(7001, 8000)
   3(A)       3        3         1      dest-port: GT(1500)
   4(A)       4        4         1      src-port: LT(2300)
-----snip-----

l4op として使われているオペランドを、送信元ポート、宛先ポートごとに確認することができます。

 

関連情報

382
閲覧回数
0
いいね!
0
コメント