内容

はじめに

機能情報

略語/略語

マルチキャストのコンポーネント

PIM スパースモードの動作

PIM スパース モードのサンプル コンフィギュレーション

PIMスパースモードの例：

IGMP スタブモードの動作

IGMP スタブモードのコンフィギュレーション

双方向PIM

Bidir PIM設定

トラブルシューティング手法

マルチキャストの問題をトラブルシューティングするときに収集する情報

役に立つ show コマンドの出力

パケット キャプチャ

ASA PIM スパース モード マルチキャストの導入例

データ分析

一般的な問題

HSRP が原因で ASA がアップストリーム ルータ向けの PIM メッセージの送信に失敗する

ASA が LAN セグメント上の指定ルータでないため ASA が IGMP レポートを無視する

IGMPインターフェイスの制限を超えたときにファイアウォールによってIGMPレポートが拒否される

ASA が 232.x.x.x/8 の範囲のマルチキャスト トラフィックの転送に失敗する

リバース パス転送のチェックによって ASA がマルチキャスト パケットをドロップする

送信元ツリーへの PIM スイッチオーバーの際に ASA が PIM join を生成しない

Time To Live（TTL）を超えたたため、ASA がマルチキャスト パケットをドロップする

特定のマルチキャスト トポロジが原因で ASA の CPU 使用率が高くなってパケットをドロップする

マルチキャスト ストリームが開始されたときに ASA が最初の数個のパケットをドロップする

マルチキャスト受信者の切断によって他のインターフェイスのマルチキャスト グループの受信が中断する

発信アクセスリストのセキュリティ ポリシーによって ASA がマルチキャスト パケットをドロップする

ASAは、コントロールポイントレート制限のために、マルチキャストストリーム内の一部のパケット（すべてではない）を継続的にドロップします

PIM ASSERTメッセージが原因でマルチキャストストリームが停止する

ASAはPIM Joinを送信しますが、パケットのサイズがMTUを超えているため、ネイバーによって処理されません

はじめに

このドキュメントでは、適応型セキュリティアプライアンス(ASA)でのマルチキャストルーティングと、一般的な問題について説明します。

機能情報

注：適応型セキュリティアプライアンス(ASA)、ファイアウォール脅威対策(FTD)、またはセキュアFirepower脅威対策(FTD)のマルチキャストルーティングに関する更新内容については、次の記事を参照してください。

firepower脅威対策IGMPおよびマルチキャストの基本に関するトラブルシューティング

firepower脅威対策およびASAマルチキャストPIMのトラブルシューティング

略語/略語

短縮形

説明

FHR

ファーストホップルータ：マルチキャストトラフィックの送信元に直接接続されているホップ。

LHR

ラストホップルータ：マルチキャストトラフィックの受信者に直接接続されているホップ。

RP

ランデブーポイント

DR

指定ルータ

SPT

最短パスツリー

RPT

ランデブーポイント(RP)ツリー、共有ツリー

RPF

リバースパス転送

石油

Outgoing interface list

MRIB

マルチキャストルーティング情報ベース

MFIB

マルチキャスト転送情報ベース

アーキテクチャ セールス マネージャ（ASM）

Any-Sourceマルチキャスト

BSR

ブートストラップルータ

SSM

Source-Specific Multicast(SSM)

FP

高速パス

SP

低速パス

CP

コントロールポイント

PPS

パケット/秒レート

ASA のマルチキャストは次の 2 つのモードのいずれかに設定できます。

- PIMスパースモード(Protocol Independent Multicast:RFC 4601)

- IGMPスタブモード(Internet Group Management Protocol:RFC 2236)

ASAは真のマルチキャストルーティングプロトコル(PIM)を介してネイバーと通信するため、PIMスパースモードが推奨されます。IGMP スタブモードは、ASA バージョン 7.0 がリリースされる以前には唯一のマルチキャスト設定オプションでしたが、単純にクライアントから受信した IGMP レポートをアップストリーム ルータに向けて転送することで動作します。

