今回は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を学習していることが確認できます。
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)エントリが生成されていることが確認できます。
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#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宛のマルチキャストトラフィックのキャプチャになります。
コメント