PIM-SMのトラブル その3 解答と解説 【CCIEレベル】

解答

  • なぜSOURCEから239.1.1.1への通信ができないのですか?

【R1】
SOURCEが接続されているEthernet0/0でPIM-SMが有効化されていないので、SOURCEから送信されたマルチキャストパケットをルーティングできない

【R2】
RP候補の設定で関連づけるアクセスリストの設定が間違っているため、239.1.1.1ではなく239.1.0.1のRPとしてC-RP-Advertiseメッセージを送信している。そのため、すべてのルータで239.1.1.1のRPとしてR2を認識できない

【R3】
BSR候補としてLoopback0を送信元アドレスのBSRメッセージを送信する設定を行っているが、Loopback0でPIM-SMを有効化していないため、BSRメッセージを送信しない。そのため、すべてのルータでBSRのアドレスを認識できない。

【R4】
Ethernet0/0でBSR Borderの設定がされているため、BSRメッセージを受信しない。そのため、R4以降のルータはBSRのアドレスを認識できない。

 

  • すべてのルータで239.1.1.1のRPアドレスを正しく認識して、ルーティングできるようにするためにはどのように設定を修正すればよいですか?

R1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Ethernet0/0
 ip pim sparse-mode
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
no access-list 1
access-list 1 permit 239.1.1.1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R3

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Loopback0
 ip pim sparse-mode
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R4

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Ethernet0/0
 no ip pim bsr-border
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ワンポイント

  • マルチキャストパケットの転送経路上のインタフェースすべてでPIMを有効化しなければいけない
  • BSRやAuto RPでLoopbackのアドレスを利用するときはLoopbackインタフェースでもPIMを有効にしなければいけない
  • BSR BorderによってBSRメッセージが届く範囲を制限できる

解説

4台のルータに複合的に設定ミスを仕込んでいるので、かなり難しい問題です。トラブルの切り分けと修復は、次の2つの段階で考えていくと効果的でしょう。

  • RPアドレスの認識(BSR)
  • マルチキャストパケットのルーティング

【RPアドレスの認識(BSR)】

まず、PIM-SMではルーティングするマルチキャストグループのRPアドレスをすべてのルータで認識していなければいけません。しかし、各ルータでは239.1.1.1のRPアドレスをまったく認識できていません。今回の構成では、RPの学習をBSRで行っているので、まずはBSRで正しく239.1.1.1のRPアドレスをすべてのルータで認識できるように考えていきます。ここでさらに次の2つの段階に分けて考えます。

  • BSRの認識について
  • RPの認識について

<BSRの認識について>

BSRでは、BSR候補のルータが定期的にBSRメッセージを送信して最適なBSRを選出します。今回の構成では、R3がBSR候補として設定されています。R3は定期的(60秒ごと)にBSRメッセージを送信して、自身がBSR候補であることを通知するはずです。ですが、R3は実際にはBSRメッセージを送信していません。このことは、R3でshow ip pim bsr-routerを見るとよく分かります。

R3 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R3#show ip pim bsr-router
PIMv2 Bootstrap information
This system is a candidate BSR
  Candidate BSR interface Loopback0
    PIMv2 is not configured - BSR messages not originated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R3のLoopback0のインタフェースをBSRアドレスとして設定しているのですが、R3のLoopback0ではPIMが有効化されていません。そのため、R3はBSRメッセージを送信していないことが分かります。BSRアドレスとして利用するインタフェースも、次のようにPIMを有効化しなければいけません。

R3 Loopback0でPIM-SMを有効化

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Loopback0
 ip pim sparse-mode
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R3 Loopback0でPIM-SMを有効化したあと、show ip pim bsr-routerを見ると、次のようになります。

R3 show ip pim bsr-router(Loopback0でPIM有効化)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R3#show ip pim bsr-router
PIMv2 Bootstrap information
This system is the Bootstrap Router (BSR)
  BSR address: 192.168.0.3 (?)
  Uptime:      00:00:10, BSR Priority: 0, Hash mask length: 0
  Next bootstrap message in 00:00:50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R3からBSRメッセージが送信されるようになると、R1、R2はBSRアドレスを認識できるようになります。

R1 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:02:03, BSR Priority: 0, Hash mask length: 0
  Expires:     00:02:06
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R2 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:02:40, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:29
  Candidate RP: 192.168.0.2(Loopback0)
    Holdtime 12 seconds
    Advertisement interval 5 seconds
    Next advertisement in 00:00:03
    Group acl: 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ですが、R4、R5、R6はBSRアドレスを認識できていません。これは、R4 Ethernet0/0でBSR Borderが設定されているためです。R4でshow ip pim interface ethernet0/0 detailコマンドを確認するとわかります。

R4 show ip pim interface ethernet0/0 detail

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R4#show ip pim interface ethernet 0/0 detail
Ethernet0/0 is up, line protocol is up
  Internet address is 192.168.34.4/24
  Multicast switching: fast
  Multicast packets in/out: 0/0
  Multicast TTL threshold: 0
  PIM: enabled
    PIM version: 2, mode: sparse
    PIM DR: 192.168.34.4 (this system)
    PIM neighbor count: 1
    PIM Hello/Query interval: 30 seconds
    PIM Hello packets in/out: 136/136
    PIM State-Refresh processing: enabled
    PIM State-Refresh origination: disabled
    PIM NBMA mode: disabled
    PIM ATM multipoint signalling: disabled
    PIM domain border: enabled
  Multicast Tagswitching: disabled
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

BSR BorderはBSRメッセージが届く範囲を制限するための機能です。通常、BSRメッセージはマルチキャストネットワーク全体にフラッディングされていきます。BSR Borderが設定されているインタフェースではBSRメッセージ受信しません。また、BSR BorderのインタフェースにBSRメッセージを転送しません。