マルチキャストのコンポーネント

一般に、マルチキャストインフラストラクチャは次のコンポーネントで構成されます。

Sender =>マルチキャストストリームを発信するホストまたはネットワークデバイス。たとえば、ビデオや音声ストリームを送信するサーバや、EIGRPやOSPFなどのルーティングプロトコルを実行するネットワークデバイスなどがあります。

Receiver =>マルチキャストストリームを受信するホストまたはデバイス。この用語は、トラフィックに積極的に関与し、IGMPを使用して対象のマルチキャストグループに加入または脱退するホストで頻繁に使用されます。

ルータ/ ASA =>マルチキャストストリーム/トラフィックを処理し、必要に応じて送信元からクライアントまでネットワークの他のセグメントに転送するネットワークデバイス。

マルチキャストルーティングプロトコル=>マルチキャストパケットの転送を担当するプロトコル。最も一般的なのはPIM(Protocol Independent Multicast)ですが、MOSPFなどの他のプロトコルもあります。

Internet Group Management Protocol(IGMP) =>クライアントが特定のグループからマルチキャストストリームを受信するために使用するプロセス。

PIM スパースモードの動作

- ASA は PIM スパースモードと PIM 双方向モードをサポートします。

- PIM スパースモードと IGMP スタブモードのコマンドは同時に設定できません。

- PIM スパースモードでは、すべてのマルチキャスト トラフィックは最初にランデブー ポイント（RP）に送られ、そこから受信者に向けて転送されます。しばらくすると、マルチキャストフローは送信元から受信側に直接送られます（そしてRPをバイパスします）。

次の図は、ASAの1つのインターフェイスにマルチキャストクライアントがあり、別のインターフェイスにPIMネイバーがある場合の一般的な導入を示しています。

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

PIMスパースモードの例：

クライアントの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 Queryメッセージを送信します。

これがクライアントがストリームを受信する目的でルータによって認識される唯一のホストである場合、ルータはRPにIGMP Pruneメッセージを送信します。

IGMP スタブモードの動作

- IGMPスタブモードでは、ASAはマルチキャストクライアントとして機能し、IGMPレポート（IGMP「加入」とも呼ばれる）を生成または隣接ルータに転送して、マルチキャストトラフィックの受信をトリガーします

- ルータはホストに定期的にクエリを送信し、ネットワーク上のノードがマルチキャストトラフィックの受信を継続するかどうかを確認します。

- PIMスパースモードはスタブモードに比べて多くの利点があるため（より効率的なマルチキャストトラフィックフロー、PIMへの参加機能など）、IGMPスタブモードは推奨されません。

次の図は、IGMPスタブモードに設定されたASAの基本的な動作を示しています。

IGMP スタブモードのコンフィギュレーション

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

双方向PIMには、共有ツリー(SPT)はありません。これは、次の3つのことを意味します。

1.ファーストホップルータ（送信元に接続している）は、PIM登録パケットをRPに送信しません。

2. RPは送信元ツリーに参加するためのPIM JOINメッセージを送信しません。

3.受信側へのパス内のルータは、RPに向けてPIM Joinメッセージを送信し、RPTに参加します。

これは、デバイスがSPTに参加しないため、ASAが(S,G)を生成しないことを意味します。マルチキャストトラフィックはすべてRPを通過します。ASAは、(*,G)が存在する限り、すべてのマルチキャストトラフィックを転送します。(*,G)がない場合、ASAはPIM joinパケットを受信しなかったことを意味します。この場合、ASAはマルチキャストパケットを転送できません。

Bidir PIM設定

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のマルチキャスト転送の問題を完全に理解して診断するには、次の情報の一部またはすべてが必要です。

・ネットワークトポロジ、マルチキャストの送信者、受信者、およびランデブーポイントの場所の説明。

・特定のグループIPアドレス、および使用されているポートとプロトコル。

•マルチキャスト ストリームに問題が起きたときに ASA によって生成された syslog。

