クラウドおよびシステム管理 : Cisco Application Policy Infrastructure Controller(APIC)

ACI ファブリックの契約およびルールを確認して下さい

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 6 月 29 日) | フィードバック

概要

この資料に契約が確認しアプリケーション セントリック インフラストラクチャ(ACI)ファブリックで設定されることをきちんと動作する方法を記述されています。

: 論理的で、具体的なモデルの確認、またプログラムするハードウェアはこの資料に説明があります。

ポール Raytick およびロバート Correiro によって貢献される、Cisco TAC エンジニア。

トポロジ

この資料の全体にわたって使用する例では、仮想 な マシン(VM)は Leaf1 およびそれが Leaf2 に接続される VM-B と通信するようにする契約にきちんと整っています接続されます。 契約はインターネット制御メッセージ プロトコル (ICMP)および HTTP を両方可能にします。

このイメージはトポロジーを説明します:

プロセス 外観

これは契約およびルールのためのポリシー 相互対話およびフローです:

  1. アプリケーション ポリシー インフラストラクチャ コントローラ(APIC)の Policy Manager はスイッチのポリシー Element Manager と通信します。

  2. スイッチのポリシー Element Manager はスイッチのオブジェクト ストアをプログラムします。

  3. スイッチの Policy Manager はスイッチのアクセス制御リスト Quality of Service (ACLQOS)クライアントと通信します。

  4. ACLQOS クライアント プログラム ハードウェア。

使用される契約/ゾーニング ルールを識別して下さい

契約が 2 つのエンドポイント グループ(EPGs)のために追加される前に、例は示しますリーフからのゾーニング ルール コマンド 出力をここにあります。

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope     Action

=======  ======  ======  ========  ======   =====     ======

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4102     0       0       implicit enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled 2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

これは 2 つ EPGs が互いに通信できるように契約が追加された後同じコマンド 出力です:

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope   Action

=======  ======  ======  ========  ======   ========  ========

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4131     49155   32771   7         enabled  2686976   permit

4132     32771   49155   6         enabled  2686976   permit

4102     0       0       implicit  enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled  2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

: 新しいルール ID に注意して下さい(4131 および 4132)それは、7 および 6 のフィルタ ID、および 2686976 のスコープ追加されました。

注意: このコマンド 出力は容易にラボ システムで検査する必要があるルールを見つけることを可能にします; ただし、これは発生するダイナミック変更が付いている実稼働環境で扱いにくい場合もあります。

対象のルールを見つけるために用いることができるもう一つの方式は Visore を使用することです。 fvCtx のためのコンテキスト 管理対象オブジェクト(MO)の検索を行って下さい。 ここに示されているように特定のコンテキスト 識別名 (DN)をその画面でそれから、検索できます:

そのコンテキストのためのスコープを書き留めて下さい。 問い合わせる必要があるルールを見つけることができるように示ゾーニング ルール コマンド 出力にマッピング するためにこれを使用できます:

またここに示されているようにユーザインターフェイス(UI)からのコンテキストのためのセグメント ID/scope を、識別できます:

このスコープは提示ゾーニング ルール コマンド 出力で示されているそれと一致します:

スコープ ID 情報およびあなたにルールを識別し、ID をフィルタリングしてもらえば新しいフィルター見つけることを確認するために次のコマンドを使用できます(および EPGs 間のない暗黙の deny メッセージを)。 暗黙の deny メッセージはデフォルトで、EPGs が通信できないように含まれています。

Leaf1 が、Filter-6 (f-6)増分していることこのコマンド 出力の表記:

fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)
Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 1440, Egress: 0
fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)
Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 1470, Egress: 0

Leaf2 が、Filter-7 (f-7)増分していることこのコマンド 出力の表記:

fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)
Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 2481, Egress: 0
fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)
Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 2511, Egress: 0

ヒント: スコープのナレッジは、ルール ID、宛先およびソース pcTags およびフィルタこの問題を更に解決する試みと重要です。 ルール ID 存在 EPGs のナレッジを持っていることもまた役立ちます。

ここに示されているように moquery コマンドによって特定の pcTag のための DN 名前 fvAEPg およびグレップと MO の検索を、行うことができます:

admin@RTP_Apic1:~> moquery -c fvAEPg | grep 49155 -B 5

dn : uni/tn-Prod/ap-commerceworkspace/epg-Web
lcOwn : local
matchT : AtleastOne
modTs : 2014-10-16T01:27:35.355-04:00
monPolDn : uni/tn-common/monepg-default
pcTag : 49155

またここに示されているように moquery コマンドでフィルタオプションを、使用できます:

admin@RTP_Apic1:~> moquery -c fvAEPg -f 'fv.AEPg.pcTag=="49155"'
Total Objects shown: 1

# fv.AEPg
name : Web
childAction :
configIssues :
configSt : applied
descr :
dn : uni/tn-Prod/ap-commerceworkspace/epg-Web
lcOwn : local
matchT : AtleastOne
modTs : 2014-10-16T01:27:35.355-04:00
monPolDn : uni/tn-common/monepg-default
pcTag : 49155
prio : unspecified
rn : epg-Web
scope : 2523136
status :
triggerSt : triggerable
uid : 15374

