NSX-T Multicast BSR

今回はNSX-Tのマルチキャストにおいて、BSRを使用してRPの情報を学習する方法についてまとめました。

 

概要

BSRについて

前回の記事では、Static RPを使用して、Tier-0 GWのSRや物理ルータに対して、RPのアドレスを手動で設定しました。しかし、Static RPではルータ数が多い場合、管理者の負荷が高くなってしまいます。

ルータ数が多い場合は、BSR(Bootstrap Router)を使用することで、大量のルータに対して、動的にRPのアドレスを配布可能です。

BSRでは、C-RP(Candidate RP)とBSRと呼ばれる特殊なルータが存在します。C-RPがRPの候補となるルータ、BSRがC-RPの情報を収集してネットワーク全体に広報するルータになります。

最初、BSRが自身のアドレスを格納したBSRメッセージを送信します。BSRメッセージはPIMが有効な全ルータに伝搬されます。この結果、PIMが有効な全ルータがBSRのアドレスを学習できます。

 

 

C-RPはBSRのアドレスを学習後、BSRに対して、C-RP-Advertisementメッセージを送信し、自身のアドレス、自身が処理可能なマルチキャストアドレスの範囲、Priorityを通知します。

 

BSRはC-RPの情報を学習後、BSRメッセージにC-RPの情報を格納して、PIMが有効な全ルータに広報します。この結果、各ルータがC-RPの情報を学習します。

 

もし、特定のマルチキャストアドレスを処理可能なC-RPが複数存在する場合、Priorityが最小なC-RPをRPとして使用します。

 

検証結果

検証内容、構成

Tier-0 GWでSegment 1を収容します。
NSX EdgeにTier-0 GWのSRを配置し、物理ネットワークとNSX-Tの仮想ネットワークを接続します。

Tier-0 GWとR2でPIM-SMを動作させます。
R2の20.0.0.2/32をC-RP、BSRとして使用します。

Segment 1の仮想マシンを230.1.1.1に参加させます。
R3から230.1.1.1宛のトラフィックを送信します。

 

ネットワーク機器のCLIの設定


ip multicast-routing distributed
!
interface Loopback0
 ip address 20.0.0.2 255.255.255.255
 ip pim sparse-mode
!
interface GigabitEthernet2
 ip address 20.1.1.100 255.255.255.0
 ip pim sparse-mode
!
interface GigabitEthernet3
 ip address 20.2.2.2 255.255.255.0
 ip pim sparse-mode
!
ip pim bsr-candidate Loopback0 0
ip pim rp-candidate Loopback0
!
ip route 0.0.0.0 0.0.0.0 20.1.1.1
            


interface GigabitEthernet2
 ip address 20.2.2.3 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 20.2.2.2
            

 

Multicastの設定

IGMP Profileの設定

IGMP Profileにおいて、IGMPの各種タイマーを設定します。

 

Tier-0 GWの設定

マルチキャストの有効化

最初にTier-0 GWでマルチキャストを有効にします。また、先程定義したIGMP Profileを適用します。BSRを使用する場合、PIM Profileは不要になります。

 

アップリンクでのPIMの有効化

物理ネットワーク側のルータとPIMのメッセージをやり取りするために、アップリンクでPIMを有効にします。

 

RPF Check用のスタティックルートの設定

受信したマルチキャストパケットに対するRPF Checkを成功させるために、マルチキャストの送信元アドレスにマッチするスタティックルートを設定します。

 

IGMP/PIMの状態確認

BSR経由で学習したRPの情報はget pim bsrコマンドで確認可能です。Tier-0 GWのSRがRPのアドレスである20.0.0.2を学習していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get pim bsr
BSR Address  20.0.0.2
Group Address 224.0.0.0/4
--------------------------
Rp Address      priority        Holdtime        Hash
(ACTIVE)
20.0.0.2        0               150             1533588312
(PENDING)
Pending RP count :0
Partial List is empty
            

 

以下はR2がTier-0 GWのSRに送信したBSRメッセージのキャプチャになります。RPのアドレスである20.0.0.2が格納されていることが確認できます。

 

BSR経由で学習したRPの情報を基に、Tier-0 GWのSRとR2に(*,G)エントリと(S,G)エントリが生成されていることが確認できます。

NSX Edge1

edge1(tier0_sr)> get mroute 230.1.1.1
IP Multicast Routing Table
Flags: S- Sparse, C - Connected, P - Pruned
       R - RP-bit set, F - Register flag

Source          Group           Flags   Proto  Input            Output           TTL  Uptime
*               230.1.1.1       SC      IGMP   uplink-325       pimreg           1    00:04:43
                                        IGMP                    downlink-327     1
20.2.2.3        230.1.1.1       S       STAR   uplink-325       downlink-327     1    00:01:35
            
R2

R2#show ip mroute 230.1.1.1

(*, 230.1.1.1), 00:07:39/00:02:54, RP 20.0.0.2, flags: SF
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    GigabitEthernet2, Forward/Sparse, 00:04:24/00:02:54

(20.2.2.3, 230.1.1.1), 00:01:16/00:01:43, flags: FT
  Incoming interface: GigabitEthernet3, RPF nbr 0.0.0.0
  Outgoing interface list:
    GigabitEthernet2, Forward/Sparse, 00:01:16/00:02:54
            

 

疎通確認

 

以下はSegment 1の仮想マシンが受信した230.1.1.1宛のマルチキャストトラフィックのキャプチャになります。

コメント

タイトルとURLをコピーしました