・ ASAコマンドラインインターフェイスからの特定のshowコマンド出力：

show mroute

show mfib

show pim neighbor

show route

show tech-support

・マルチキャストデータがASAに到着するかどうか、およびパケットがASA経由で転送されるかどうかを示すパケットキャプチャ( パケットのIP存続可能時間(TTL)をメモする)。これは、コマンド「show capture x detail」で確認できます)。

・ IGMPおよびPIMパケットのパケットキャプチャ以下に例を挙げます。

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」や「show mfib」などの情報。

・ ASAがマルチキャストパケットをドロップしているかどうかを判断するためのパケットキャプチャまたはshowコマンド。「show asp drop」コマンドを使用すると、ASAがパケットをドロップしているかどうかを確認できます。また、'asp-drop' タイプのパケット キャプチャは ASA がドロップするすべてのパケットのキャプチャに使用でき、後でドロップ キャプチャにマルチキャスト パケットが含まれているか確認できます。

役に立つ show コマンドの出力

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」コマンドで確認できることに注意してください。

ここでは、ドロップされたマルチキャストパケットとドロップの理由（パントレート制限）を示す、取得された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

ASA PIM スパース モード マルチキャストの導入例

次の図は、ASAがPIMスパースモードでネイバーデバイスと通信する方法を示しています。

ネットワークトポロジを理解する

特定のマルチキャストストリームの送信側と受信側の場所を正確に特定します。また、マルチキャストグループの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マルチキャスト関連の問題について説明します

HSRP が原因で ASA がアップストリーム ルータ向けの PIM メッセージの送信に失敗する

この問題が発生すると、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 が LAN セグメント上の指定ルータでないため ASA が IGMP レポートを無視する

この問題では ASA は直接接続されたマルチキャスト受信者から IGMP レポートを受信しますが、それを無視します。デバッグ出力は生成されず、パケットは単純にドロップされ、ストリームの受信は失敗します。

この問題では、ASAはクライアントが存在するLANセグメント上のPIMによって選出された指定ルータではないため、ASAはパケットを無視します。

次の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）があり、それらのネイバーの1つがセグメントのDRとして選出された場合、DRではないルータはIGMPレポートをドロップします。これを解決するには、インターフェイスでPIMを無効にするか(関係するインターフェイスでno pimコマンドを使用)、またはpim dr-priorityインターフェイスコマンドを使用して、ASAをセグメントのDRにします。

IGMPインターフェイスの制限を超えるとファイアウォールによってIGMPレポートが拒否される

デフォルトでは、ASAはインターフェイスで追跡される500の現在のアクティブな参加（レポート）を許可します。これは設定可能な最大値です。多数のマルチキャストストリームがインターフェイス外のクライアントによって要求される場合、最大500のアクティブJoinが検出され、ASAはマルチキャスト受信側からの追加の着信IGMPレポートを無視する可能性があります。

これがマルチキャスト障害の原因であるかどうかを確認するには、コマンド「show igmp interface interfacename」を発行して、インターフェイスの「IGMP limit」情報を探します。

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 が 232.x.x.x/8 の範囲のマルチキャスト トラフィックの転送に失敗する

このアドレス範囲は、ASA で現在サポートされていない Source Specific Multicast（SSM）で使用されます。

debug igmpコマンドの出力に、次のエラーが表示されます。

IGMP: Exclude report on inside ignored for SSM group 232.179.89.253

リバース パス転送のチェックによって ASA がマルチキャスト パケットをドロップする

この場合、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 スイッチオーバーの際に ASA が PIM join を生成しない

最初に、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インターフェイスを指し示します。

Time To Live（TTL）を超えたたため、ASA がマルチキャスト パケットをドロップする

この場合、パケットのTTLが低すぎるため、マルチキャストトラフィックは失敗します。これにより ASA またはネットワークの他のデバイスがパケットをドロップします。

多くの場合、マルチキャスト パケットの IP TTL は、それを送信するアプリケーションによって非常に小さい値に設定されます。マルチキャスト トラフィックがネットワーク経由で遠くまで運ばれることがないように、デフォルトでこのように設定されている場合があります。たとえば、デフォルトではVideo LAN クライアントアプリケーション（一般的なマルチキャスト送信およびテストツール）は、デフォルトでIPパケットのTTLを1に設定します。

特定のマルチキャスト トポロジが原因で ASA の CPU 使用率が高くなってパケットをドロップする

マルチキャストトポロジに関して次のすべてが当てはまる場合、ASAでCPUの使用率が高くなり、マルチキャストストリームでパケットのドロップが発生する可能性があります。

1. ASAはRPとして機能します。

2. ASA はマルチキャスト ストリームのファースト ホップの受信者です。これは、マルチキャストの送信元が ASA のインターフェイスと同じ IP サブネットに存在することを意味します。

3. ASA はマルチキャスト ストリームの最後のホップのルータです。これは、マルチキャストの受信者が ASA のインターフェイスと同じ IP サブネットに存在することを意味します。

上記のすべての症状が発生した場合は、 設計上の制限により、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 に届いたときに、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 Leaveを実行すると、他のインターフェイスのマルチキャストトラフィックが中断されます。

次に、この問題について説明しているバグのリリース ノートを示します。

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は（設定されたセキュリティポリシーに従って）マルチキャストパケットをドロップします。しかし、ネットワーク管理者にとってはパケットがドロップする理由を特定することが困難です。この場合、インターフェイスに設定された発信アクセスリストが原因で、ASAはパケットをドロップします。回避策は発信アクセスリストでマルチキャスト ストリームを許可することです。

これが発生すると、マルチキャストパケットはASPドロップカウンタ「FP no mcast output intrf (no-mcast-intrf)」でドロップされます。

ASAは、コントロールポイントレート制限のために、マルチキャストストリーム内の一部のパケット（すべてではない）を継続的にドロップします

トラフィックは、パントレート制限のためにコントロールポイントによってレート制限されている可能性が高いです。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を減らさないため）、ルータのダウンストリームはパケットをドロップします。その結果、ダウンストリームルータは送信元に向けてASAにPIM(S,G)参加（送信元固有の参加）を送信しません。ASAは、このPIM joinを受信するまで(S,G)エントリを構築しません。(S,G)は構築されないため、すべてのマルチキャストトラフィックはプロセス交換され、レート制限が発生します。

この問題の解決策は、パケットのTTLが1でないことを確認することです。これにより、ダウンストリームデバイスは送信元固有のjoinを送信者に送信できます。これにより、ASAはテーブルに送信元固有のmrouteをインストールし、すべてのパケットは（処理スイッチングではなく）ファーストスイッチングされ、トラフィックは問題なくASAを通過する必要があります。

PIM ASSERTメッセージが原因でマルチキャストストリームが停止する

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の代表ルータ(DR)の役割を引き受けました。これにより、マルチキャストトラフィックがしばらくの間動作し、デバイスからASSERTメッセージが送信されると失敗します。この問題を解決するために、レイヤ2のデバイスをブリッジする誤った接続を無効にし、問題を解決しました。

ASAはPIM Joinを送信しますが、パケットのサイズがMTUを超えているため、ネイバーによって処理されません

これは629575899で観察されました。ASAはジャンボフレーム用に設定され、4900はジャンボフレーム用に設定されていませんでした。クライアントが73を超えるマルチキャストストリームを要求すると、特定のマルチキャストストリームが機能しません。73 SGは、サイズが1494のPIM Joinメッセージを作成しますが、これはまだMTUの範囲内です。74 SGは1500より大きいPIM Joinメッセージを作成するため、4900Mは着信パケットをドロップします。

この問題の修正は次のとおりです。

1. 4900Mでジャンボフレームがグローバルに有効になっていることを確認します

2.物理インターフェイスとSVIの両方をMTU 9216で設定する