ハードウェア プログラミングを確認して下さい

この場合ルールのためのハードウェア エントリを確認できます。 ハードウェア情報を表示するために、提示プラットフォームを内部 ns 表 mth_lux_slvz_DHS_SecurityGroupStatTable_memif_data 入力 コマンド入力します(これは vsh_lc コマンドです):

この例では、ハードウェア エントリ 41 (エントリ [000041])は増分しています。

: このコマンドの使用は実稼働環境で実用的ではないですが、このセクションに代りに説明がある他のコマンドを使用できます。

ルールを覚えていて下さい(4132)およびスコープ(268976):

Ternary Content Addressable Memory (TCAM) ハードウェア 索引項目マッピングにルール ID を判別するためにこのコマンドを入力しルール ID に基づいてフィルタリングして下さいおよび/または ID をフィルタリングして下さい:

module-1# show system internal aclqos zoning-rules

[snip]

===========================================
Rule ID: 4131 Scope 4 Src EPG: 49155 Dst EPG: 32771 Filter 7

Curr TCAM resource:
=============================
   unit_id: 0
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 62 | hw_index = 40
   === Region priority: 772 (rule prio: 3 entry: 4)===
       sw_index = 63 | hw_index = 45

===========================================
Rule ID: 4132 Scope 4 Src EPG: 32771 Dst EPG: 49155 Filter 6

Curr TCAM resource:
=============================
   unit_id: 0
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 66 | hw_index = 41
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 67 | hw_index = 42

[snip]

この例に関しては、対象の送信元および宛先 EPG 組み合せは 32771=0x8003、49155=0xC003 です。 従って、ルール ID を一致するこれらの送信元および宛先クラスのための TCAM エントリすべてを考慮する必要があります(4131 および 4132)および ID をフィルタリングして下さい(6 および 7)

この例では、いくつかのこれらの TCAM エントリはダンプされます。 これらののための ping および Webトラフィックを EPGs 可能にする参照に関しては、契約設定はここにあります:

module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0
_memif_data 41


=======================================================================
                         TABLE INSTANCE : 0
=======================================================================
ENTRY[000041] =
               sg_label=0x4           

               sclass=0x8003           

               dclass=0xc003           

               prot=0x1 (IP Protocol 0x01 = ICMP)

: 前のコマンド 青で表示は Northstar ASIC のために使用されます。 コマンドは Donner か Donner+ のために使用する示しますプラットフォームに内部 ns 表 mth_luxh_slvq_DHS_SecurityGroupKeyTable0_memif_data をあります。

sup_tx_mask=0x1            
               src_policy_incomplete_mask=0x1          

               dst_policy_incomplete_mask=0x1           

               class_eq_mask=0x1

               aclass_mask=0x1ff

               port_dir_mask=0x1           

               dport_mask=0xffff           

               sport_mask=0xffff          

               tcpflags_mask=0xff
           
               ip_opt_mask=0x1
           
               ipv6_route_mask=0x1
           
               ip_fragment_mask=0x1
           
               ip_frag_offset0_mask=0x1           

               ip_frag_offset1_mask=0x1           

               ip_mf_mask=0x1
           
               l4_partial_mask=0x1           

               dst_local_mask=0x1           

               routeable_mask=0x1           

               spare_mask=0x7ff           

               v4addr_key_mask=0x1           

               v6addr_key_mask=0x1           

               valid=0x1


module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0
_memif_data 42


=======================================================================
                         TABLE INSTANCE : 0
=======================================================================
ENTRY[000042] =

               sg_label=0x4           

               sclass=0x8003           

               dclass=0xc003           

               prot=0x6 <--           

               dport=0x50 <--

sup_tx_mask=0x1
           
               src_policy_incomplete_mask=0x1           

               dst_policy_incomplete_mask=0x1           

               class_eq_mask=0x1           

               aclass_mask=0x1ff           

               port_dir_mask=0x1           

               sport_mask=0xffff           

               tcpflags_mask=0xff           

               ip_opt_mask=0x1           

               ipv6_route_mask=0x1           

               ip_fragment_mask=0x1           

               ip_frag_offset0_mask=0x1           

               ip_frag_offset1_mask=0x1           

               ip_mf_mask=0x1           

               l4_partial_mask=0x1           

               dst_local_mask=0x1

ヒント: 同じ方式の TCAM エントリのそれぞれを確認できます。

ハードウェア プログラミング問題を解決して下さい

このセクションはいくつかの有用なトラブルシューティング コマンドおよび助言を提供します。

有用なトラブルシューティング コマンド

問題が直面するときリーフ Policy Manager エラーを見つけるために使用できるいくつかの有用な コマンドはここにあります:

fab1_leaf1# show system internal policy-mgr event-history errors


1) Event:E_DEBUG, length:84, at 6132 usecs after Mon Sep 8 13:15:56 2014

   [103] policy_mgr_handle_ctx_mrules(779): ERROR: Failed to process prio(1537):
(null)


