このドキュメントでは、Cisco IOS® で ip igmp join-group および ip igmp static-group コマンド機能を使用する方法について説明します。
ルータのいずれかのインターフェイスに ip igmp join-group コマンドがある場合、ルータ自体がマルチキャスト ストリームのレシーバになります。このコマンドは、実際に直接接続されたレシーバなしで、またはマルチキャスト フローの PIM 参加要求を送信する Protocol Independent Multicast(PIM)ネイバー ダウンストリームなしで、このルータにマルチキャスト トラフィックを移動させるために使用されます。ただし、このルータはマルチキャスト ストリームに参加するので、マルチキャスト パケットはすべて CPU にパントされます。これにより、CPU 使用率が高くなったり、レート リミッタ(もしあれば)またはコントロール プレーン保護(CoPP)にヒットしたりする可能性があります。
このルータのマルチキャスト ストリームを引き付けるために使用可能なより適切な方法は、ip igmp static-group インターフェイス コマンドを設定することです。このコマンドにより、ルータは、引き続きマルチキャスト ストリームを引き付け、インターフェイスに転送できますが、ルータ自体はストリームのレシーバになりません。
ip igmp join-group インターフェイス コマンドと ip igmp static-group コマンドは両方とも、PIM が送信元またはランデブー ポイント(RP)向けに参加要求アップストリームを送信するようにしますが、これはこのコマンドを設定されたルータがそのインターフェイス上の PIM 指定ルータ(DR)である場合のみです。コマンドが有効で、マルチキャスト トラフィックを引き付けるようにするには、その特定のネットワークの DR であるルータでコマンドを使用します。または、コマンドを使用するルータをPIM DRにすることができます。これを行うには、インターフェイスでip pim dr-priorityコマンドを設定し、そのネットワーク上の任意のPIMルータのPIM DRプライオリティ値が最も高いことを確認します。
以下が一例です。
この例では、IP アドレス 10.1.3.3 の送信元とグループ 232.1.1.1 のレシーバがあります。
次のように、ルータ R1 にマルチキャスト転送エントリがあるとします。
R1#show ip mroute 232.1.1.1 10.1.3.3
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,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.3.3, 232.1.1.1), 01:54:48/00:02:54, flags: sT
Incoming interface: Ethernet1/0, RPF nbr 10.1.2.2
Outgoing interface list:
Ethernet0/0, Forward/Sparse-Dense, 01:54:48/00:02:54
出力に示されているように、インターフェイス Ethernet0/0 は発信インターフェイス リスト(OIL)に含まれ、(10.1.3.3, 232.1.1.1) マルチキャスト トラフィックはインターフェイス Ethernet0/0 に転送されます。
これは、マルチキャスト転送情報ベース(MFIB)のエントリでも確認できます。
R1#show ip mfib 232.1.1.1 10.1.3.3
Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag,
ET - Data Rate Exceeds Threshold, K - Keepalive
DDE - Data Driven Event, HW - Hardware Installed
I/O Item Flags: IC - Internal Copy, NP - Not platform switched,
NS - Negate Signalling, SP - Signal Present,
A - Accept, F - Forward, RA - MRIB Accept, RF - MRIB Forward,
MA - MFIB Accept
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second
Other counts: Total/RPF failed/Other drops
I/O Item Counts: FS Pkt Count/PS Pkt Count
Default
(10.1.3.3,232.1.1.1) Flags:
SW Forwarding: 0/0/0/0, Other: 0/0/0
Ethernet1/0 Flags: A
Ethernet0/0 Flags: F NS
Pkts: 0/0
ルータ R1 がルータ R4 からマルチキャスト ストリームの PIM Join 要求を(何らかの理由で)受信しない場合、マルチキャスト ストリームは流れません。考えられる理由の 1 つは、ルータ R1 と R4 が異なる管理ドメインに属しているため、PIM がルータ間にネイバーシップを形成できないことです。解決策はルータ R1 からルータ R1 へトラフィックを静的に転送することです。
ip igmp join-groupコマンドは、ルータR1のインターフェイスEthernet0/0で使用されます。これにより、ルータR1はPIM Join要求をアップストリーム(送信元またはRP)に送信し、マルチキャストストリーム(10.1.3.3、232.1.1.1)を引き付けることができます。 その後、このトラフィックはインターフェイス Ethernet0/0 に転送されます。なぜなら、このインターフェイスは OIL に含まれるからです。ただし、トラフィックは CPU にもパントされます。
R1#show running-config interface Ethernet 0/0
!
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip pim sparse-dense-mode
ip igmp join-group 232.1.1.1 source 10.1.3.3
end
R1#show ip mroute 232.1.1.1 10.1.3.3
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,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.3.3, 232.1.1.1), 00:09:30/00:02:19, flags: sLTI
Incoming interface: Ethernet1/0, RPF nbr 10.1.2.2
Outgoing interface list:
Ethernet0/0, Forward/Sparse-Dense, 00:00:40/00:02:19
L フラグは、マルチキャスト トラフィックがパントされることを意味します。インターフェイス Ethernet0/0 は OIL に含まれるため、トラフィックは CPU にパントされ、インターフェイス Ethernet0/0 に転送されます。
MFIB エントリは Internal Copy(IC)フラグを示します。これは、このフローのパケットが CPU にパントされることを意味します。
R1#show ip mfib 232.1.1.1 10.1.3.3
Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag,
ET - Data Rate Exceeds Threshold, K - Keepalive
DDE - Data Driven Event, HW - Hardware Installed
I/O Item Flags: IC - Internal Copy, NP - Not platform switched,
NS - Negate Signalling, SP - Signal Present,
A - Accept, F - Forward, RA - MRIB Accept, RF - MRIB Forward,
MA - MFIB Accept
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second
Other counts: Total/RPF failed/Other drops
I/O Item Counts: FS Pkt Count/PS Pkt Count
Default
(10.1.3.3,232.1.1.1) Flags:
SW Forwarding: 0/0/0/0, Other: 0/0/0
Ethernet1/0 Flags: A
Ethernet0/0 Flags: F IC NS
Pkts: 0/0
このマルチキャスト ストリームのすべてのトラフィックがパントされるため、前述のとおり、望ましくない副作用が発生することがあります。
ip igmp static-group コマンドは、ルータ R1 からルータ R4 へトラフィックを静的に転送するための解決策として使用されます。このシナリオでは、ルータ R1 は PIM Join 要求アップストリームを(送信元または RP へ)送信し、マルチキャスト ストリーム(10.1.3.3, 232.1.1.1)を引き付けることができます。 その後、このトラフィックはインターフェイス Ethernet0/0 に転送されます。なぜなら、このインターフェイスは OIL に含まれるからです。ただし、トラフィックは CPU にパントされません。
R1#show running-config interface Ethernet 0/0
!
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip pim sparse-dense-mode
ip igmp static-group 232.1.1.1 source 10.1.3.3
end
R1#show ip mroute 232.1.1.1 10.1.3.3
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,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.3.3, 232.1.1.1), 00:07:41/stopped, flags: sTI
Incoming interface: Ethernet1/0, RPF nbr 10.1.2.2
Outgoing interface list:
Ethernet0/0, Forward/Sparse-Dense, 00:05:06/00:00:53
L フラグは表示されなくなります。トラフィックはこのルータでパントされませんが、OIL 内のインターフェイスに転送されます。
同様に、MFB エントリは IC フラグを表示しません。
R1#show ip mfib 232.1.1.1 10.1.3.3
Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag,
ET - Data Rate Exceeds Threshold, K - Keepalive
DDE - Data Driven Event, HW - Hardware Installed
I/O Item Flags: IC - Internal Copy, NP - Not platform switched,
NS - Negate Signalling, SP - Signal Present,
A - Accept, F - Forward, RA - MRIB Accept, RF - MRIB Forward,
MA - MFIB Accept
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second
Other counts: Total/RPF failed/Other drops
I/O Item Counts: FS Pkt Count/PS Pkt Count
Default
(10.1.3.3,232.1.1.1) Flags:
SW Forwarding: 0/0/0/0, Other: 0/0/0
Ethernet1/0 Flags: A
Ethernet0/0 Flags: F NS
Pkts: 0/0
ルータ R1 がインターフェイス Etherent0/0 の PIM DR でない場合、ip igmp static-group コマンドも ip igmp join-group コマンドも有効ではありません。
以下が一例です。
R1#show running-config interface Ethernet 0/0
!
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip pim sparse-dense-mode
ip igmp static-group 232.1.1.1 source 10.1.3.3
end
R1#show ip mroute 232.1.1.1 10.1.3.3
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,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.3.3, 232.1.1.1), 00:00:30/00:02:29, flags: sPT
Incoming interface: Ethernet1/0, RPF nbr 10.1.2.2
Outgoing interface list: Null
インターフェイス Ethernet0/0 は OIL に含まれません。これは、ルータ R1 が ip igmp static-group コマンドによるリンク上の PIM DR ではないからです。
R1#show ip pim interface ethernet 0/0
Address Interface Ver/ Nbr Query DR DR
Mode Count Intvl Prior
10.1.1.1 Ethernet0/0 v2/SD 1 30 1 10.1.1.4
ルータ R1 は PIM Join 要求アップストリームの送信も行いません。マルチキャスト エントリがないため、これはルータ R2 でも明らかです。
R2#show ip mroute 232.1.1.1 10.1.3.3
Group 232.1.1.1 not found
ルータ R1 がインターフェイス Ethernet0/0 の PIM DR になるとすぐに確認できる出力を次に示します。
R1#show ip pim interface ethernet 0/0
Address Interface Ver/ Nbr Query DR DR
Mode Count Intvl Prior
10.1.1.1 Ethernet0/0 v2/SD 1 30 1 10.1.1.1
R1#show ip mroute 232.1.1.1 10.1.3.3
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,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.3.3, 232.1.1.1), 00:02:39/00:02:55, flags: sTI
Incoming interface: Ethernet1/0, RPF nbr 10.1.2.2
Outgoing interface list:
Ethernet0/0, Forward/Sparse-Dense, 00:00:04/00:02:55
問題をトラブルシューティングするには、ラボ外であっても、マルチキャストのテストを実行することを推奨します。こうした場合、ip igmp join-group コマンドを安全な方法で使用してください。ip igmp static-group コマンドに優先して ip igmp join-group コマンドを使用する必要がある理由は、マルチキャスト パケットがパントされるからです。したがって、マルチキャスト宛先に ping を実行した場合、コマンドを設定したルータがマルチキャスト フローのレシーバになり、ping に応答できます。
以下が一例です。
送信元10.1.3.3はルータR3のIPアドレスです。コマンドをルータR1のEthernet0/0インターフェイスに配置し、ルータR3からpingを実行すると、ルータR1はpingに応答できます。したがって、ルータR1に直接接続されたレシーバがあるかのようにテストを実行できます。ip igmp join-groupコマンドは、ルータR1のEthernet0/0インターフェイスに配置され、ルータR1がその送信元からのトラフィックのみをパント(応答)するように送信元が指定されます。
R1#show running-config interface Ethernet 0/0
!
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip pim sparse-dense-mode
ip igmp join-group 232.1.1.1 source 10.1.3.3
end
R3#ping 232.1.1.1 source 10.1.3.3
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 232.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.3.3
Reply to request 0 from 10.1.1.1, 2 ms
R3#
ルータ R1 での debug ip icmp コマンドは、ping が到達したこと、およびルータ R1 が応答を送信したことを示します。
R1#debug ip icmp
ICMP packet debugging is on
R1#
*Oct 30 11:35:41.133: ICMP: echo reply sent, src 10.1.1.1, dst 10.1.3.3,
topology BASE, dscp 0 topoid 0
ベスト プラクティスは、ラボ内のテスト目的または稼働ネットワーク内の一時的なテストでない場合、ip igmp join-group コマンドを使用しないことです。すべてのテストが完了した後、コマンドを削除します。マルチキャスト トラフィックの転送は静的に行う必要がある場合は、代わりに ip igmp static-group コマンドを使用します。