2014-06-11 05:37 PM
このドキュメントでは、拡張 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 となるかそうでないかは、指定したオペランドによって異なります。
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-----
ここでは、以下の 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 として使われているオペランドを、送信元ポート、宛先ポートごとに確認することができます。
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます