この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、適応型セキュリティアプライアンス(ASA)のマルチキャストルーティングと一般的な問題について説明します。
短縮形 |
説明 |
FHR |
ファーストホップルータ:マルチキャストトラフィックの送信元に直接接続されたホップ。 |
LHR |
ラストホップルータ:マルチキャストトラフィックの受信者に直接接続されたホップ。 |
RP |
ランデブーポイント |
DR |
代表ルータ |
SPT |
最短パスツリー |
RPT |
ランデブーポイント(RP)ツリー、共有ツリー |
RPF |
リバースパス転送(RPF) |
油 |
Outgoing interface list |
MRIB |
マルチキャストルーティング情報ベース |
MFIB |
マルチキャスト転送情報ベース(MFIB) |
ASM |
Any-Source Multicast |
BSR |
ブートストラップルータ |
SSM |
Source-Specific Multicast |
FP |
高速パス |
SP |
低速パス |
脳性麻痺 |
コントロールポイント |
PPS |
パケット/秒レート |
ASAは真のマルチキャストルーティングプロトコル(PIM)を介してネイバーと通信するため、PIMスパースモードが推奨されます。IGMP スタブモードは、ASA バージョン 7.0 がリリースされる以前には唯一のマルチキャスト設定オプションでしたが、単純にクライアントから受信した IGMP レポートをアップストリーム ルータに向けて転送することで動作します。
一般に、マルチキャストインフラストラクチャは次のコンポーネントで構成されます。
送信者=>マルチキャストストリームを発信するホストまたはネットワークデバイス。たとえば、EIGRPやOSPFなどのルーティングプロトコルを実行しているビデオストリームやオーディオストリームを送信するサーバやネットワークデバイスなどです。
Receiver =>マルチキャストストリームを受信するホストまたはデバイス。この用語は、トラフィックに積極的に関心を持ち、IGMPを使用して対象のマルチキャストグループに参加または脱退するホストに対して、より頻繁に使用されます。
ルータ/ ASA =>マルチキャストストリーム/トラフィックを処理し、必要に応じてネットワークの他のセグメントに転送するネットワークデバイス(送信元からクライアント)。
Multicast Routing Protocol =>マルチキャストパケットを転送するプロトコル。最も一般的なのはPIM(Protocol Independent Multicast)ですが、MOSPFなどの他のプロトコルもあります。
Internet Group Management Protocol(IGMP)=>特定のグループからマルチキャストストリームを受信するためにクライアントによって使用されるプロセス。
PIM スパースモードでは、すべてのマルチキャスト トラフィックは最初にランデブー ポイント(RP)に送られ、そこから受信者に向けて転送されます。しばらくすると、マルチキャストフローは送信元から受信側に直接到達します(RPをバイパスします)。
次の図は、ASAの1つのインターフェイスにマルチキャストクライアントが存在し、別のインターフェイスにPIMネイバーが存在する一般的な展開を示しています。
![]() |
1.マルチキャストルーティングを有効にします(グローバルコンフィギュレーションモード)。
ASA(config)# multicast-routing
2. PIMランデブーポイントアドレスを定義します。
ASA(config)# pim rp-address 172.18.123.3
3.適切なインターフェイスでマルチキャストパケットを許可します(ASAのセキュリティポリシーが着信マルチキャストパケットをブロックする場合にのみ必要です)。
access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside
クライアントのIGMP登録(赤色のステップ)とサーバが受信するストリーム(緑色のステップ)の色が異なることに注目してください。この方法では、両方のプロセスが独立して発生する可能性があることを示しています。
クライアント登録手順(赤い手順):
1.クライアントがグループ239.1.1.77のIGMPレポートを送信する
2.ルータは、グループ239.1.1.77に対して設定されたスタティックRP(10.1.1.1)にPIM Joinメッセージを送信します。
3. ASAがグループ239.1.1.77に対するPIM JoinメッセージをRPに送信します。
ASAでは、show mrouteコマンドの出力にPIM *,Gエントリが表示されます。
ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:03:43/00:02:41, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:43/00:02:41
ただし、送信元サーバがストリームを開始していないため、ASAの「show mfib」出力には受信したパケットは表示されません。
ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 0/0/0/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/0
サーバがマルチキャストグループへのトラフィックの送信を開始する前に、RPは次のように、着信インターフェイスのない「*.G」エントリのみをリストに表示します。
CRSv#show ip mroute 239.1.1.77 IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group, G - Received BGP C-Mroute, g - Sent BGP C-Mroute, N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, Q - Received BGP S-A Route, q - Sent BGP S-A Route, V - RD & Vector, v - Vector, p - PIM Joins on route, x - VxLAN group Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.77), 00:00:02/00:03:27, RP 10.1.1.1, flags: S Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:02/00:03:27
サーバがマルチキャストグループへのストリームを開始すると、RPは「S,G」エントリを作成し、送信側に面したインターフェイスを着信インターフェイスリストに追加し、トラフィックのダウンストリームのASAへの送信を開始します。
CRSv#show ip mroute 239.1.1.77 ... (*, 239.1.1.77), 00:03:29/stopped, RP 10.1.1.1, flags: SF Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:03:29/00:02:58 (10.38.118.10, 239.1.1.77), 00:00:07/00:02:52, flags: FT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:07/00:03:22
確認には、次のコマンドを使用します。
- show mrouteコマンドは、「S,G」エントリを表示します
- show mfibコマンドは、転送パケットカウンタを表示します。
- show connコマンドは、マルチキャストグループipに関連する接続を表示します
ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:06:22/00:02:50, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:06:22/00:02:50 (10.38.118.10, 239.1.1.77), 00:03:00/00:03:28, flags: ST Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:00/00:03:26 ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 15/0/1271/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/15 (10.38.118.10,239.1.1.77) Flags: K Forwarding: 7159/34/1349/360, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 7159/5 ciscoasa# show conn all | i 239.1.1.77 UDP outside 10.38.118.10:58944 inside 239.1.1.77:5004, idle 0:00:00, bytes 10732896, flags - UDP outside 10.38.118.10:58945 inside 239.1.1.77:5005, idle 0:00:01, bytes 2752, flags - UDP outside 10.38.118.10:58944 NP Identity Ifc 239.1.1.77:5004, idle 0:00:00, bytes 0, flags - UDP outside 10.38.118.10:58945 NP Identity Ifc 239.1.1.77:5005, idle 0:00:01, bytes 0, flags -
注:クライアントがマルチキャストクライアントアプリケーションを閉じると、ホストはIGMPクエリーメッセージを送信します。
これがクライアントがストリームを受信したいと考えているルータによって知られている唯一のホストである場合、ルータはRPにIGMP Pruneメッセージを送信します。
![]() |
1.マルチキャストルーティングを有効にします(グローバル設定モード)。
ASA(config)# multicast-routing
2.ファイアウォールがigmpレポートを受信するインターフェイスで、igmp forward-interfaceコマンドを設定します。このパケットをこのインターフェイスからストリームの送信元へ転送します。この例では、マルチキャスト受信側は内部インターフェイスに直接接続されており、マルチキャスト送信元は外部インターフェイスの先にあります。
! interface Ethernet0 nameif outside security-level 0 ip address 172.16.1.1 255.255.255.0 no pim ! interface Ethernet1 nameif inside security-level 100 ip address 10.0.0.1 255.255.255.0 no pim igmp forward interface outside !
3.適切なインターフェイスでマルチキャストパケットを許可します(ASAのセキュリティポリシーが着信マルチキャストトラフィックを拒否する場合にのみ必要です)。
ASA(config)# access-list 105 extended permit ip any host 224.1.2.3 ASA(config)# access-group 105 in interface outside
さまざまなigmp interface sub-modeコマンドに関して混乱が生じることが多く、それぞれをいつ使用するかを次の図に示します。
![]() |
双方向PIMでは、共有ツリー(SPT)は存在しません。これは、次の3つのことを意味します。
1.ファーストホップルータ(送信側に接続)は、PIM RegisterパケットをRPに送信しません。
2. RPは、送信元ツリーに参加するためのPIM JOINメッセージを送信しません。
3.受信側へのパス内のルータは、RPに向けてPIM Joinメッセージを送信し、RPTに参加します。
これは、デバイスがSPTに参加しないため、ASAが(S,G)を生成しないことを意味します。すべてのマルチキャストトラフィックはRPを通過します。ASAは、(*,G)が存在する限り、すべてのマルチキャストトラフィックを転送します。(*,G)がない場合は、ASAがPIM Joinパケットを受信しなかったことを意味します。この場合、ASAはマルチキャストパケットを転送できません。
1.マルチキャストルーティングを有効にします(グローバルコンフィギュレーションモード)。
ASA(config)# multicast-routing
2. PIMランデブーポイントアドレスを定義します。
ASA(config)# pim rp-address 172.18.123.3 bidir
3.適切なインターフェイスでマルチキャストパケットを許可します(ASAのセキュリティポリシーが着信マルチキャストパケットをブロックする場合にのみ必要です)。
access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside
ASAでのマルチキャスト転送の問題を完全に理解して診断するには、次の情報の一部またはすべてが必要です。
show mroute show mfib show pim neighbor show route show tech-support
capture cap1 interface outside match ip any host 239.1.1.77 >>> This captures the multicast traffic itself capture cappim1 interface inside match pim any any >>> This captures PIM Join/Prune messages capture capigmp interface inside match igmp any any >>> This captures IGMP Report/Query messages
show mroute コマンドの出力は、さまざまなグループ情報と転送情報を表示し、IOS の show mroute コマンドとよく似ています。show mfib コマンドは、さまざまなマルチキャスト グループの転送ステータスを表示します。特に Forwarding パケット カウンタと Other(ドロップを示す)を確認することが重要です。
ciscoasa# show mfib Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,224.1.2.3) Flags: S K Forwarding: 0/0/0/0, Other: 0/0/0 inside Flags: F Pkts: 0/0 (192.168.1.100,224.1.2.3) Flags: K Forwarding: 6749/18/1300/182, Other: 690/0/690 outside Flags: A inside Flags: F Pkts: 6619/8 (*,232.0.0.0/8) Flags: K Forwarding: 0/0/0/0, Other: 0/0/0 ciscoasa#
clear mfib countersコマンドを使用すると、カウンタをクリアできます。これは、テスト中に非常に便利です。
ciscoasa# clear mfib counters
オンボードパケットキャプチャユーティリティは、マルチキャストの問題のトラブルシューティングに非常に役立ちます。次の例では、DMZインターフェイスで239.17.17.17を宛先とするすべての入力パケットがキャプチャされます。
ciscoasa# capture dmzcap interface dmz ciscoasa# capture dmzcap match ip any host 239.17.17.17 ciscoasa# show cap dmzcap 324 packets captured 1: 17:13:30.976618 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 2: 17:13:30.976679 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 3: 17:13:30.996606 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 4: 17:13:30.996652 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 5: 17:13:31.016676 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 6: 17:13:31.016722 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 ....
show capture x detailコマンドの出力には、パケットのTTLが表示されます。これは非常に便利です。次の出力では、パケットのTTLは1ですが(デフォルトではIPパケットのTTLが減分されないため、ASAはこのパケットを渡します)、下流ルータはパケットを廃棄します。
ASA# show cap capout detail 453 packets captured ... 1: 14:40:39.427147 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.4.2.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0)
パケットキャプチャは、PIMおよびIGMPトラフィックのキャプチャにも役立ちます。次のキャプチャは、内部インターフェイスが10.0.0.2から送信されたIGMPパケット(IPプロトコル2)を受信したことを示しています。
ciscoasa# capture capin interface inside ciscoasa# capture capin match igmp any any ciscoasa# show cap capin 1 packets captured 1: 10:47:53.540346 802.1Q vlan#15 P0 10.0.0.2 > 224.1.2.3: ip-proto-2, length 8 ciscoasa#
パケットのTTLは「show capture x detail」コマンドで確認できることに注意してください。
次に、ドロップされたマルチキャストパケットとドロップの理由(punt-rate-limit)を示すASPドロップキャプチャを示します。
ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded 13: 14:37:26.538439 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded
次の図は、PIMスパースモードでASAがネイバーデバイスと通信する方法を示しています。
ネットワークトポロジを理解する
特定のマルチキャストストリームの送信側と受信側のロケーションを正確に特定します。また、マルチキャストグループのIPアドレスとランデブーポイントの場所を特定します。
|
この場合、データはASAの外部インターフェイスで受信され、内部インターフェイスのマルチキャスト受信側に転送されます。受信側はASAの内部インターフェイスと同じIPサブネットにあるため、クライアントがストリームの受信を要求したときに、内部インターフェイスで受信されたIGMPレポートが表示されることを想定してください。送信元の IP アドレスは 192.168.1.50 です。
ASAがレシーバからIGMPレポートを受信することを確認します
この例では、IGMP レポートは受信者によって生成され、ASA によって処理されます。
パケット キャプチャと debug igmp の出力を使用して、ASA が IGMP メッセージを受信して正常に処理したことを確認できます。
ASAがランデブーポイントに向けてPIM joinメッセージを送信することを確認します
ASA は IGMP レポートを解釈して PIM join メッセージを生成し、それをインターフェイスから RP に向けて送信します。
![]() |
次の出力はdebug pim group 224.1.2.3によるものであり、ASAがPIM joinメッセージを正常に送信したことを示しています。マルチキャストストリームの送信元は192.168.1.50です。
IPv4 PIM: (*,224.1.2.3) J/P processing IPv4 PIM: (*,224.1.2.3) Periodic J/P scheduled in 50 secs IPv4 PIM: (*,224.1.2.3) J/P adding Join on outside IPv4 PIM: (*,224.1.2.3) inside Processing timers IPv4 PIM: Sending J/P message for neighbor 10.2.3.2 on outside for 1 groups IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) MRIB update (a=0,f=0,t=1) IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB update (f=20,c=20) IPv4 PIM: [0] (192.168.1.50,224.1.2.3) Signal present on outside IPv4 PIM: (192.168.1.50,224.1.2.3) Create entry IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB modify NS IPv4 PIM: Adding monitor for 192.168.1.50
ASAがマルチキャストストリームを受信して転送することを確認します
ASAは外部インターフェイス(緑色の矢印)でマルチキャストトラフィックの受信を開始し、内部のレシーバに転送します。
![]() |
show mroute コマンドと show mfib コマンド、およびパケット キャプチャを使用して、ASA がマルチキャスト パケットを受信して転送することを確認できます。
接続は接続テーブルに組み込まれ、マルチキャストストリームを表します。
ciscoasa# show conn 59 in use, 29089 most used ... UDP outside:192.168.1.50/52075 inside:224.1.2.3/1234 flags - ...
このセクションでは、一連の実際のASAマルチキャスト関連の問題について説明します
この問題が発生すると、ASA はインターフェイスからの PIM メッセージのすべての送信に失敗します。次の図は、ASAが送信側に向けてPIMメッセージを送信できないことを示していますが、ASAがRPに向けてPIMメッセージを送信する必要がある場合にも同じ問題が発生する可能性があります。
![]() |
debug pimコマンドの出力は、ASAがPIMメッセージをアップストリームのネクストホップルータに送信できないことを示しています。
IPv4 PIM: Sending J/P to an invalid neighbor: outside 10.0.0.1
この問題は ASA 固有のものではなく、ルータにも影響します。この問題は、ルーティングテーブルの設定とPIMネイバーによって使用されるHSRP設定の組み合わせによって引き起こされます。
ルーティングテーブルは、HSRP IP 10.0.0.1をネクストホップデバイスとして指定しています。
ciscoasa# show run route route outside 0.0.0.0 0.0.0.0 10.0.0.1 1
しかし、PIM のネイバー関係は、HSRP IP ではなく、ルータの物理インターフェイス IP アドレスとの間で形成されています。
ciscoasa# show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 10.0.0.2 outside 01:18:27 00:01:25 1 10.0.0.3 outside 01:18:03 00:01:29 1 (DR)
詳細は、『PIMスパースモードがHSRPアドレスへのスタティックルートと連動しない理由』を参照してください。
ドキュメントの抜粋を次に示します。
ルータはなぜ Join/Prune メッセージを送信しないのでしょうか。 RFC 2362 には「ルータは、(S,G)、(*,G)、および (*,*,RP) の各エントリに関連付けられた明確な RPF ネイバーに対して、定期的に Join/Prune メッセージを送信する。Join/Prune メッセージは、RPF ネイバーが PIM ネイバーである場合にのみ送信される」と規定されています。
この問題を回避するには、問題のトラフィックに対して ASA でスタティックな mroute エントリを追加します。2つのルータインターフェイスIPアドレス(10.0.0.2または10.0.0.3)のいずれかを指していることを確認します。この場合、次のコマンドにより、ASAは172.16.1.2のマルチキャスト送信者に向けてPIMメッセージを送信できます。
ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 10.0.0.3
これが完了すると、マルチキャストルーティングテーブルはASAのユニキャストルーティングテーブルを上書きし、ASAはPIMメッセージを10.0.0.3ネイバーに直接送信します。
この問題では ASA は直接接続されたマルチキャスト受信者から IGMP レポートを受信しますが、それを無視します。デバッグ出力は生成されず、パケットは単に廃棄され、ストリームの受信は失敗します。
![]() |
この問題では、ASAはクライアントが存在するLANセグメント上のPIM選択の指定ルータではないため、パケットを無視します。
次のASA CLI出力は、別のデバイスが内部インターフェイスネットワーク上の代表ルータ(「DR」で示される)であることを示しています。
ciscoasa#show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 192.168.1.2 outside 01:18:27 00:01:25 N/A> 10.0.0.2 inside 01:18:03 00:01:29 1 (DR)
デフォルトでは、multicast-routingコマンドが設定に追加されると、すべてのASAインターフェイスでPIMが有効になります。ASAのInsideインターフェイス(クライアントが存在する場所)に他のPIMネイバー(他のルータまたはASA)があり、そのセグメントのDRが選出されたために、これらのネイバーの1つが選出された場合、DR以外の他のルータはIGMPレポートをドロップします。この問題を解決するには、インターフェイスでPIMを無効にするか(関係するインターフェイスでno pimコマンドを使用)、pim dr-priorityインターフェイスコマンドを使用してASAをセグメントのDRにします。
デフォルトでは、ASAは500の現在のアクティブな参加(レポート)をインターフェイス上で追跡できます。これは設定可能な最大値です。多数のマルチキャストストリームがインターフェイスの外部のクライアントによって要求される場合、最大500のアクティブなJoinが発生する可能性があり、ASAはマルチキャスト受信側からの追加の着信IGMPレポートを無視する可能性があります。
これがマルチキャスト障害の原因であるかどうかを確認するには、コマンド「show igmp interface interfacename」を発行し、インターフェイスの「IGMP制限」情報を探します。
ASA# show igmp interface inside Hosting-DMZ is up, line protocol is up Internet address is 10.11.27.13/24 IGMP is enabled on interface Current IGMP version is 2 IGMP query interval is 125 seconds IGMP querier timeout is 255 seconds IGMP max query response time is 10 seconds Last member query response interval is 1 seconds Inbound IGMP access group is: IGMP limit is 500, currently active joins: 500 Cumulative IGMP activity: 7018 joins, 6219 leaves IGMP querying router is 10.11.27.13 (this system)
DEBUG - IGMP: Group x.x.x.x limit denied on outside
このアドレス範囲は、ASA で現在サポートされていない Source Specific Multicast(SSM)で使用されます。
debug igmpコマンドの出力に次のエラーが表示されます。
IGMP: Exclude report on inside ignored for SSM group 232.179.89.253
この場合、ASA はインターフェイスでマルチキャスト トラフィックを受信しますが、受信者には転送されません。パケットがリバース パス転送(RPF)のセキュリティ チェックに失敗したため、ASA によってパケットがドロップされます。RPF はすべてのインターフェイスでマルチキャスト トラフィックに対して有効であり、無効にはできません(ユニキャスト パケットに対してはこのチェックはデフォルトではオフで、ip verify reverse-path interface コマンドによって有効になります)。
ASA は、マルチキャスト トラフィックをインターフェイスで受信したときに、RPF チェックによってそのインターフェイス上でマルチキャスト トラフィックの送信元へ戻るルートが存在するかどうかを確認します(ユニキャストとマルチキャストのルーティング テーブルを確認します)。送信元へのルートがない場合はパケットをドロップします。このドロップは show asp drop の出力でカウンタとして表示されます。
ciscoasa(config)# show asp drop Frame drop: Invalid UDP Length 2 No valid adjacency 36 No route to host 4469 Reverse-path verify failed 121012
1つのオプションは、トラフィックの送信元にmrouteを追加することです。次の例では、mrouteコマンドを使用して、外部インターフェイスで受信した172.16.1.2を送信元とするマルチキャストトラフィックに対するRPFチェックを実行しています。
ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 outside
最初に、PIMスパースモードのマルチキャストパケットは、マルチキャスト送信者からRPに流れ、次に共有マルチキャストツリーを介してRPから受信者に流れます。ただし、集約ビットレートが一定のしきい値に達すると、マルチキャスト受信側に最も近いルータがソース固有のツリーに沿ってトラフィックの受信を試みます。このルータはグループに対して新しいPIM joinを生成し、マルチキャストストリームの送信元に送信します(以前のようにRPに送信するのではありません)。
マルチキャストトラフィックの送信元は、RPとは異なるASAインターフェイスに存在できます。ASA が送信元ツリーへスイッチする PIM join を受信したときに、ASA は送信元の IP アドレスへのルートを知っている必要があります。このルートが見つからない場合、PIM joinパケットはドロップされ、debug pimの出力にこのメッセージが表示されます
NO RPF Neighbor to send J/P
この問題を解決するには、ストリームの送信側に対してスタティックなmrouteエントリを追加します。このエントリは、送信側が常駐しているASAインターフェイスを指し示します。
この場合、パケットのTTLが低すぎるため、マルチキャストトラフィックは失敗します。これにより ASA またはネットワークの他のデバイスがパケットをドロップします。
多くの場合、マルチキャスト パケットの IP TTL は、それを送信するアプリケーションによって非常に小さい値に設定されます。マルチキャスト トラフィックがネットワーク経由で遠くまで運ばれることがないように、デフォルトでこのように設定されている場合があります。たとえば、デフォルトではVideo LAN クライアントアプリケーション(一般的なマルチキャスト送信およびテストツール)は、IPパケットのTTLをデフォルトで1に設定します。
マルチキャストトポロジに関して次のすべてが当てはまる場合、ASAでCPUの使用率が高くなり、マルチキャストストリームでパケットのドロップが発生する可能性があります。
上記のすべての症状が発生した場合は、 設計上の制限により、ASAはマルチキャストトラフィックのプロセススイッチを強制されます。この結果、高いデータ レートのマルチキャスト ストリームでパケット ドロップが発生します。これらのパケットがドロップしたときに増加する show asp drop のカウンタは punt-rate-limit です。
ASAにこの問題があるかどうかを確認するには、次の手順を実行します。
ステップ1:ASAがRPであるかどうかを確認します。
show run pim show pim tunnel
ステップ2:ASAが最後のホップルータであるかどうかを確認します。
show igmp group <mcast_group_IP>
ステップ3:ASAがファーストホップルータであるかどうかを確認します。
show mroute <mcast_group_IP>
この問題を軽減するには、次の手順を実行できます。
- ASAがRPにならないようにトポロジを変更します。または、送信側または受信側をASAに直接接続しないようにしてください
- PIMの代わりに、マルチキャストフォワーディングにIGMPスタブモードを使用します。
マルチキャスト ストリームの最初のパケットが ASA に届いたときに、ASA はそのマルチキャスト接続を構築し、パケットを転送するための関連する mroute エントリを作成する必要があります。エントリの作成中は、mrouteと接続が確立されるまで(通常は1秒未満で)一部のマルチキャストパケットをドロップできます。マルチキャストストリームのセットアップが完了すると、パケットのレート制限はなくなります。
この理由でドロップされたパケットのASPドロップ理由は「(punt-rate-limit) Punt rate limit exceeded」です。次に、「show capture asp」の出力を示します(aspは、ドロップされたパケットをキャプチャするようにASAで設定されたASPドロップキャプチャです)。この理由でドロップされたマルチキャストパケットを確認できます。
ASA # show capture asp 2 packets captured 1: 16:14:49.419091 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2: 16:14:49.919172 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2 packets shown
この問題が発生するのは、IGMPスタブモードで動作するASAだけです。PIM マルチキャスト ルーティングに参加している ASA には影響がありません。
この問題は、Cisco Bug ID CSCeg48235 1つのインターフェイス上のIGMP脱退は、他のインターフェイス上のマルチキャストトラフィックを中断します。
次に、この問題について説明しているバグのリリース ノートを示します。
Symptom: When a PIX or ASA firewall is configured for IGMP stub mode multicast reception and traffic from a multicast group is forwarded to more than one interface, if a host behind a the interface sends an IGMP Leave message for the group, it could temporarily interrupt the reception for that group on other interfaces of the firewall. The problem is triggered when the firewall forwards the IGMP leave for the group towards the upstream device; that device then sends a IGMP query to determine if any other receivers exist out that interface towards the firewall, but the firewall does not report that it still has valid receivers. Conditions: The PIX or ASA must be configured for IGMP stub mode multicast. IGMP stub mode is a legacy multicast forwarding technique, whereby IGMP packets from receivers are forwarded through the firewall towards the source of the stream. It is recommended to use PIM multicast routing instead of stub igmp forwarding. Workarounds: 1) Use PIM multicast routing instead of IGMP stub mode. 2) Decrease multicast IGMP query timers so that the receivers are queried more frequently, so their IGMP reports are forwarded towards the sender more frequently, thus restarting the stream quicker.
この特定の問題では、ASAは(設定されたセキュリティポリシーに従って)マルチキャストパケットをドロップします。しかし、ネットワーク管理者にとってはパケットがドロップする理由を特定することが困難です。この場合、ASAはインターフェイスに設定された発信アクセスリストが原因でパケットをドロップします。回避策は発信アクセスリストでマルチキャスト ストリームを許可することです。
これが発生すると、マルチキャストパケットはASPドロップカウンタ「FP no mcast output intrf (no-mcast-intrf)」でドロップされます。
トラフィックは、パントレート制限のためにコントロールポイントによってレートが制限されている可能性が最も高いです。asp dropの出力とキャプチャを見て、次のことを確認します。
ASA# show asp drop Frame drop: Punt rate limit exceeded (punt-rate-limit) 1492520
ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded
mfibエントリは、すべてのトラフィックがプロセススイッチングされていることを示します。
ASA(config)# show mfib 239.255.2.1195 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.255.2.195) Flags: C K Forwarding: 4278/50/1341/521, Other: 0/0/0 Outside-1007 Flags: A RDEQ-to-Corporate Flags: F NS Pkts: 0/4278 <---- HERE
マルチキャストルーティングテーブルには(*,G)が表示されますが、(S,G)は表示されません。
ASA(config)# show mroute 239.255.2.1195 Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.255.2.195), 00:44:03/00:02:44, RP 10.1.135.10, flags: S Incoming interface: Outside-1007 RPF nbr: 10.100.254.18 Immediate Outgoing interface list: RDEQ-to-Corporate, Forward, 00:44:03/00:02:44
ここでの問題は、ASAに到着するパケットマルチキャストデータパケットのTTLが1であることです。ASAはこれらのパケットをダウンストリームデバイスに転送しますが(TTLを減らさないため)、ルータはダウンストリームでこのパケットをドロップします。その結果、ダウンストリームルータは送信元に向けてPIM(S,G)参加(送信元固有の参加)をASAに送信しません。ASAは、このPIM加入を受信するまで(S,G)エントリを構築しません。(S,G)は構築されていないため、すべてのマルチキャストトラフィックがプロセススイッチングされ、レート制限が発生します。
この問題の解決策は、パケットのTTLを1にしないことです。1にすると、ダウンストリームデバイスは送信元に対して送信元固有のjoinを送信できます。これにより、ASAはテーブルに送信元固有のmrouteをインストールし、すべてのパケットはファーストスイッチングされ(処理スイッチングの代わりに)、トラフィックは問題なくASAを通過する必要があります。
2つのネットワークデバイスが同じマルチキャストパケットを同じサブネットに転送する場合、理想的には、一方のデバイスがパケットの転送を停止する必要があります(ストリームを複製するのは無駄であるため)。PIMを実行しているルータが、同じインターフェイスで生成したパケットと同じパケットを受信したことを検出すると、そのLANでアサートメッセージを生成し、ストリームの転送を停止するネットワークデバイスを選択します。
このメッセージについての詳細は、ASSERTプロセスに関するRFC 4601のセクションを参照してください。
デバッグは、ASAがグループ239.1.1.227のIGMPレポートを受信したが、隣接ルータから受信したアサートメッセージが原因でレポートを無視していることを示しています。
IPv4 PIM: (*,239.1.1.227) Periodic J/P scheduled in 50 secs IPv4 PIM: (*,239.1.1.227) J/P adding Join on outside IPv4 PIM: (10.99.41.205,239.1.1.227)RPT J/P adding Prune on outside IPv4 PIM: (10.99.41.253,239.1.1.227)RPT J/P adding Prune on outside IGMP: Received v2 Report on inside from 10.20.213.204 for 239.1.1.227 IGMP: Updating EXCLUDE group timer for 239.1.1.227 IPv4 PIM: (10.99.41.253,239.1.1.227) Received [15/110] Assert from 10.20.13.2 on inside IPv4 PIM: (10.99.41.253,239.1.1.227) Assert processing message wins IPv4 PIM: (10.99.41.253,239.1.1.227) inside Update assert timer (winner 10.20.13.2)
この問題は、2つのサイトが誤ってレイヤ2でブリッジされている実稼働ネットワークで発生し、マルチキャスト受信者が存在するLANに、2つのデバイスがマルチキャストトラフィックをそれらのデバイスに転送していました。別のネットワークの問題が原因で、ASAと別のデバイスはPIM helloを介してお互いを検出できなかったため、両方ともLANの代表ルータの役割を引き継ぎました。これにより、マルチキャストトラフィックはしばらく動作し、ASSERTメッセージがデバイスから送信されたときに失敗しました。この問題を解決するために、レイヤ2でデバイスをブリッジする誤った接続が無効にされ、問題が解決されました。
これは2000年に観測さ629575899た。ASAはジャンボフレーム用に設定されていましたが、4900はジャンボフレーム用に設定されていませんでした。クライアントが73を超えるマルチキャストストリームを要求すると、特定のマルチキャストストリームが機能しなくなります。73のSGはサイズ1494のPIM Joinメッセージを作成しますが、これはまだMTUの範囲内でした。74SGは1500より大きいPIM Joinメッセージを作成するため、4900Mは着信パケットをドロップしました。
この問題の修正は次のとおりです。
1. 4900Mでジャンボフレームがグローバルに有効になっていることを確認します
2.物理インターフェイスとSVIの両方をMTU 9216で設定します。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
03-Jan-2013 |
初版 |