例:明示的なトンネルを使用しない自動 IP マルチキャストの設定
AMTを理解する
AMT(自動マルチキャストトンネリング)は、ユニキャスト専用ネットワークのアイランド間で、マルチキャスト対応ネットワーク間の動的なマルチキャスト接続を促進します。このような接続性により、サービスプロバイダ、コンテンツプロバイダ、およびその顧客は、エンドツーエンドのマルチキャスト接続がない場合でも、マルチキャストトラフィックの配信に参加できます。
AMTは、Junos 13.2以降を実行しているMPC(モジュラーポートコンセントレータ)搭載のMXシリーズイーサネットサービスルーターでサポートされています。AMTはiチップベースのMPCでもサポートされています。AMTはグレースフルリスタート(GR)をサポートしていますが、 グレースフルルーティングエンジンスイッチオーバー (GRES)はサポートしていません。
AMTは、既知のマルチキャスト対応リレーポイント(AMTリレー)とユニキャストでのみ到達可能なネットワークポイント(AMTゲートウェイ)との間に、ユニキャストカプセル化トンネルを動的に確立します。 図 1 に、自動マルチキャスト トンネリング接続を示します。
AMTプロトコルは、リレーとゲートウェイ間の検出とハンドシェイクを提供し、トンネルごとに明示的に設定しなくても、トンネルを動的に確立します。
AMT リレーは、通常、ネイティブ IP マルチキャスト接続を備えたルーターで、潜在的に多数の AMT トンネルを集約します。
Junos OSの実装では、以下のAMTリレー機能がサポートされています。
IPv4マルチキャストトラフィックとIPv4カプセル化
マルチキャストネットワーク上にある既知の送信元
ゲートウェイ経由で送信されたマルチキャストパケットを迅速に破棄することで、サービス拒否攻撃を防止します。
必要なすべての AMT トンネルのフルファンアウトへのルート単位のレプリケーション
AMTトンネルで通常のインターフェイス統計を収集する機能
AMT ゲートウェイの背後にあるマルチキャスト ソースはサポートされていません。
AMT は PIM スパース モードをサポートしています。AMT はデンス モード操作をサポートしていません。
AMTアプリケーション
多くのローカル サービス プロバイダはマルチキャストに対応していないため、トランジット サービス プロバイダはインターネットに関する課題を抱えています。課題は、コンテンツ所有者がバックボーン間でビデオやその他のマルチキャストトラフィックを送信するように促す方法です。コンテンツ所有者のコストモデルは、サブスクライバーの大多数のユニキャストストリームに料金を支払う必要がある場合、法外に高くなる可能性があります。
より多くのローカル プロバイダがマルチキャストに対応するまでは、インターネット技術タスク フォース(IETF)によって提案され、オープンソース ソフトウェアに実装される移行戦略があります。この戦略は、AMT(明示的トンネルなしの自動 IP マルチキャスト)と呼ばれます。AMTでは、ユニキャストネットワークに接続されたホストにインストールされたゲートウェイからアクセスできるマルチキャストネットワークのピアリングポイントにリレーを設定します。
AMT を使用しない場合、ユニキャスト専用ネットワークに接続しているユーザーがマルチキャスト コンテンツを受信したい場合、コンテンツ所有者はユーザーがユニキャストを介して参加することを許可できます。ただし、コンテンツ所有者は、ユニキャスト サブスクライバーをサポートするために追加の帯域幅を必要とするため、追加コストが発生します。
AMT では、すべてのホストがマルチキャストを受信できます。クライアント側には、単一ホストである AMT ゲートウェイがあります。ゲートウェイが AMT リレー (ホストである可能性があるが、より一般的にはルーター) を見つけると、ゲートウェイは動的に作成された UDP トンネルを介してインターネット グループ管理プロトコル (IGMP) メッセージを定期的にリレーに送信します。AMT リレーとゲートウェイが連携して、マルチキャスト ネットワーク内で発信されたマルチキャスト トラフィックをエンドユーザ サイトに送信します。AMT リレーはトラフィックをネイティブに受信し、ゲートウェイにユニキャストカプセル化します。これにより、インターネット上の誰もがマルチキャストデータストリームをダウンロードするための動的トンネルを作成できます。
AMT を使用すると、マルチキャスト対応サービス プロバイダがコンテンツ所有者にマルチキャスト サービスを提供できます。ユニキャスト専用ローカル プロバイダの顧客がコンテンツ受信を希望し、AMT Join を使用してサブスクライブする場合、マルチキャスト対応のトランジット プロバイダは、コンテンツをユニキャスト専用ローカル プロバイダに効率的に転送し、エンド ユーザに送信することができます。
AMTは、トランジットサービスプロバイダー(コンテンツにアクセスできるが、エンドユーザーがあまりいない)が、他の方法では経済的に実現できないコンテンツ所有者にマルチキャストサービスを提供するための優れた方法です。また、すべてのダウンストリーム機器でマルチキャストをまだサポートしていないローカルサービスプロバイダにとっても有用な移行戦略です。
AMTは、ユニキャスト専用サービス プロバイダで区切られた 2 つのマルチキャスト対応サービス プロバイダを接続する場合にも役立ちます。
同様に、AMTは、マルチキャスト機能が制限されているデジタル加入者ラインアクセスマルチプレクサ(DSLAM)などのレガシーエッジデバイス上でマルチキャストトラフィックをトンネリングするために、マルチキャスト対応のネットワークを持つローカルサービスプロバイダで使用することができます。
AMTの実装に関する技術的な詳細は次のとおりです。
スリーウェイ ハンドシェイクは、スプーフィングやサービス拒否(DoS)攻撃を防ぐために、ユニキャスト受信者からグループに参加するために使用されます。
レプリケーション サーバーとして機能する AMT リレーがマルチキャスト グループに参加し、マルチキャスト トラフィックを複数のユニキャスト ストリームに変換します。
ディスカバリー・メカニズムはエニーキャストを使用して、ネットワーク・トポロジー内のゲートウェイに最も近いリレーのディスカバリーを可能にします。
クライアントとして動作する AMT ゲートウェイは、マルチキャスト グループに参加するホストです。
リレーのトンネル数制限により、帯域幅の使用を制限し、サービスの低下を回避できます。
AMT の詳細については、インターネット ドラフト draft-ietf-mboned-auto-multicast-10.txt AMT(明示的なトンネルなしの自動 IP マルチキャスト)を参照してください。
AMT運用
AMTは、ユニキャスト専用ネットワークの島にまたがるマルチキャスト対応ネットワーク間で、マルチキャストトンネルを動的に作成するために使用されます。これを行うには、いくつかの手順が順番に実行されます。
AMT リレー(通常はルーター)は、エニーキャスト アドレスのプレフィックスとルートをユニキャスト ルーティング インフラストラクチャにアドバタイズします。
AMT ゲートウェイ(ホスト)は、ユニキャスト専用インフラストラクチャで到達可能な最も近い AMT リレーに AMT リレー検出メッセージを送信します。リプレイ攻撃や辞書攻撃の可能性を減らすために、リレー検出メッセージには暗号化ナンスが含まれています。暗号化ノンスは、一度だけ使用される乱数です。
トポロジー内で最も近いリレーが AMT リレー検出メッセージを受信し、AMT リレー・アドバタイズメッセージ内のディスカバリー・メッセージからノンスを返します。これにより、ゲートウェイはリレーの一意の IP アドレスを学習できます。これで、AMT リレーは、参加する後続のすべての(S,G)エントリーに使用するアドレスを持つようになりました。
AMT ゲートウェイは、AMT 要求メッセージを AMT リレーの一意の IP アドレスに送信して、(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]
階層レベルや [edit protocols igmp interface interface-name]
階層レベルに含まれる IGMP ステートメントと同じです。これらのステートメントは次のとおりです。
IGMP の参加および退出イベントの統計情報を収集できます。すべての AMT インターフェイスの IGMP 参加および退出イベント統計の収集を有効にするには、
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レポートをフィルタリングするには、ポリシーの
route-filter
ステートメントを使用してグループアドレスと一致させ、IGMPグループアドレスのみを照合するポリシーを定義します(IGMPv2の場合)。ポリシーのroute-filter
ステートメントを使用して送信元アドレスを照合し、ポリシーのsource-address-filter
ステートメントを使用して、IGMP(S,G)アドレス(IGMPv3 の場合)を照合するポリシーを定義します。次の例では、グループ アドレスと送信元アドレスの両方に一致するように 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 インターフェイスに amt_reject ポリシーを適用します。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 脱退メッセージを受信すると、IGMP グループ クエリ メッセージを指定された回数だけ送信する必要があります。送信されるIGMPグループクエリーメッセージの数は、ロバストカウントによって決まります。クエリ メッセージ間の間隔は、最後のメンバー クエリ間隔によって決まります。また、IGMPv2 クエリ応答間隔にロバスト カウントを乗算して、ホスト クエリ メッセージの送信からホストからの応答の受信までの最大時間を決定します。
IGMPv2 ロバスト カウントの詳細については、RFC 2236、 インターネット グループ管理プロトコル、バージョン 2 を参照してください。
IGMPv3 では、インターフェイスの状態が変更されると、システムはそのインターフェイスから状態変更レポートを直ちに送信します。状態変更レポートが 1 つ以上のマルチキャスト ルーターによって見落とされた場合、再送信されます。再送信される回数は、ロバストカウントから1を引いた回数です。IGMPv3 では、ロバスト カウントは、グループ メンバーシップ間隔、古いバージョンのクエリア間隔、およびその他のクエリア存在間隔を決定する要因でもあります。
IGMPv3 ロバスト カウントの詳細については、RFC 3376、 インターネット グループ管理プロトコル、バージョン 3 を参照してください。
AMT インターフェイスにソース固有マルチキャスト(SSM)マップを適用できます。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 は、マルチキャスト受信者 (または受信者に直接接続されている送信元) です。この例では、R1 に AMT リレー ローカル アドレスとエニーキャスト プレフィックスを独自のループバック アドレスとして設定しています。この例では、トンネル サービスを有効にして設定された 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の概要を表示
amt tunnel を表示