DynagenでCCIEを目指す
INE Workbook Volume I Multicast
最終更新:
it_certification
-
view
- 進捗確認
- 誤植 および 問題文補足
- Tips
- 8.1 PIM Dense Mode
- 8.2 Multicast RPF failure
- 8.3 PIM sparse mode
- 8.5 PIM Assert
- 8.7 PIM DR Election
- 8.8 PIM Accept Register
- 8.9 Multicast Tunneling
- 8.11 Auto-RP
- 8.15 Auto-RP and RP/MA Placement
- 8.17 Multicast Boundary
- 8.21 Stub Multicast Routing & IGMP Helper
- 8.23 IGMP Timers
- 8.24 Multicast Helper Map
- 8.25 Multicast Rate-Limiting
- 8.26 Bidirectional PIM
- 8.27 Source Specific Multicast
- 8.28 DVMRP Interoperability
- 8.30 MSDP
- 8.31 Anycast RP
- 8.33 Catalyst Multicast VLAN Registration
進捗確認
正答率 チェック
2週目 | 3週目 | 4週目 | 5週目 | |
---|---|---|---|---|
8.1 PIM Dense Mode | ||||
8.2 Multicast RPF Failure | ||||
8.3 PIM Sparse Mode | ||||
8.4 PIM Sparse-Dense Mode | ||||
8.5 PIM Asset | x | |||
8.6 PIM Accept RP | ||||
8.7 PIM DR Election | ||||
8.8 PIM Accept Register | ||||
8.9 Multicast Tunneling | ||||
8.10 PIM NBMA Mode | ||||
8.11 Auto-RP | x | |||
8.12 Auto-RP - Multiple Candidate RPs | ||||
8.13 Auto-RP - Filtering Candidate RPs | ||||
8.14 Auto-RP Listener | ||||
8.15 Auto-RP and RP/MA Placement | ||||
8.16 Filtering Auto-RP Messages | ||||
8.17 Multicast Boundary | x | |||
8.18 PIM Bootstrap Router | x | |||
8.19 BSR - Multiple RP Candidates | ||||
8.20 Filtering BSR Messages | ||||
8.21 Stub Multicast Routing & IGMP Helper | ||||
8.22 IGMP Filtering | ||||
8.23 IGMP Timers | ||||
8.24 Multicast Helper Map | x | |||
8.25. Multicast Rate Limit | ||||
8.26 Bidirectional PIM | x | x | ||
8.27 Source Specific Multicast | ||||
8.28 DVMRP Interoperability | x | |||
8.29 Multicast BGP Extension | ||||
8.30 MSDP | ||||
8.31 Anycast RP | x | |||
8.32 Catalyst IGMP Snooping | ||||
8.33 Catalyst Multicast VLAN Registration | x | |||
8.34 Catalyst IGMP Profiles | ||||
正答率 | 84% | 88% |
所感
1週目 2011/06/19
- 8.24 以下のようなdefault static multicast routeを定義すると、shared-treeが想定通りに作成されません。
ip mroute 0.0.0.0 0.0.0.0 155.X.45.4
2週目 2011/09/06
- 8.2 no ip mroute-cacheを投入しないとデバッグメッセージを確認できない事を失念してしまい、確認作業にかなりの時間を要してしまいました。
- 8.3 ip ospf network point-to-pointに気付くのに時間がかかってしまいました。sourceからRPまでがどのような経路になっているのか慎重に確認する必要があります。
- 8.3 switch overコマンドは投入できましたが、switch overの確認方法を理解していませんでした。デフォルトの閾値は0Kbpsなので、デフォルトでは共有ツリーに基づき転送されます。しかし、"ip pim spt-threshold 128"を投入すると、共有ツリーを使用しないようになります。
- 8.5 問題文を誤読してしまいました。全く的外れな設定を自身満々で投入してしまいました。
- 8.10 以下の警告メッセージの意味が理解できませんでした。これは、dense-modeのパケットに対してはsplit-horizonのルールが無効化されない事を警告するためのメッセージです。なお、dense-modeに対してspilit-horizonが効いてしまう事に関しては、"8.15 Auto-RP and RP/MA Placement"で改めて出題されます。
Rack18R5(config-if)#ip pim nbma-mode PIM nbma-mode is not recommended for sparse-dense-mode
- 8.11 以下のエラーメッセージの意図が理解できませんでした。PIMが有効になっていないLoopback 0に対して、send-rp-discoveryを設定しないよう指示するメッセージである事が理解できませんでした。
Rack18SW2(config)#ip pim send-rp-discovery Loopback 0 scope 10 Non IP or PIM interface ignored in accepted command. Rack18SW2(config)#
- 8.17 解答を全く思い出せませんでした。
- 8.26 group-list指定できる事になぜか気付きませんでした。
- 8.28 かなりの難問ですが、オンラインドキュメントを見ながらならば、何とかなりそうな感触はありました。
- 8.29 PIMが有効になっていないI/Fに対してigmp joinしている事に気づかず、共有ツリーができない原因を突き止めるのにかなり時間がかかってしまいました。
interface Loopback 0 ip igmp join-group 239.4.4.4 ip pim sparse-mode
- 8.31 2時間くらい試行錯誤しましたが、結局、答えは分かりませんでした。
3週目 2011/11/03
- 8.17 multicast boundaryの設定がnoコマンドで消えない現象が発生しました。rebootを実行したところ、本現象は解消されました。
- 8.18 R6がBSR messageを受信できない現象が発生しました。。BSRは1 hopずつのパケットでRPFの概念がないと思っていましたが、実際はRPF checkが働くようです。完全に仕様を勘違いして覚えていたようです。なお、BSR のRPF failureは以下のデバッグコマンドで確認する事ができます。
Rack14R6# debug ip pim bsr Rack14R6# Rack14R6# *Apr 24 04:51:29.227: PIM-BSR(0): bootstrap (150.14.5.5) on non-RPF path FastEthernet0/0.146 or from non-RPF neighbor 155.14.146.4 discarded Rack14R6#
- 8.24 設定は間違っていませんでしたが、動作確認方法が分かりませんでした。パケットを受信するが返信しない機器(この問題ではSW1)に対して以下debugコマンドを入力しても、何も出力されないようです。動作確認するためには、R3を通過するパケットを観察する必要があります。
SW1: access-list 100 permit icmp any any access-list 100 permit udp any any eq domain debug ip packet 100
- 8.26 模範解答と異なるstatic設定に挑戦してみましたが、static設定は効かないようです。
R1: R3: R4: R5: R6: SW2: SW4: ip access-list standard ACL_PIM_BIDIR 10 permit 238.0.0.0 0.255.255.255 ! ip pim bidir-enable ip pim rp-address 150.XX.5.5 ACL_PIM_BIDIR override bidir
- 8.31 2週目の時点では正答が分かりませんでしたが、"anycast RP"で検索したドキュメントを参照すれば意外と楽に解く事ができました。
- 8.33 動作が不安定な気がします。設定が反映されたり反映されなかったりする事があるようです。
誤植 および 問題文補足
8.2 Multicast RPF Failure
INE模範解答には、static mrouteの設定が漏れています。以下の赤字部分を加筆して下さい。
R5: interface Serial 0/1/0 no ip pim dense-mode ! interface Serial 0/0/0 ip pim dense-mode ! ip mroute 0.0.0.0 0.0.0.0 155.X.0.4 ! ip multicast rpf interval 6 ip multicast rpf backoff 10 200
8.15 Auto-RP and RP/MA Placement
INE模範解答に、赤字部分を加筆して下さい。pim nbma-modeで動作しているI/Fは、fast-switchingでは想定通りに動きません。process-switchingするよう"no ip mroute-cache"を加筆します。
また、R4, R6において、RP discovery messageを受信する際にRPF failureが発生していますので、以下のstatic routeを加筆します。
また、R4, R6において、RP discovery messageを受信する際にRPF failureが発生していますので、以下のstatic routeを加筆します。
R5: interface Serial 0/0/0 no ip mroute-cache ip pim nbma-mode R4: ip mroute 150.XX.1.0 255.255.255.0 155.XX.146.1 R6: ip mroute 150.XX.1.0 255.255.255.0 155.XX.146.1
8.19 BSR - Multiple RP Candidate
INE模範解答を以下の通り修正します。最大マスク長は31bitではなく32bitです。
R5: no ip pim bsr-candidate Loopback0 ip pim bsr-candidate Loopback03132
8.20 Filtering BSR Messages
INE模範解答と異なりますが、以下も題意を満たします。
R6: interface FastEthernet0/0.146 ip pim brs-border
8.23 IGMP Timers
問題文を以下の通り変更します。igmp querier-timeoutの最小値は60秒であり、デフォルト値の1/3である40秒に設定する事はできません。"3 times faster"から"2 times faster"に変更します。
また、mutlticast receiverのダウン検出が60秒では、querier-timeoutに比べて大きすぎるので、mutlticast receiverのダウン検出を60秒から10秒に変更します。
また、mutlticast receiverのダウン検出が60秒では、querier-timeoutに比べて大きすぎるので、mutlticast receiverのダウン検出を60秒から10秒に変更します。
- Cofigure the designated IGMP querier on the VLAN 146 segment so that failed multicast traffic receivers are detected and removed within
60 secondes10 seconds. - Every active receiver should resoind to general IGMP queriers within 4 seconds.
- Designed querier failures should be detected
3 times faster2 times faster than by default. - Since there is just one receiver on R3's connection to SW1, configure the router to remove group states immediately after an IGMP leave report is received.
もともとの問題文は"failed multicast traffic receivers are detected and removed within {60 secondes"とのことで、模範解答のtimeout設定が20秒になっているのはIGMPv1を想定したためと推測できます。IGMPv1は3回応答がない場合にtimeoutと判定しますので、timeoutを20秒に設定すれば60秒でmulticast receiverのダウンを検出する事ができます。
なお、現在はデフォルトでIGMPv2が設定されます。IGMPv2はtimeoutを待たずに1回でも応答がなかった場合は、マルチキャストメンバーが存在しないと判断します。IGMP queryの応答待ちが4秒である事を考慮すると、6秒間隔でqueryを送信すれば10秒以内にmultiacst memberのダウンを検知する事ができます。
なお、現在はデフォルトでIGMPv2が設定されます。IGMPv2はtimeoutを待たずに1回でも応答がなかった場合は、マルチキャストメンバーが存在しないと判断します。IGMP queryの応答待ちが4秒である事を考慮すると、6秒間隔でqueryを送信すれば10秒以内にmultiacst memberのダウンを検知する事ができます。
R1: interface FastEthernet0/0 ip igmp query-interval206 ip gimp query-max-response-time 4 R4: ip igmp querier-timeout 60
8.24 Multicast Helper Map
以下のように、複数経路が存在する場合、デフォルトでは複数経路の場合は必ずRFP failureを返す仕様になっています。
Rack17R3#show ip route 155.17.146.0 Routing entry for 155.17.146.0/24 Known via "ospf 1", distance 110, metric 782, type intra area Last update from 155.17.0.1 on Serial1/0.1, 02:38:17 ago Routing Descriptor Blocks: * 155.17.13.1, from 150.17.1.1, 02:38:17 ago, via Serial1/2 Route metric is 782, traffic share count is 1 155.17.0.4, from 150.17.4.4, 02:38:17 ago, via Serial1/0.1 Route metric is 782, traffic share count is 1 155.17.0.1, from 150.17.1.1, 02:38:17 ago, via Serial1/0.1 Route metric is 782, traffic share count is 1 Rack17R3#
でもRFP failureを返さないようにするには、以下コマンドをする必要があります。
Rack17R3(config)#ip multicast multipath
INE模範解答と異なりますが、"ip multicast multipath"を設定しなくても、static multicast routeでも題意を満たす事ができます。
Rack17R3(config)#ip mroute 155.17.146.0 255.255.255.0 155.17.0.5
8.29 Muticast BGP Extention
以下の設定を加筆し、初期設定の不備を修正する必要があります。
R5: router bgp 200 redistribute eigrp 100 ! router eigrp 100 network 155.X.45.5 0.0.0.0
8.30 MSDP
問題文中に以下の指定がありますが、以下を削除します。MSDPはPIM sparse-modeで動作するため、dense-modeに変更してはいけません。
-
Change PIM dense-mode on all links where it's configured to PIM sparse-mode. - Configure R5 as the RP for AS 200 and SW1 as the RP for AS 100. Use the BSR method to distribute RP information, and configure BSR border on the link between R3 and SW1.
- Create an MSDP peering session between SW1 and R5 sourcing it off the Loopback 0 interfaces.
8.33 Catalyst Multicast VLAN Registration
設定を投入する順番によっては、設定が反映されない事があります。
まず、以下のコマンドでmvrを有効にして下さい。
まず、以下のコマンドでmvrを有効にして下さい。
Router(config)# mvr
Tips
8.1 PIM Dense Mode
multicast routingを有効にするには、以下のコマンドを投入します。
Router(config)# ip multicast-routing
cat 3550に関しては、以下のコマンドでmulticast routingが有効になります。
Router(config)# ip multicast-routing distributed
8.2 Multicast RPF failure
RPF failureに関するcheckは以下のコマンドでチューニングする事ができます。intervalは定期チェックの間隔で、backoffはトポロジが変化してからRPF checkが実施されるまでの遅延時間です。
Router(config)# ip multicast rpf interval sec Router(config)# ip multicast rpf backoff min_msec max_msec
RPF failureが発生しているかどうか判断するには、以下テーブルを調査します。
Router# show ip mroute Router# show ip route
上記テーブルからでの判断が難しい場合は、mroute-cacheを無効化した後、デバッグを有効にしてRPF failureを確認します。
Router(config-if)# no ip mroute-cache Router# debug ip mpacket Sep 5 16:09:21.411: IP(0): s=155.18.146.6 (Serial0/0/0) d=224.10.10.10 id=94, ttl=253, prot=1, len=104(100), RPF lookup failed for source Sep 5 16:09:21.411: IP(0): s=155.18.146.6 (Serial0/0/0) d=224.10.10.10 id=94, ttl=253, prot=1, len=104(100), not RPF interface
8.3 PIM sparse mode
shared tree(共有ツリー)からhortest path tree(送信元ツリー)に切り替える機能をswitch overと呼びます。switch overを設定するには以下のコマンドを、last hop routerに対して投入します。Kbpsを指定した場合は指定帯域を超えるとswitch overが発生し、infinityを指定した場合はswitch overが起きないようになります。
デフォルトでは0Kbpsを超えるとswitch overが発生するようになっています。すなわち、switch overはデフォルトで有効な機能と考えて下さい。
デフォルトでは0Kbpsを超えるとswitch overが発生するようになっています。すなわち、switch overはデフォルトで有効な機能と考えて下さい。
Router(config)# ip pim spt-threshold [ Kbps | infinity ]
シナリオに則ったswitch overの動作確認をします。switch over未設定(switch over有効)の状態で、R6からSW4へpingを送信します。すると、以下のように共有ツリー(*, 224.10.10.10)を使わずに、(155.18.146.6, 224.10.10.10)を使用している事が分かります。
R6: ping 224.10.10.10 repeat 10 SW2: Rack18SW2#show ip mroute 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, 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 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 (*, 224.10.10.10), 00:00:33/00:03:07, RP 150.18.5.5, flags: SJC Incoming interface: Vlan58, RPF nbr 155.18.58.5 Outgoing interface list: Port-channel1, Forward/Sparse, 00:00:31/00:02:58 (155.18.146.6, 224.10.10.10), 00:00:31/00:03:27, flags: T Incoming interface: Vlan58, RPF nbr 155.18.58.5 Outgoing interface list: Port-channel1, Forward/Sparse, 00:00:31/00:03:05 (*, 224.0.1.40), 00:00:34/00:02:38, RP 150.18.5.5, flags: SJPCL Incoming interface: Vlan58, RPF nbr 155.18.58.5 Outgoing interface list: Null Rack18SW2#
swich overの閾値を128Kbpsに設定した状態、つまりswitch overを無効にした状態でのツリーを確認します。共有ツリー(*, 224.10.10.10)のみが作成され、(155.18.146.6, 224.10.10.10)エントリが存在しない事が分かります。
SW4: ip pim spt-threshold 128 R6: ping 224.10.10.10 repeat 10 SW2: Rack18SW2#show ip mroute 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, 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 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 (*, 224.10.10.10), 00:01:01/00:03:23, RP 150.18.5.5, flags: SC Incoming interface: Vlan58, RPF nbr 155.18.58.5 Outgoing interface list: Port-channel1, Forward/Sparse, 00:00:48/00:02:41 (*, 224.0.1.40), 00:01:15/00:02:33, RP 150.18.5.5, flags: SCL Incoming interface: Vlan58, RPF nbr 155.18.58.5 Outgoing interface list: Port-channel1, Forward/Sparse, 00:00:53/00:02:37 Rack18SW2#
sparse mode環境において送信元から宛先へpingが届かない場合は、RPから宛先へpingが届くかどうかを確認します。RPからのpingが届くかどうかで以下のような判断をします。
- RPから宛先へ ping応答あり -> 送信元からRPまでの送信元ツリーを疑う
- RPから宛先へ ping応答なし -> RPから宛先までの共有ツリーを疑う
8.5 PIM Assert
dense modeは、トラフィック重複の防止策としてAsser Mechanizmが実装されています。
ルータは重複したパケットを受信すると、どちらのルートの方が最短ルートかを転送元に問い合わせます。
本シナリオにのっとり具体的に説明します。SW2からR6へのmulticast pingを例に挙げると、R6へpingを転送する機器は、R1とR4があります。R6は重複したパケットを受信しないよう、R1, R4のどちらが最短ルートであるかを問い合わせます。
最短ルートとは具体的に、以下の基準で判断します。
ルータは重複したパケットを受信すると、どちらのルートの方が最短ルートかを転送元に問い合わせます。
本シナリオにのっとり具体的に説明します。SW2からR6へのmulticast pingを例に挙げると、R6へpingを転送する機器は、R1とR4があります。R6は重複したパケットを受信しないよう、R1, R4のどちらが最短ルートであるかを問い合わせます。
最短ルートとは具体的に、以下の基準で判断します。
- 送信元へのエントリについてAdministrative Distanceが小さい
- 送信元へのエントリについてmetricが小さい
- ルータIDが大きい
どちらのルータが最短と判断されたかは、以下の方法で確認できます。
最短である | 最短ではない | |
debug ip pim | "Assert Win"との出力 | "Assert Lose"との出力 |
show ip mrouting | A flagが成立 | P flagが成立 |
シナリオに則った確認をすると以下の通りです。Assert WinであるR1は、forwarding, A flagが確認できます。Assert LoseであるR4は、Prune, P flagが確認できます。
R6: interface Loopback0 ip pim sparse-mode ip igmp join-group 239.6.6.6 R5: ping 239.6.6.6 source Loopback 0 R1: Rack18R1#show ip mroute 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, 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 Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.6.6.6), 00:00:45/stopped, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Serial0/0.1, Forward/Sparse-Dense, 00:00:45/00:00:00 FastEthernet0/0, Forward/Sparse-Dense, 00:00:45/00:00:00 (150.18.5.5, 239.6.6.6), 00:00:45/00:02:21, flags: T Incoming interface: Serial0/0.1, RPF nbr 155.18.0.5 Outgoing interface list: FastEthernet0/0, Forward/Sparse-Dense, 00:00:46/00:00:00, A (*, 224.0.1.40), 00:01:23/00:02:13, RP 150.18.5.5, flags: SJCL Incoming interface: Serial0/0.1, RPF nbr 155.18.0.5 Outgoing interface list: FastEthernet0/0, Forward/Sparse-Dense, 00:01:23/00:02:13 Rack18R1# Rack18R4#show ip mroute 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, 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, 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 (*, 239.6.6.6), 00:00:23/stopped, RP 0.0.0.0, flags: D Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0/1, Forward/Sparse-Dense, 00:00:23/00:00:00 Serial0/1/0, Forward/Sparse-Dense, 00:00:23/00:00:00 (150.18.5.5, 239.6.6.6), 00:00:23/00:02:45, flags: PT Incoming interface: Serial0/1/0, RPF nbr 155.18.45.5 Outgoing interface list: FastEthernet0/1, Prune/Sparse-Dense, 00:00:22/00:02:37 (*, 224.0.1.40), 00:00:43/00:02:36, RP 150.18.5.5, flags: SJPCL Incoming interface: Serial0/1/0, RPF nbr 155.18.45.5 Outgoing interface list: Null Rack18R4#
debug ip pimを有効にした場合のデバッグメッセージを確認します。
R1: Sep 5 17:43:54.436: PIM(0): Send v2 Assert on FastEthernet0/0 for 239.6.6.6, source 150.18.5.5, metric [89/65] Sep 5 17:43:54.436: PIM(0): Assert metric to source 150.18.5.5 is [89/65] Sep 5 17:43:54.436: PIM(0): We win, our metric [89/65] Sep 5 17:43:54.436: PIM(0): (150.18.5.5/32, 239.6.6.6) oif FastEthernet0/0 in Forward state Sep 5 17:43:54.440: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 155.18.146.4, to us Sep 5 17:43:54.440: PIM(0): Prune-list: (150.18.5.5/32, 239.6.6.6) Sep 5 17:43:56.503: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 155.18.146.6, to us R4: Sep 5 17:46:52.015: PIM(0): Received v2 Assert on FastEthernet0/1 from 155.18.146.1 Sep 5 17:46:52.015: PIM(0): Assert metric to source 150.18.5.5 is [89/65] Sep 5 17:46:52.019: PIM(0): We lose, our metric [90/2297856] Sep 5 17:46:52.019: PIM(0): Insert (150.18.5.5,239.6.6.6) prune in nbr 155.18.146.1's queue Sep 5 17:46:52.019: PIM(0): Send (150.18.5.5, 239.6.6.6) PIM-DM prune to oif FastEthernet0/1 in Prune state Sep 5 17:46:52.019: PIM(0): (150.18.5.5/32, 239.6.6.6) oif FastEthernet0/1 in Prune state Sep 5 17:46:52.019: PIM(0): Building Join/Prune packet for nbr 155.18.146.1
8.7 PIM DR Election
OSPFと同様、PIMもDRの概念があります。DRのpriorityの設定は以下の通りで、OSPFと同様にpriority値の大きなI/FがDRとして選出されます。
Router(config-if)# ip pim dr-priority value
DRの果たす役割は以下の通りです。
条件 | 役割 |
IGMPv1 | IGMP host query messageを送信 (v2以降は querierの概念があるためDRがqueryを送るとは限りません) |
sparse mode | Join, Prune, Registerなどのメッセージを送信します |
8.8 PIM Accept Register
sparse mode環境において、以下コマンドで送信元ツリーの作成を拒否(register messageの転送を拒否)する事ができます。
なお、ACLの送信元にはマルチキャストソース、宛先にはマルチキャストグループを指定して下さい。
なお、ACLの送信元にはマルチキャストソース、宛先にはマルチキャストグループを指定して下さい。
access-list num permit ip multicast_source multicast_group ! route-map map match ip address num ! ip pim accept-register route-map map
register messageは送信元ツリーを作成するためのパケットです。このパケットについてまとめると以下の通りです。
- first hop routerはmulticast packetをregister messageでカプセル化します。カプセル化されたpacketの宛先は、ユニキャストでRPが指定されています。
- register messageを受信したパケットは、送信元ツリーを作成し、RPへregister messageを転送します。
- RPはregister messageを受信すると、送信元ツリーを作成しregister messageのカプセル化を解除します。また、RPはregister messageが不要になった旨をfirst hop routerに伝えるため、regster stopを送信します。
なお、accept-registerが設定されたルータがregister messageを受信した場合は、register messageを許可しないパケットに対して、送信元ツリーを作成せずにregister stopを返信する挙動をします。
8.9 Multicast Tunneling
設問では要求されていませんが、SW3からR6へmulticast転送が可能になるように設定してみましょう。
SW3への通信と同様、SW3からの通信もRPF failureが発生しえます。例えば、SW3からR6への転送を許可するには、以下のようなstatic routeが必要になります。
SW3への通信と同様、SW3からの通信もRPF failureが発生しえます。例えば、SW3からR6への転送を許可するには、以下のようなstatic routeが必要になります。
R1: ip mroute 150.18.9.0 255.255.255.0 Tunnel0 R6: interface Loopback0 ip pim sparse-mode ip igmp join-group 239.6.6.6 ! ip mroute 150.18.9.0 255.255.255.0 155.18.146.1 SW3: Rack18SW3#ping 239.6.6.6 source Loopback 0 Type escape sequence to abort. Sending 1, 100-byte ICMP Echos to 239.6.6.6, timeout is 2 seconds: Packet sent with a source address of 150.18.9.9 Reply to request 0 from 155.18.146.6, 84 ms Rack18SW3#
8.11 Auto-RP
RP candidate(RP候補), RP mapping agentの設定は以下の通りです。RP candidateはRP announce(224.0.1.39)を送信し、自身がRPとして立候補した旨を伝えます。RP mapping agentはRP announceを収集すると、収集結果を基にRP discovery(224.0.1.40)を送信し、他のルータにRPを知らせます。
CCIE試験では、素早く動作確認できるようintervalを少なめに設定しておくと良いと思います。
CCIE試験では、素早く動作確認できるようintervalを少なめに設定しておくと良いと思います。
Router(config)# ip pim send-rp-announce interface scope ttl interval sec Router(config)# ip pim send-rp-discovery interface scope ttl interval sec
RPが認識されない場合は、224.0.1.39, 224.0.1.40に関するツリーを調査し、RP announce, RP discoveryがどこまで到達しているかを分析します。RPF failureによって、これらのメッセージが到達できなくなっている場合は、必要に応じてstatic multicast routeを追加する必要があります。
"8.15 Auto-RP and RP/MA Placement"のシナリオに則った確認をすると、INEの模範解答では、R4, R6がRP discovery messageを受信できていない事が分かります。
Rack18R6#show ip pim rp mapping PIM Group-to-RP Mappings Rack18R6#
原因を調査するために、224.0.1.40のツリーを確認します。Incomming interfaceがNullになっている事から、RPF Failureの可能性を疑います。(もしRPF Failureの確証が欲しいならば、ip debu mapckeを出力させる事で確認できます。)
R6: Rack18R6#show ip mroute 224.0.1.40 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, 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, 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 (*, 224.0.1.40), 00:19:09/stopped, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Loopback0, Forward/Sparse, 00:19:09/00:00:00 FastEthernet0/0.146, Forward/Sparse, 00:19:09/00:00:00 (150.18.1.1, 224.0.1.40), 00:01:44/00:01:15, flags: L Incoming interface: Null, RPF nbr 155.18.67.7 Outgoing interface list: FastEthernet0/0.146, Forward/Sparse, 00:01:44/00:00:00 Loopback0, Forward/Sparse, 00:01:44/00:00:00 Rack18R6# Rack18R6# Rack18R6#traceroute 150.18.1.1 Type escape sequence to abort. Tracing the route to 150.18.1.1 1 155.18.67.7 0 msec 0 msec 4 msec 2 155.18.37.3 0 msec 0 msec 0 msec 3 155.18.0.5 24 msec 20 msec 20 msec 4 155.18.0.1 48 msec * 48 msec Rack18R6#
R6にstatic routeを追加します。R6がRP discovery messageを受信できるようになった事を確認します。
R6: ip mroute 150.18.1.0 255.255.255.0 155.18.146.1 Rack18R6#show ip mroute 224.0.1.40 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, 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, 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 (*, 224.0.1.40), 00:23:52/stopped, RP 0.0.0.0, flags: DCL Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Loopback0, Forward/Sparse, 00:23:52/00:00:00 FastEthernet0/0.146, Forward/Sparse, 00:23:52/00:00:00 (150.18.1.1, 224.0.1.40), 00:00:26/00:02:53, flags: LT Incoming interface: FastEthernet0/0.146, RPF nbr 155.18.146.1, Mroute Outgoing interface list: Loopback0, Forward/Sparse, 00:00:26/00:00:00 Rack18R6#
8.15 Auto-RP and RP/MA Placement
nbma-modeはmulticastに関してsplit horizonを無効化するという意味です。しかし、split horizonが無効化されるのはsparse-modeのみである事に注意して下さい。すなわち、dense-modeに関しては、教えられたルートを教え返さないという挙動になります。
シナリオに則って考えれば、R5 s0/0/0はR1からのRP discovery messageを受信しますが、そのmessageをs0/0/0から送信しません(教え返しません)。従って、R3はRP discovery messageを受信できず、RPが認識できない状態になってしまいます。
シナリオに則って考えれば、R5 s0/0/0はR1からのRP discovery messageを受信しますが、そのmessageをs0/0/0から送信しません(教え返しません)。従って、R3はRP discovery messageを受信できず、RPが認識できない状態になってしまいます。
8.17 Multicast Boundary
Auto-RPによるsparse modeの場合、以下のコマンドでmulticast転送を拒否する事ができます
Router(config-if)# ip multicast boundary acl [ in | out | filter-auto-rp ]
BSRによるsparse modeの場合、以下のコマンドでmulticast転送を拒否する事ができます
Router(config-if)# ip pim bsr-border
8.21 Stub Multicast Routing & IGMP Helper
以下のような低速リンク環境では、multicast treeを形成するよりも、stub multicast routerとしての設定を施し、IGMP messageを転送した方が帯域の節約になります。
┏━━┓ ┏━━┓ ┏━━┓ ┃SW1 ┣━━━┫ R3 ┣━━━━━━━┫ R5 ┃ ┗━━┛ ┗━━┛ 低速リンク ┗━━┛ host stub
設定の要となる部分は、stub routerにIGMP message転送の設定です。以下のコマンドで、IGMP messageを転送できるようになります。
Router(config-if)# ip igmp helper-address addr
また、上記以外の視点として、以下の点について注意を払って下さい。
- SW1/R3, R3/R5間でpim neighborを確立しないようにします
- SW1, R3, R5でmulticastを転送できるようにします
最終的な設定は以下の通りです。
SW1: ip multicast-routing distributed ! access-list 7 deny any ! interface FastEthernet 0/3 ip igmp join-group 239.1.1.7 ip pim dense-mode ip pim neighbor-filter 7 R3: interface FastEthernet 0/0 ip igmp helper-address 155.X.0.5 ip pim dense-mode ! interface Serial 1/0.1 ip pim dense-mode R5: access-list 33 deny 155.X.0.3 access-list 33 permit any ! interface Serial 0/0/0 ip pim sparse-mode ip pim neighbor-filter 33
8.23 IGMP Timers
IGMPv2以上では、IPアドレス最小のルータがクエリア(querier)として選出され、query messageによりmulticast memberが1台以上存在するかを定期的に監視します。
以下のコマンドにより、queryを送信する間隔, multicast memberがqueryに応答する最大時間を定義します。
以下のコマンドにより、queryを送信する間隔, multicast memberがqueryに応答する最大時間を定義します。
Router(config-if)# ip igmp query-interval sec Router(config-if)# ip igmp query-max-resonse-time sec
IGMPv2では、一定時間queryを受信できなかった場合、querierがダウンしたのではないかと判断し、ダウンしたquerierの次にIPアドレスが小さいルータがquerierの役割を引き継ぎます。以下のコマンドでquerierがダウンしたと判断するタイムアウト時間を定義する事ができます。#html2(){{
<pre class="simple">
Router(config-if)# <b>ip igmp querier-timeout</b> <i>sec</i>
</pre>
}}
<pre class="simple">
Router(config-if)# <b>ip igmp querier-timeout</b> <i>sec</i>
</pre>
}}
IGMPv2ではleave messageを受信すると、multicast memberが1台以上残っているかを確認するために、group specific queryを送信します。以下のコマンドで、group specific queryのリトライ回数とタイムアウト時間を定義する事ができます。
Router(config-if)# ip igmp last-member-query-count num Router(config-if)# ip igmp last-member-query-interval sec
multicast memberが1台しかいない環境においては、leave messageを受信したならば、group specific queryを送信しなくてもmulticast memberが存在しない事が分かります。以下のコマンドで、leave messageを受信すると、group specific queryを送信せずにすぐにmulticast groupから脱退するようになります。
Router(config-if)# ip igmp immediate-leave [ group-list acl ]
8.24 Multicast Helper Map
以下のコマンドでマルチキャストアドレスへの変換ができます。使い方はip helper-addressとほぼ同様ですが、aclによりポート番号を限定する事もできます。
また、場合によっては、ip forward-protocolコマンドにより転送を許可, 拒否するポート番号を指定する必要があります。
また、場合によっては、ip forward-protocolコマンドにより転送を許可, 拒否するポート番号を指定する必要があります。
Router(config-if)# ip multicast helper-map { broadcast | before_addr } after_addr [ acl ]
なお、マルチキャストをdirected-broadcastに変換したい場合、以下のようにdirect-broadcastを許可する設定が必要になります。
Router(config-if)# ip directed-broadcast
8.25 Multicast Rate-Limiting
以下のコマンドでマルチキャストの送受信速度を制限する事ができます。
Router(config-if)# ip multicast rate-limit { in | out } [ group-list acl ] Kbps
設定はマルチキャストルーティングテーブルから確認できます。なお、上記コマンドの投入順によっては設定に反映れされいない事もありますので、要注意です。
Router# show ip mroute
8.26 Bidirectional PIM
bidirectional PIMを使用する場合は、全ルータに対して以下のコマンドを入力し、bidirectional PIMを有効にします。
Router(config)# ip pim bidir-enable
bidirection PIMを使用する際のRPの設定は以下の通りです。static RPの場合も、Auto-RPの場合も、BRSの場合も以下の通りコマンドの末尾にbidirというキーワードを指定して下さい。
Router(config)# ip pim rp-address address acl bidir Router(config)# ip pim send-rp-announce interface scope ttl [ group-list acl ] bidir Router(config)# ip pim rp-candidate interface [ group-list acl ] bidir
8.27 Source Specific Multicast
SSM(Source Specific Multicast)を有効にするには、全ルータに以下を投入します。defaultを指定した場合はSSM用として予約されている232.0.0.0/8を使用します。range aclを指定した場合は、ACLで指定したアドレスをSSMとして使用します。
Router(config)# ip pim ssm { defalut | range acl }
SSMのmulticast groupに参加するには、IGMPv3によるjoin messageを送信する必要があります。設定は以下の通りです。
Router(config-if)# ip igmp version 3 Router(config-if)# ip igmp join multicast_group source source_address
8.28 DVMRP Interoperability
試験本番で出題される可能性は極めて低いので捨てます。
万が一、出題された場合は、以下ドキュメントを読みながら何とかする予定です。
http://www.cisco.com/en/US/docs/ios/12_2/ip/configuration/guide/1cfdvmrp.html
万が一、出題された場合は、以下ドキュメントを読みながら何とかする予定です。
http://www.cisco.com/en/US/docs/ios/12_2/ip/configuration/guide/1cfdvmrp.html
8.30 MSDP
MSDP(Multicast Source Discovery Protocol)は、BGP ipv4 multicastを介してRP間で情報を共有するプロトコルです。RPはregister messageを受信すると、SA(Source Active) messageを他のRPに送信し情報を共有します。
このようなMSDP peerを定義するには、以下のコマンドを使用します。
このようなMSDP peerを定義するには、以下のコマンドを使用します。
Router(config)# ip msdp peer remote_addr connected-source int remote-as as
MSDP peerは互いを識別するために、originator-IDという識別子を使用します。デフォルトでは送信元アドレスがoriginator-IDになりますが、以下のコマンドにより明示的に指定する事ができます。
Router(config)# ip msdp peer originator-id int
8.31 Anycast RP
Anycast RPはRPの冗長化を実現する技術です。具体的にいえば、MSDP peerを確立し、RP間で同一の情報を共有する事で冗長化を実現します。設定に必要なタスクは以下の通りです。
- Anycast RP間で、同一のIPアドレスでRPとして立候補します。
- Anycast RP間で、異なるIPアドレスで、MSDP peerを確立します(originator-idの明示指定が必要)
8.33 Catalyst Multicast VLAN Registration
MVRの設定例は以下の通りです。
mvr mvr vlan vlan mvr group addr mvr mode { dynamic | compatible } ! interface int mvr type source ! interface int mvr type reciever
なお、MVRには以下2つのモードが存在し、両者の違いは以下の通りです。
mode | description |
---|---|
dynamic mode | IGMP membership reportをsource portに転送します |
compatible mode | IGMP membership reportをsource portに転送しません。&br;それゆえ、ルータ側はmulticast memberをstaticに設定する必要があります。 |