例:明示的トンネルを使用しない自動 IP マルチキャストの設定
AMT について
自動マルチキャスト トンネリング(AMT)により、ユニキャスト専用ネットワークのアイランド間のマルチキャスト対応ネットワーク間の動的マルチキャスト接続が容易になります。このような接続により、サービス プロバイダ、コンテンツ プロバイダ、顧客は、エンドツーエンドのマルチキャスト接続がない場合でも、マルチキャスト トラフィックの配信に参加できます。
AMT は、Junos 13.2 以降を実行している MPC(モジュラー ポート コンセントレータ)を備えた MX シリーズ イーサネット サービス ルーターでサポートされています。AMT は i チップベースの MPC でもサポートされています。AMT は GR(グレースフル リスタート)をサポートしますが、 グレースフル ルーティング エンジン スイッチオーバー (GRES)はサポートしていません。
AMT は、既知のマルチキャスト対応リレー ポイント(AMT リレー)とユニキャスト(AMT ゲートウェイ)を介してのみ到達可能なネットワーク ポイント間にユニキャストカプセル化トンネルを動的に確立します。 図 1 は、自動マルチキャスト トンネリング接続を示しています。
AMTプロトコルは、リレーとゲートウェイ間の検出とハンドシェイクを提供し、明示的なトンネル単位の設定を必要とせずに、トンネルを動的に確立します。
AMT リレーは通常、多数の AMT トンネルを集約するネイティブ IP マルチキャスト接続を持つルーターです。
Junos OS の実装では、次の AMT リレー機能がサポートされています。
IPv4 マルチキャスト トラフィックと IPv4 カプセル化
マルチキャスト ネットワーク上の既知のソース
ゲートウェイを介して供給されるマルチキャスト パケットを迅速に破棄することで、サービス拒否攻撃を防止します。
必要なすべてのAMTトンネルの完全なファンアウトへのルート単位の複製
AMT トンネル上で通常のインターフェイス統計情報を収集する機能
AMT ゲートウェイの背後にあるマルチキャスト ソースはサポートされていません。
AMT は PIM スパース モードをサポートしています。AMT はデンス モード動作をサポートしていません。
AMT アプリケーション
多くのローカル サービス プロバイダがマルチキャスト対応でないために、トランジット サービス プロバイダはインターネットで課題を抱えています。課題は、コンテンツ所有者が動画やその他のマルチキャスト トラフィックをバックボーン全体に送信するように誘導する方法です。コンテンツ所有者のコスト モデルは、大部分の加入者にユニキャスト ストリームの料金を支払う必要がある場合、非常に高くなる可能性があります。
より多くのローカル プロバイダがマルチキャスト対応になるまでは、インターネット技術タスク フォース(IETF)によって提案され、オープンソース ソフトウェアに実装された移行戦略があります。この戦略は、明示的トンネルなしの自動 IP マルチキャスト(AMT)と呼ばれます。AMT では、ユニキャスト ネットワークに接続されたホストにインストールされたゲートウェイから到達できるマルチキャスト ネットワークのピアリング ポイントでリレーを設定します。
AMT を使用しない場合、ユニキャストのみのネットワークに接続しているユーザーがマルチキャスト コンテンツを受信する場合、コンテンツ所有者はユニキャストを介してユーザーの参加を許可できます。ただし、コンテンツ所有者はユニキャスト加入者をサポートするために余分な帯域幅を必要とするため、追加コストが発生します。
AMT では、任意のホストがマルチキャストを受信できます。クライアント側には、単一のホストであるAMTゲートウェイがあります。ゲートウェイがホストかもしれませんが通常はルーターである AMT リレーを見つけたら、ゲートウェイは動的に作成された UDP トンネルを介して定期的にインターネット グループ管理プロトコル(IGMP)メッセージをリレーに送信します。AMT リレーとゲートウェイは協力して、マルチキャスト ネットワーク内で送信元のマルチキャスト トラフィックをエンド ユーザー サイトに送信します。AMT リレーはトラフィックをネイティブに受信し、ゲートウェイにユニキャストカプセル化します。これにより、インターネット上の誰でも動的トンネルを作成してマルチキャスト データ ストリームをダウンロードできます。
AMT を使用すると、マルチキャスト対応サービス プロバイダはコンテンツ所有者にマルチキャスト サービスを提供できます。ユニキャストのみのローカル プロバイダの顧客がコンテンツを受信し、AMT join を使用してサブスクライブする場合、マルチキャスト対応トランジット プロバイダは、コンテンツをユニキャストのみのローカル プロバイダに効率的に転送し、エンド ユーザーに送信できます。
AMT は、コンテンツへのアクセスは可能ですが、エンド ユーザーがあまりいないトランジット サービス プロバイダがコンテンツ所有者にマルチキャスト サービスを提供する優れた方法です。経済的には実現可能ではありません。また、すべてのダウンストリーム機器でマルチキャスト サポートをまだ受けていないローカル サービス プロバイダにとっても、有益な移行戦略です。
AMT は、ユニキャストのみのサービス プロバイダによって分離された 2 つのマルチキャスト対応サービス プロバイダを接続する場合にも役立ちます。
同様に、AMT は、マルチキャスト機能が制限されたデジタル 加入者回線アクセス マルチプレクサ(DSLAM)などのレガシー エッジ デバイスを介してマルチキャスト トラフィックをトンネリングするために、ネットワークがマルチキャスト対応になっているローカル サービス プロバイダでも使用できます。
AMT の実装の技術的な詳細は次のとおりです。
3 方向ハンドシェイクを使用してユニキャスト レシーバーからグループに参加させ、スプーフィング攻撃やサービス拒否(DoS)攻撃を防ぎます。
複製サーバーとして機能する AMT リレーは、マルチキャスト グループに参加し、マルチキャスト トラフィックを複数のユニキャスト ストリームに変換します。
検出メカニズムはエニーキャストを使用して、ネットワーク トポロジ内のゲートウェイに最も近いリレーの検出を可能にします。
クライアントとして動作するAMTゲートウェイは、マルチキャストグループに参加するホストです。
リレーのトンネル数の制限により、帯域幅の使用量が制限され、サービスの低下を回避できます。
AMT については、インターネット ドラフト draft-ietf-mboned-auto-multicast-10.txt、 明示的トンネルなしの自動 IP マルチキャスト(AMT)で詳しく説明されています。
AMT運用
AMT は、ユニキャストのみのネットワークのアイランド間でマルチキャスト対応ネットワーク間でマルチキャスト トンネルを動的に作成するために使用されます。これを行うには、いくつかの手順が連続して実行されます。
AMT リレー(通常はルーター)は、エニキャスト アドレス プレフィックスをアドバタイズし、ユニキャスト ルーティング インフラストラクチャにルーティングします。
AMTゲートウェイ(ホスト)は、ユニキャストのみのインフラストラクチャで到達可能な最も近いAMTリレーにAMTリレー検出メッセージを送信します。リプレイ攻撃や辞書攻撃の可能性を減らすために、リレー検出メッセージには暗号化ノンスが含まれています。暗号化 nonce は、1 回だけ使用される乱数です。
トポロジの最も近いリレーは、AMT リレー検出メッセージを受信し、AMT リレー アドバタイズメント メッセージ内の検出メッセージから nonce を返します。これにより、ゲートウェイはリレーの固有のIPアドレスを学習できます。AMTリレーは、後続のすべての(S、G)、それが参加するエントリーに使用するアドレスを持つようになりました。
AMT ゲートウェイは、AMT リレーの固有の IP アドレスに AMT 要求メッセージを送信し、(S、G)への参加プロセスを開始します。
AMT リレーは、AMT メンバーシップ クエリをゲートウェイに返します。
AMT ゲートウェイは AMT クエリ メッセージを受信し、IGMP 参加メッセージを含む AMT メンバーシップ更新メッセージを送信します。
AMT リレーは、ネイティブ マルチキャスト インフラストラクチャでネイティブ マルチキャスト ツリーを構築するために、ソースに結合メッセージを送信します。
送信元からパケットを受信すると、AMT リレーは、AMT トンネルを含む、発信インターフェイス リスト内のすべてのインターフェイスにパケットを複製します。その後、マルチキャスト トラフィックはユニキャスト AMT マルチキャスト データ メッセージにカプセル化されます。
AMT リレーの状態を維持するために、AMT ゲートウェイは定期的な AMT メンバーシップ更新を送信します。
トンネルが確立されると、送信された各メンバーシップ更新メッセージを使用して AMT トンネルの状態が更新されます。リフレッシュ・メッセージのタイムアウトは 240 秒です。
AMT ゲートウェイがグループを離れると、AMT リレーはトンネルに関連付けられたリソースを解放できます。
以下の運用上の詳細に注意してください。
AMT リレーは、AMT 擬似インターフェイス(トンネル インターフェイス)を作成します。AMT トンネル インターフェイスは、汎用 UDP カプセル化(ud)論理インターフェイスとして実装されます。これらの論理インターフェイスの識別子形式 は ud-fpc/pic/port.unit です。
すべてのマルチキャスト パケット(データと制御)はユニキャスト パケットにカプセル化されます。UDP カプセル化は、AMT の IANA 予約 UDP ポート番号(2268)を使用して、すべての AMT 制御およびデータ パケットに使用されます。
AMT リレーは、各マルチキャスト セッションのレシーバ リストを保持します。リレーは、特定のグループまたは(S,G)ペアに参加した各ゲートウェイのマルチキャスト状態を維持します。
AMT プロトコルの設定
AMT プロトコルを設定するには、次のステートメントを amt
含めます。
amt { relay { accounting; family { inet { anycast-prefix ip-prefix</prefix-length>; local-address ip-address; } } secret-key-timeout minutes; tunnel-limit number; } traceoptions { file filename <files number> <size size> <world-readable | no-world-readable>; flag flag <flag-modifier> <disable>; } }
このステートメントは、以下の階層レベルに含めることができます。
[edit protocols]
[edit logical-systems logical-system-name protocols]
[edit routing-instances routing-instance-name protocols]
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols]
次の例では、階層のみが [edit protocols]
識別されます。
AMT を有効にする最小設定は、AMT ローカル アドレスと AMT エニキャスト プレフィックスを指定することです。
「」も参照
AMT インターフェイスのデフォルト IGMP パラメータの設定
オプションで、すべての AMT トンネル インターフェイスのデフォルト IGMP パラメータを設定できます。ただし、通常は値を変更する必要はありません。すべてのAMTリレートンネルのデフォルトIGMP属性を設定するには、次のステートメントを amt
含めます。
amt { relay { defaults { (accounting | no-accounting); group-policy [ policy-names ]; query-interval seconds; query-response-interval seconds; robust-count number; ssm-map ssm-map-name; version version; } } }
このステートメントは、以下の階層レベルに含めることができます。
[edit protocols igmp]
[edit logical-systems logical-system-name protocols igmp]
[edit routing-instances routing-instance-name protocols igmp]
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols igmp]
階層レベルに[edit protocols igmp amt relay defaults]
含まれる IGMP ステートメントは、または[edit protocols igmp interface interface-name]
階層レベルに含まれる IGMP ステートメントと同じ構文と目的を[edit protocols igmp]
持ちます。これらのステートメントは次のとおりです。
IGMP 参加を収集し、イベント統計情報を残すことができます。すべてのAMTインターフェイスに対してIGMPジョインおよび leave イベント統計情報の収集を有効にするには、次のステートメントを
accounting
含めます。user@host# set protocols igmp amt relay defaults accounting
IGMP アカウンティングを有効にした後、記録された情報をファイルにフィルタリングするか、端末に表示するようにルーターを設定する必要があります。イベント ファイルをアーカイブできます。
すべてのAMTインターフェイスに対するIGMP結合および終了イベント統計情報の収集を無効にするには、次のステートメントを
no-accounting
含めます。user@host# set protocols igmp amt relay defaults no-accounting
不要な IGMP レポートをインターフェイス レベルでフィルタリングできます。不要な IGMP レポートをフィルタリングするには、ポリシーのステートメントを使用してグループ アドレスと一致させることで、IGMP グループ アドレスのみ(IGMPv2 用)を照合するポリシー
route-filter
を定義します。グループ アドレスと一致するポリシーのステートメントと送信元アドレスと一致するポリシーのroute-filter
ステートメントを使用して、IGMP(S、G)アドレス(IGMPv3 用)に一致するポリシーsource-address-filter
を定義します。次の例では、グループアドレスと送信元アドレスの両方に一致する amt_reject ポリシーが作成されます。user@host# set policy-options policy-statement amt_reject from route-filter 224.1.1.1/32 exact user@host# set policy-options policy-statement amt_reject from source-address-filter 192.168.0.0/16 orlonger user@host# set policy-options policy-statement amt_reject then reject
特定のグループまたは(S、G)レポートを受け取りたくないインターフェイスに IGMP レポート フィルタリングを適用するには、ステートメントを
group-policy
含めます。次の例では、 amt_reject ポリシーをすべての AMT インターフェイスに適用します。user@host# set protocols igmp amt relay defaults group-policy amt_reject
すべてのAMTインターフェイスのIGMPクエリ間隔を変更して、送信されるホストクエリメッセージの数を減らすか、増やすことができます。AMT では、ゲートウェイからのメンバーシップ要求メッセージに応答してホスト クエリ メッセージが送信されます。リレーに設定されたクエリ間隔は、ゲートウェイで設定されたメンバーシップ要求タイマーと互換性がある必要があります。この間隔を変更するには、ステートメントを
query-interval
含めます。次の例では、ホスト クエリ間隔を 250 秒に設定します。user@host# set protocols igmp amt relay defaults query-interval 250
IGMP クエリア ルーターは、一般的なホスト クエリー メッセージを定期的に送信します。これらのメッセージは、グループ メンバーシップ情報を要求し、全システムマルチキャスト グループ アドレス 224.0.0.1 に送信されます。
IGMP クエリ応答間隔を変更できます。堅牢なカウントを掛けたクエリ応答間隔は、クエリア ルーターによるホスト クエリ メッセージの送信からホストからの応答の受信までの最大時間です。この間隔を変更すると、AMTインターフェイス上のIGMPメッセージの数を調整できます。この間隔を変更するには、ステートメントを
query-response-interval
含めます。次の例では、クエリ応答間隔を 20 秒に設定します。user@host# set protocols igmp amt relay defaults query-response-interval 20
IGMP 堅牢なカウントを変更できます。堅牢なカウントは、AMT インターフェイスで予想されるパケット ロスに合わせて調整するために使用されます。堅牢な数を増やすとパケット ロスが増加しますが、サブネットワークの遅延が長くなります。堅牢なカウントを変更するには、ステートメントを
robust-count
含めます。次の例では、堅牢なカウントを 3 に設定します。user@host# set protocols igmp amt relay defaults robust-count 3
この堅牢なカウントにより、IGMPv2 および IGMPv3 の特定の IGMP メッセージ間隔が自動的に変更されます。
IGMPv2 を実行している共有ネットワークでは、クエリー ルーターが IGMP leave メッセージを受信すると、指定した回数の IGMP グループ クエリー メッセージを送信する必要があります。送信される IGMP グループ クエリー メッセージの数は、堅牢なカウントによって決まります。照会メッセージ間の間隔は、最後のメンバー照会インターバルによって決まります。また、IGMPv2 照会応答間隔に堅牢なカウントを掛けて、ホスト照会メッセージの送信からホストからの応答の受信までの最大時間を決定します。
IGMPv2 堅牢なカウントの詳細については、RFC 2236、 Internet Group Management Protocol、バージョン 2 を参照してください。
IGMPv3 では、インターフェイスの状態の変化により、システムは即座にそのインターフェイスから状態変更レポートを送信します。状態変更レポートが 1 台以上のマルチキャスト ルーターによって見逃された場合、そのレポートは再送信されます。再送される回数は、堅牢なカウントから 1 を引いたものです。IGMPv3 では、堅牢なカウントは、グループ メンバーシップの間隔、古いバージョンのクエリア間隔、および他のクエリアの現在の間隔を決定する要因でもあります。
IGMPv3 堅牢なカウントの詳細については、RFC 3376、 Internet Group Management Protocol、バージョン 3 を参照してください。
ソース固有のマルチキャスト(SSM)マップを AMT インターフェイスに適用できます。SSM マッピングは、IGMPv1 または IGMPv2 メンバーシップ レポートを IGMPv3 レポートに変換します。これにより、IGMPv1 または IGMPv2 を実行するホストは、ホストが IGMPv3 に移行するまで SSM に参加できます。
SSM マッピングは、SSM アドレッシング規則(IPv4 の 232/8)に準拠するアドレスだけでなく、ポリシーに一致するすべてのグループ アドレスに適用されます。
この例では、IGMPv3 への変換のために 232.1.1.1/32 グループ アドレスと一致するポリシーを作成します。次に、これらのグループ アドレスが見つかる 192.168.43.66 送信元アドレスにポリシーを関連付ける SSM マップを定義します。最後に、SSM マップをすべての AMT インターフェイスに適用します。
user@host# set policy-options policy-statement ssm-policy-example term A from route-filter 232.1.1.1/32 exact user@host# set policy-options policy-statement ssm-policy-example term A then accept user@host# set routing-options multicast ssm-map ssm-map-example policy ssm-policy-example user@host# set routing-options multicast ssm-map ssm-map-example source 192.168.43.66 user@host# set protocols igmp amt relay defaults ssm-map ssm-map-example
「」も参照
例:AMT プロトコルの設定
この例では、ユニキャスト専用ネットワークのアイランド間でマルチキャスト対応ネットワーク間の動的マルチキャスト接続を容易にするために、AMT(自動マルチキャスト トンネリング)プロトコルを設定する方法を示しています。
要件
開始する前に、以下を行います。
ルーター インターフェイスを設定します。
内部ゲートウェイ プロトコルまたは静的ルーティングを設定します。 Junos OS ルーティング プロトコル ライブラリを参照してください。
マルチキャスト グループ メンバーシップ プロトコル(IGMP または MLD)を設定します。「 IGMP について」 と「 MLD について」を参照してください。
概要
この例では、ホスト 0 とホスト 2 はユニキャスト クラウドのマルチキャスト レシーバです。デフォルト ゲートウェイ デバイスは AMT ゲートウェイです。R0 と R4 はユニキャスト プロトコルのみで設定されています。R1、R2、R3、R5 は PIM マルチキャストで設定されています。ホスト 1 はマルチキャスト クラウドのソースです。R0 と R5 は、AMT リレーを実行するように設定されています。ホスト 3 とホスト 4 はマルチキャスト レシーバ(またはレシーバに直接接続されるソース)です。この例では、AMT リレー ローカル アドレスとエニキャスト プレフィックスを独自のループバック アドレスとして設定した R1 を示しています。この例では、トンネル サービスを有効にして設定された R0 も示しています。
構成
CLI クイック設定
この例を迅速に設定するには、次のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致するために必要な詳細情報を変更し、コマンドを階層レベルで [edit]
CLI にコピー アンド ペーストしてから、設定モードから入力 commit
します。
set protocols amt traceoptions file amt.log set protocols amt traceoptions flag errors set protocols amt traceoptions flag packets detail set protocols amt traceoptions flag route detail set protocols amt traceoptions flag state detail set protocols amt traceoptions flag tunnels detail set protocols amt relay family inet anycast-prefix 10.10.10.10/32 set protocols amt relay family inet local-address 10.255.112.201 set protocols amt relay tunnel-limit 10 set protocols pim interface all mode sparse-dense set protocols pim interface all version 2 set protocols pim interface fxp0.0 disable set chassis fpc 0 pic 0 tunnel-services bandwidth 1g
手順
手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLI のナビゲーションの詳細については、『Junos OS CLI ユーザー ガイド』の「設定モードでの CLI エディターの使用」を参照してください。
R1 で AMT プロトコルを設定するには、次の手順にしたがってください。
AMT トレース操作を構成します。
[edit protocols amt traceoptions] user@host# set file amt.log user@host# set flag errors user@host# set flag packets detail user@host# set flag route detail user@host# set flag state detail user@host# set flag tunnels detail
AMT リレー設定を構成します。
[edit protocols amt relay] user@host# set relay family inet anycast-prefix 10.10.10.10/32 user@host# set family inet local-address 10.255.112.201 user@host# set tunnel-limit 10
R1 のインターフェイスで PIM を設定します。
[edit protocols pim] set interface all mode sparse-dense set interface all version 2 set interface fxp0.0 disable
トンネル機能を有効にします。
[edit chassis] set fpc 0 pic 0 tunnel-services bandwidth 1g
デバイスの設定が完了したら、設定をコミットします。
user@host# commit
結果
設定モードから、 show chassis と show protocols コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show chassis fpc 0 { pic 0 { tunnel-services { bandwidth 1g; } } }
user@host# show protocols amt { traceoptions { file amt.log; flag errors; flag packets detail; flag route detail; flag state detail; flag tunnels detail; } relay { family { inet { anycast-prefix 10.10.10.10/32; local-address 10.255.112.201; } } tunnel-limit 10; } } pim { interface all { mode sparse-dense; version 2; } interface fxp0.0 { disable; } }
検証
設定を検証するには、次のコマンドを実行します。
amt 統計情報の表示
amtの概要を表示
show amt トンネル