R4、R5、R6でもBSRアドレスを認識できるようにするためには、R4 Ethernet0/0のBSR Borderを無効化します。

R4 Ethernet0/0でBSR Borderを無効化

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Ethernet0/0
 no ip pim bsr-border
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

BSR Borderを無効化すると、次のようにR4、R5、R6でもBSRアドレスを認識できるようになります。

R4 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R4#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:00:38, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:31
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R5 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R5#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:01:42, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:27
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R6 show ip pim bsr-router

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R6#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:02:10, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:59
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

<RPの認識について>

ここまでですべてのルータでBSRアドレスとしてR3(192.168.0.3)を認識しています。そして、RP候補のR2はR3(192.168.0.3)に対して、自身が239.1.1.1のRPであることをC-RP-Advertiseメッセージで通知します。BSRであるR3はBSRメッセージに239.1.1.1のRPアドレスも含めてアドバタイズします。そして、最終的にすべてのルータは239.1.1.1のRPアドレスを認識できるようになるはずです。
ところが、R3でRPアドレスの情報を見ると239.1.1.1ではなく239.1.0.1のグループのRPアドレスの認識になってしまっています。

R3 show ip pim rp-mapping

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R3#show ip pim rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)

Group(s) 239.1.0.1/32
  RP 192.168.0.2 (?), v2
    Info source: 192.168.23.2 (?), via bootstrap, priority 0, holdtime 12
         Uptime: 00:20:10, expires: 00:00:08
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

BSRではC-RP-Advertiseメッセージ内のRPの情報を勝手に書き換えることはしないので、RP候補であるR2での設定ミスが考えられます。そこでR2でRP候補の設定を確認するために、show ip pim bsr-routerとshow access-listコマンドを使います。

R2 show ip pim bsr-router/show access-list

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#show ip pim bsr-router
PIMv2 Bootstrap information
  BSR address: 192.168.0.3 (?)
  Uptime:      00:24:00, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:10
  Candidate RP: 192.168.0.2(Loopback0)
    Holdtime 12 seconds
    Advertisement interval 5 seconds
    Next advertisement in 00:00:02
    Group acl: 1
R2#show access-list
Standard IP access list 1
    10 permit 239.1.0.1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

これを見ると、R2でアクセスリストの設定が間違っていることが分かります。R2のアクセスリストを修正します。

R2 アクセスリストの修正

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
no access-list 1
access-list 1 permit 239.1.1.1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ここまでで、すべてのルータでBSRアドレスとしてR3の192.168.0.3を認識します。そして、すべてのルータで239.1.1.1のRPアドレスとしてR2の192.168.0.2を認識します。

【マルチキャストパケットのルーティング】

すべてのルータでBSRもRPもきちんと認識しているのですが、SOURCEから239.1.1.1にパケットを送信してもきちんとルーティングされません。

SOURCE ping 239.1.1.1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SOURCE#ping 239.1.1.1 repeat 100

Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:
...................................
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R1でSOURCEからの239.1.1.1のマルチキャストパケットを受信すると、(192.168.1.100,239.1.1.1)エントリを作成するはずですが、できていません。

R1 show ip mroute 239.1.1.1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip mroute 239.1.1.1
Group 239.1.1.1 not found
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

これはR1 Ethernet0/0でPIMが有効化されていないためです。R1でshow ip pim interfaceを見ると、Ethernet0/0でPIMが有効化されていないことが分かります。

R1 show ip pim interface

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip pim interface
 
Address          Interface                Ver/   Nbr    Query  DR     DR
                                          Mode   Count  Intvl  Prior
192.168.0.1      Loopback0                v2/S   0      30     1      192.168.0.1
192.168.12.1     Ethernet0/1              v2/S   1      30     1      192.168.12.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

PIMが有効化されていないインタフェースではマルチキャストパケットを受信できません。PIMを有効化することで、該当のインタフェースでマルチキャストパケットを受信できるようになります。そのため、マルチキャストパケットの転送経路上のすべてのインタフェースでPIMを有効化することが、マルチキ
ャストルーティングを行うための大前提です。正しくマルチキャストルーティングするためにR1 Ethernet0/0でPIMを有効化します。

R1 Ethernet0/0でPIMを有効化

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
interface Ethernet0/0
 ip pim sparse-mode
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

その後、SOURCEから239.1.1.1のマルチキャストパケットを送信すれば、正常にルーティングされることが分かります。

SOURCE ping 239.1.1.1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SOURCE#ping 239.1.1.1 repeat 100
 
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:
 
Reply to request 0 from 192.168.46.6, 116 ms
Reply to request 0 from 192.168.45.5, 116 ms
Reply to request 1 from 192.168.45.5, 104 ms
Reply to request 1 from 192.168.46.6, 108 ms
 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

【まとめ】

最後にまとめです。R1~R4での設定ミスを次の図にまとめています。

multicast_routing_problem12.jpg

図 設定ミスのまとめ


マルチキャストルーティングとCiscoルータでの設定・検証方法を詳しく勉強したい方には「詳解IPマルチキャスト」がオススメです。

詳解IPマルチキャスト 概念からCisco製品での設定例まで (NETWORK PROFESSIONAL) 詳解IPマルチキャスト 概念からCisco製品での設定例まで (NETWORK PROFESSIONAL)
Gene

Ciscoネットワーク構築教科書[設定編] CCIE Routing and Switching Certification Guide (4th Edition) (Exam Certification Guide) ネットワーク構築の基礎 IPv4アドレス枯渇対策とIPv6導入 Cisco WAN 実践ケーススタディ
by G-Tools

Follow me!