2) Event:E_DEBUG, length:141, at 6105 usecs after Mon Sep 8 13:15:56 2014

   [103] policy_mgr_process_mrule_prio_aces(646): ERROR: Failed to insert iptables
rule for rule(4120) , fentry(5_0) with priority(1537): (null)


[snip]


fab1_leaf1# show system internal policy-mgr event-histor trace

[1409945922.23737] policy_mgr_ppf_hdl_close_state:562: Got close state callback

[1409945922.23696] policy_mgr_ppf_rdy_ntf_fun:239: StatStoreEnd returned: 0x0(SU

CCESS)

[1409945922.23502] policy_mgr_ppf_rdy_ntf_fun:208: ppf ready notification: sess_

id: (0xFF0104B400005B51)

[1409945922.23475] policy_mgr_ppf_rdy_ntf_fun:205: Got ready notification callba

ck with statustype (4)

[1409945921.983476] policy_mgr_gwrap_handler:992: Dropped...now purging it...

[1409945921.982882] policy_mgr_ppf_goto_state_fun:481: Sess id (0xFF0104B400005B


[snip]


module-1# show system internal aclqos event-history trace

T [Fri Sep 5 13:18:24.863283] ============= Session End ============

T [Fri Sep 5 13:18:24.862924] Commit phase: Time taken 0.62 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.862302] ppf session [0xff0104b410000087] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.861421] Verify phase: Time taken 0.77 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.860615] ============= Session Begin ============

T [Fri Sep 5 13:18:24.830472] ============= Session End ============

T [Fri Sep 5 13:18:24.830062] Commit phase: Time taken 0.98 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.829085] ppf session [0xff0104b410000086] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.827685] Verify phase: Time taken 2.04 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.825388] ============= Session Begin ============

T [Fri Sep 5 12:32:51.364225] ============= Session End ============

T [Fri Sep 5 12:32:51.363748] Commit phase: Time taken 0.64 ms, usr 0.00 ms,


[snip]

ヒント: いくつかのファイルは大きいです、従ってそれらをブートフラッシュに送信 し、エディタで検査することは容易です。

module-1# show system internal aclqos ?

asic           Asic information

brcm           Broadcam information

database       Database

event-history   Show various event logs of ACLQOS

mem-stats       Show memory allocation statistics of ACLQOS

prefix         External EPG prefixes

qos             QoS related information

range-resource Zoning rules L4 destination port range resources

regions         Security TCAM priority regions

span           SPAN related information

zoning-rules   Show zoning rules


module-1# show system internal aclqos event-history ?

errors       Show error logs of ACLQOS

msgs         Show various message logs of ACLQOS

ppf          Show ppf logs of ACLQOS

ppf-parse    Show ppf-parse logs of ACLQOS

prefix       Show prefix logs of ACLQOS

qos          Show qos logs of ACLQOS

qos-detail   Show detailed qos logs of ACLQOS

span         Show span logs of ACLQOS

span-detail  Show detailed span logs of ACLQOS

trace        Show trace logs of ACLQOS

trace-detail Show detailed trace logs of ACLQOS

zoning-rules Show detailed logs of ACLQOS

トラブルシューティングのヒント

いくつかの有用なトラブルシューティング に 役立つ ヒントはここにあります:

  • TCAM 枯渇問題に直面するようである場合疑わしいルールと関連付けられるエラーがあるかどうか UI か CLI を点検して下さい。 このエラーは表示されるかもしれません:
    Fault F1203 - Rule failed due to hardware programming error.
    1 つのルールは Application-specific integrated circuit (ASIC)の複数の TCAM エントリを奪取 するかもしれません。 ASIC のエントリの数を表示するために、これらのコマンドを入力します:
    fab1-leaf1# vsh_lc

    module-1# show platform internal ns table-health
    VLAN STATE curr usage: 0 - size: 4096
    QQ curr usage: 0 - size: 16384
    SEG STATE curr usage: 0 - size: 4096
    SRC TEP curr usage: 0 - size: 4096
    POLICY KEY curr usage: 0 - size: 1
    SRC VP curr usage: 0 - size: 4096
    SEC GRP curr usage: 43 - size: 4096

    : この例では、現在の 43 のエントリがあります。 この使用方法はまた eqptCapacity クラスの APIC に報告されます。

  • 複数の一致があるとき、TCAM ルックアップはより低い hw インデックスを戻します。 インデックスを確認するために、このコマンドを入力して下さい:
    show system internal aclqos zoning-rule
    解決するとき、implict ルールによって引き起こされるドロップするを観察するかもしれません。 このルールは下部のに常にあります、つまりルールがないのでパケットが廃棄されることを意味します。 これはミスコンフィギュレーションが原因です、またはポリシー Element Manager はそれを予想通りプログラムしません。

  • pcTags はローカルグローバル スコープがある場合があります:

    • グローバルに スコープ内の pcTag –この pcTag に通常より低い値(10進法式の 4 ディジット以下)があります。

    • ローカルで スコープ内の pcTag –この pcTag は大きい値(10進法式の 5 ディジット)を使用します。

  • 解決するとき、値の長さのクィック ルックはスコープを示します。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 119023