こんにちは VMware SASE テクニカルサポートチームの加藤です。このドキュメントでは VMware SD-WAN の機能の一つであるマルチキャストについて設定方法・確認方法についてご紹介します。このドキュメントを読むことで VMware SD-WAN 環境でマルチキャストを設定、確認する方法が理解できます。
1. マルチキャストとは
「マルチキャスト」は一つの送信元 (Sender) から複数の受信者 (Receiver) に対して同一データを一斉に送信する(一対多の)通信方式です。
一対一の通信方式(ユニキャスト)の場合、受信者の数だけ同じデータを送出する必要があるため、受信者が増加するに従って通信回線への負荷が大きくなります。一方、マルチキャストは受信者が増加しても、同じデータは通信回線を一つしか通りません。マルチキャストは通信回線の負荷を抑えながら、複数の受信者に同じデータを届けるソリューションです。
ビジネスにおいてはIPテレビなどの映像配信サービスや監視カメラの管理サービスに利用されています。
2. マルチキャスト用語集
マルチキャストの説明においては、関連用語が多数登場するため、必要に応じて以下の「マルチキャスト用語集」をご参照ください。
Receiver | マルチキャスト受信ホスト |
Sender | マルチキャスト送信ホスト |
LHR (Last Hop Router) | Receiver のセグメントに接続されているルータ |
FHR (First Hop Router) | Sender のセグメントに接続されているルータ |
マルチキャストグループ | マルチキャストを受信する Receiver の集まり(グループ) マルチキャストグループ毎に 1 つのグループアドレスを持つ |
グループアドレス | マルチキャストグループに割り当てられたマルチキャストアドレス。クラス D アドレス(224.0.0.0から239.255.255.255)を使用する。
・リンクローカル (224.0.0.0 ~ 224.0.0.255) ・グローバルスコープ (224.0.1.0 ~ 238.255.255.255) ・プライベートスコープ (239.0.0.0 ~ 239.255.255.255) の 3 つの分類があり、企業が組織内で使用する上ではプライベートスコープを利用する。 |
IGMP (Internet Group Management Protocol) | Receiver が LHR にマルチキャスト受信の要求を行うプロトコル |
PIM (Protocol Independent Multicast) | マルチキャストルーティングプロトコル |
PIM-DM (Dense-Mode) | Dense モードのマルチキャストルーティング プロトコル。マルチキャストネットワーク全体にトラフィックをフラッドする。VMware SD-WAN Edge は未対応。 |
PIM-SM (Sparse-Mode) | Sparse モードのマルチキャストルーティング プロトコル。Receiver が存在するインターフェイスのみにマルチキャストトラフィックを転送する。中継ポイントが必要。 |
RP (Rendezvous Point) | PIM-SM の共有ツリーの中継ポイント |
共有ツリー | RP と Receiver を結ぶ共通のマルチキャストルーティング経路 |
送信元ツリー | Sender と Receiver を結ぶ個別のマルチキャストルーティング経路 |
IIF (Incoming Interface) | マルチキャストトラフィックの受信インタフェース |
OIF (Outgoing Interface) | マルチキャストトラフィックの送信インタフェース |
3. 試験構成
今回は以下の構成でマルチキャストの設定を行います。この構成で Sender から Receiver に SD-WAN オーバーレイを経由したマルチキャスト通信を行うことを目標とします。
・マルチキャスト通信は VMware SD-WAN Edge である Edge1 と Edge3 を経由します。
・Edge1 は Hub、Edge3 は Branch として機能し、Edge 間は SD-WAN オーバーレイが動作しています。
・Router(RP) の Loopback の IP アドレス 5.1.1.1 を Rendezvous Point として設定します。
・Sender からグループアドレス 239.1.1.1 にマルチキャストを送信します。
・Receiver をグループアドレス 239.1.1.1 のマルチキャストグループに参加させます。
IGMP と PIM の動作は 「Step4 – Senderの設定」 および 「Step5 – Receiverの設定」 で詳しく説明します。
4. マルチキャストの前提としてのユニキャストルーティング
マルチキャストを設定するにあたっては、ユニキャストルーティングの疎通性が必要となります。Router(RP) と Edge1 の間で OSPF を動作させて、Edge1 で OSPF の経路を SD-WAN オーバレイに広報します。
Edge3 においては Receiver と接続しているリンクを SD-WAN オーバレイに広報します。Router(RP) の設定については今回割愛しますが、RP となる Loopback のアドレスを OSPF に広報することをお忘れなく。
5. マルチキャストの設定 Step1 – Profile 設定
ここからは VMware SD-WAN 環境でマルチキャストを設定する方法について説明します。Edge1 に適用する Profile で Cloud VPN を有効にします。
Edge1 に適用する Profile で OSPF を有効にします。OSPF の経路を Overlay に広報するため 「Overlay Prefixes」 にチェックを入れます。
Edge3 に適用する Profile で Cloud VPN を有効にします。Hub として Edge1 を指定します。
Step2 – Edge1 の設定
Edge1 の 「Multicast」 の設定は以下の通りです(なお、Multicast の設定は Profile レベルでも設定可能です)。「Enable PIM on Overlay」をチェックすることで、SD-WAN オーバレイを通したPIMのやり取りが可能となります。
Edge1 の GE5 で OSPF と PIM を動作させます。
Step3 – Edge3 の設定
Edge3 の「Multicast」も同様に設定します。
なお、LHR の Receiver が接続しているインタフェースは IGMP と PIM の両方が有効になっている必要があります。
今回、Receiver が接続しているEdge3 の GE2 は、VLAN1 を割り当てた Switch ポートです。そのため VLAN1 に IGMP と PIM の設定を行います。Receiver の経路をオーバレイに広報するため、「Advertise」の設定にもチェックが必要です。
Step4 – Sender の設定
Sender で iperf を用いてグループアドレス 239.1.1.1 宛の通信を行います。この時点では Sender から RP に通信が行われるのみで、Edge にマルチキャスト通信は到達しません。
iperf の出力は以下の通りです。Receiver が受信しているかどうかに関わらず、Sender は FHR に対してパケットを送出し続けます。
iperf -c 239.1.1.1 -u -i 1 -T 5 -t 1000
————————————————————
Client connecting to 239.1.1.1, UDP port 5001
Sending 1470 byte datagrams
Setting multicast TTL to 5
UDP buffer size: 208 KByte (default)
————————————————————
[ 3] local 172.16.1.19 port 37436 connected with 239.1.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 5.0- 6.0 sec 128 KBytes 1.05 Mbits/sec
Step5 – Receiver の設定
Receiver でiperf を用いてグループアドレス 239.1.1.1 のマルチキャストグループに参加します。実際の動作は以下の通りです。
まず Receiver が LHR の Edge3 に IGMP を送信します。それを受けて Edge3 の PIM が動作し、共有ツリーと送信元ツリーが生成されます。Edge3 と RP の経路上にある Edge1 でも同じツリーが生成されます。これにより RP と Receiver を結ぶマルチキャストの経路が確立され、Sender から Receiver までマルチキャスト通信が届くようになります。
iperfの出力は以下の通りです。Receiverがパケットを受信している場合、受信バイト数やbpsの値が出力されます。
iperf -s -u -B 239.1.1.1 -i 1
————————————————————
Server listening on UDP port 5001
Binding to local address 239.1.1.1
Joining multicast group 239.1.1.1
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
————————————————————
[ 3] local 239.1.1.1 port 5001 connected with 172.16.1.19 port 37436
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 0.197 ms 187/ 276 (68%)
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.107 ms 0/ 89 (0%)
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.138 ms 0/ 89 (0%)
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec 0.187 ms 0/ 89 (0%)
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec 0.210 ms 0/ 89 (0%)
Step6 –マルチキャストの状態確認
「Monitor->Routing->Multicast Groups」から、マルチキャストグループの情報を確認できます。マルチキャストグループが正しく表示されない場合は、ルーティングや PIM Neighbor に問題がある可能性があります。
「Multicast Groups」タブを選択すると、マルチキャストグループに参加している Edge の Upstream と Downstream インタフェースが表示されます。
Upstream インタフェースはマルチキャストを受信する IIF であり、Downstream のインタフェースはマルチキャストを送信する OIF です。トラブルシューティングの際には、Upstream と Downstream インタフェースが想定通りになっているかを確認してください。想定通りでない場合は、ルーティングに問題がある可能性があります。
「Monitor->Routing->PIM Neighbor」からは PIM Neighborの情報を表示できます。
Edge を選択すると、選択した Edge が確立している PIM Neighbor が表示されます。PIM Neighbor が VMware SD-WAN Edge の場合は Edge name が、そうでない場合は接続先 Interface の情報が記載されます。
トラブルシューティングの際には、通信経路上の隣接装置と PIM Neighbor が確立しているかを確認してください。
6. マルチキャスト設定時の注意点
VMware SD-WAN のマルチキャストサポート内容は以下の通りとなっています。お客様の環境でマルチキャストを設定する際は、以下の制約に注意してください (2023年9月時点)。
- オーバーレイとアンダーレイの両方のマルチキャスト サポート
- VCE 上のプロトコルに依存しないマルチキャストスパースモード (PIM-SM) をサポート
- VCE 上の Internet Group Management Protocol (IGMP) バージョン 2 をサポート
- 固定ランデブー ポイント (RP) 構成(サードパーティ ルーターで RP が有効になっている場合)をサポート
- マルチキャストはグローバル セグメントでのみサポートされます
- 動的 E2E トンネル間ではマルチキャストはサポートされません
- RP の動的マッピング (BSR) はサポートされません
7. まとめ
今回は VMware SD-WAN の機能の一つであるマルチキャストの設定方法についてご紹介しました。SD-WAN オーバレイを経由したマルチキャストが簡単に設定できることがわかりましたね。マルチキャストの導入を検討されているみなさまの運用に貢献できたら幸いです。