blog

メトロIPv6移行技術-MAP技術

MAPテクノロジーは、IPv6専用ネットワークでIPv4とIPv6サービスをステートレスアドレスカプセル化/変換して伝送するメカニズムを定義しています。MAP-CEとMAP-BRはMAPドメインの領域...

Jan 5, 2014 · 12 min. read
シェア

IPv4からIPv6へのネットワーク進化の波の中で、IPv4アドレスの不足とIPv4サービスの活況という矛盾、そしてIPv6の膨大なアドレス空間とIPv6アプリケーションの不足という矛盾。IPv4では、アドレス多重化によってIPv4の急速な消費の圧力は緩和されたように見えますが、NAT設備への投資は膨大であり、あらゆるビジネスアプリケーションも大なり小なり影響を受けます。IPv6の発展においては、IPv4アドレスの枯渇に対するユーザ、ICP、ISP、事業者の感度が異なるため、IPv6産業チェーンの不均衡な発展を招き、すべての関係者が多かれ少なかれ懸念を持ちながらIPv6の発展を積極的に推進しています。同時に、IPv4アドレス共有メカニズムはIPv6産業チェーンの発展を遅らせ、IPv6産業チェーンの継続的な発展はIPv4アドレス共有メカニズムの展開規模を試しているようです。

IPv4サービスの継続性とIPv6産業の発展を両立させるため、IPv4サービスとIPv6発展の双方を考慮した4over6シナリオが長期進化シナリオ研究の焦点となっています。MAP(Mapping Address and Port)技術とは、アドレスとポートをステートレスで多重化する技術で、電文の形式から二重カプセル化(MAP-E)と二重変換(MAP-T)の2種類に分類されます。MAP技術の原稿は現在IETF WGのドラフト状態。

MAP技術は、IPv6専用ネットワークでIPv4とIPv6サービスのステートレスアドレスカプセル化/変換を行うメカニズムを定義しています。MAP-CEとMAP-BRは、MAPドメインの領域を区切る境界デバイスとして機能し、IPv4サービスフローはMAPドメインの外側にのみ存在します。

個人的な見解ですが、MAP技術の本質的な特徴は、「共有」「無状態」「分散」「最適化」という4つのキーワードに集約されると思います。

共有:Public IPv4アドレスを共有するためにA+Pの概念を採用。つまり、TCP/UDPレイヤーのポート番号リソースを通じてPublic IPv4リソースを拡張し、ポートセットで制限されたIPv4アドレスを割り当てることで、複数のユーザーが同じIPv4アドレスを共有することを実現。

ステートレス:IPv4 A+PからIPv6アドレスへのマッピングを実現するステートレス方式。つまり、MAPルールを介してIPv4アドレス+ポートとIPv6アドレスのステートレスマッピングを実現するために、アドレスマッピングの状態を維持するためにCGNの問題を解決するために。

分散:NAT44は、実装のためにMAP CEに分散されます。つまり、NATオフロードのコンセプトに従い、MAP CEのリソースを使用して分散NATを実現し、集中型NAT44のパフォーマンスボトルネックを解決します。

最適化:トラフィック転送を最適化し、ネットワークの信頼性を向上させます。MAPルールの設定により、MAP CE間のトラフィックの直接転送とMAP-BRプールによる負荷分散を実現します。 一方、ステートレスマッピングの特性により、MAP BRの切替失敗時のセッション同期が不要なため、ネットワークの信頼性が向上します。

MAP技術の実現には、以下のような重要課題の検討が必要です:

IPv4アドレスとポート、IPv6アドレスのマッピングルールはどのようになっていますか?

MAPドメインでのマッピングルールはどのように計画されるのですか?また、ルールの配布はどのように行われるのでしょうか?

MAP-BRのプールはどのように実装されていますか?信頼性はどのように向上するのですか?

MAPシナリオにおけるビジネストラフィックのメッセージフォーマットは?

#p#

IPv4アドレスとポート、IPv6アドレスのマッピングルールはどのようになっていますか?

これが、MAPテクノロジーが解決するために設計された****問題であり、MAPテクノロジーの基本です。

まず、IPv4アドレスとトランスポートレイヤーポートの観点から、32bitのIPv4アドレスの容量には限界があり、16bitのトランスポートレイヤーポートは現在あまり使われていないため、トランスポートレイヤーポートを借りてIPv4アドレスを拡張するのが良い方法であり、これが「A+P」のコンセプトです。

ユーザが使用するIP+ポートセットの一意性を確保するためには、ポートセットを整然と分割する必要があります。トランスポート層のポートの中には、特定のアプリケーションで使用するために割り当てられているものがあるため、そのようなポートの使用を避けるために、ポートセットの割り当てが必要であることが推奨されています。MAP では、トランスポート層のポート番号の 16bit 分割を A、PSID、M の 3 つに分割してポートセ ットとしています。

Aとaについて: 0-1023はよく知られたポート間隔なので、MAPでは0-4095(2^12)に拡張することが推奨されています。つまり、a(=PSIDオフセット)のデフォルト値は4(16-12)にすることが推奨されています。a=0 の場合、すべてのポート間隔が割り当て可能であることを識別します。

PSIDとkについて:PSIDの長さkは共有比率を決定し、共有比率の値=2^k、つまり、トランスポートレイヤーポートは2^kのコピーに分割でき、各コピーはCPEの使用のために共有され、このIPv4アドレスを共有する各CPEは一意のPSIDを取得し、つまり、一意のポートセットのセクションを取得します。

mについて:Mフィールドの長さmは、ポートセット内のポートの連続的な長さを決定し、連続的な長さの値は=2^mです。

このように分割すると、2^k個のポート・セットが得られ、各ポート・セットは一意のPSID値で識別され、各PSID値に対応するポート・セットには-1)*のポート番号が含まれます。次に、例題を通してポート分割のプロセスを体験してください。

共有比率R(=2^k=1024)とa(=PSID offset=4)が与えられた場合。

導出:a=4,k=10,m=2。

PSID 値と対応するポートセットのリスト。

こうして、与えられた一意のPSID値、つまりポートセットのセットが得られます。

次に、IPv4アドレスおよびポートセットとIPv6アドレスの強固な関連付けを確立し、ステートレス・マッピングを形成する方法を考えてみましょうか。

IPv4アドレスにIPv4-Addr-suffixを、PSIDにport-setを選択することで、IPv4アドレス情報とポート情報とIPv6アドレスの間に強い関連性を持たせています。これはMAP設計の巧妙な部分です。

上図のIPv4+PortからIPv6アドレスへのマッピングは、MAP-CEやMAP-BRに関係なく、エンドユーザIPv6-prefix、Rule-IPv6-prefix、EA-bit、Rule-IPv4、PSID offsetの値をいくつか取得することで、共有IPv4アドレスとポートシーケンスを推測できることを示しています。IPv4アドレスとポートシーケンス。

IPv6ユーザの場合、MAP-CEにはEnd-user IPv6-prefixが設定されており、Interface IDを通じてユーザのIPv6アドレスを生成することができますが、IPv4ユーザの場合、IPv6アドレスに類似したリンクローカルアドレスは生成されませんので、どのようにIPv4属性を識別するInterface IDを生成し、IPv4アドレスを表すIPv6ソースアドレスを合成するのでしょうか。MAP技術では、IPv4アドレスとPSIDを組み合わせてIPv4共有ユーザを識別するInterface IDを生成し、End-user IPv6-prefixと組み合わせてIPv6アドレスを合成します。MAPドメイン内のIPv4共有ユーザーの一意な識別として機能します。

IPv4addressフィールドについては、共有IPv4アドレスが割り当てられている場合、IPv4addressフィールドは割り当てられたIPv4アドレスで満たされ、長さは32ビットです。IP-prefixが割り当てられている場合、つまりアドレスの一部がIPv4ユーザーに割り当てられている場合、IPv4addressフィールドはこれを補うために0で満たされる必要があります。例えば、ユーザーがIPv4-prefix="192.0.2.0/29 "を割り当てる場合、ここのIPv4addressフィールドは "0xC0000200 "で満たされる必要があります。prefix="192.0.2.0/29 "の場合、IPv4addressフィールドには "0xC0000200 "を入力する必要があります。

例えば、PSID="0xAC "の場合、ここのPSIDフィールドは "0x00AC "で埋められ、IPv4-prefixまたは排他的IPv4-addressが割り当てられている場合、PSID値が抽出できないので、ここのPSIDフィールドは "0x0000 "で埋められます。IPv4-prefixまたは排他IPv4-addressが割り当てられている場合、抽出されるPSID値がないので、ここのPSIDフィールドに「0x0000」を記入します。

この時点で、MAPドメイン内のIPv4アドレス共有タイプユーザのIPv4アドレスとポートは、IPv6アドレスとのステートレスマッピングに必要な強固な関連付けを確立しており、IPv6アドレスがMAPドメイン内でこのユーザを一意に識別するように構築することができます。

#p#

MAPドメインでのマッピングルールはどのように計画されるのですか?また、ルールの配布はどのように行われるのでしょうか?

MAPルールには、BMR(Basic Mapping Rule)、FMR(Forwarding Mapping Rule)、DMR(Default Mapping Rule)の3種類があり、MAP-EではDMRがMAP外のDestinationになりますMAP-E のドメイン

***BMRは、MAP ドメイン内のすべてのルーターに設定する必要があり、IPv4 ユーザーデータの NAT44 および IPv6 変換/カプセル化のために MAP-CE に設定し、カプセル化/デトンネルのために IPv6 パケットから IPv4 アドレスを MAP-CE に転送するために MAP-BR に設定します。IPv6変換とカプセル化後のMAPドメイン内のIPv6ルートに従って、バックホール・トラフィックのIPv4アドレス+ポートをMAP-CEに転送するためにMAP-CEに設定されています。

BMR 設定の基本パラメータには、Rule-IPv6-prefix、Rule-IPv4-prefix、EA-bits-length、PSID-offset があり、MAP-CE に設定することで、共有 IPv4 アドレスとポートシーケンス、および MAP-CE の IPv6 アドレスを計算します。分析します。

MAP-CEは、IPv6に属するIPv6プレフィックスに関する情報を取得します:

エンドユーザーIPv6プレフィックス:2001:db8:0012:3400::/56

BMRを通じて送られてくるメッセージは以下の通り:

ルールIPv6プレフィックス : 2001:db8:0000::/40

ルールIPv4プレフィックス:192.0.2.0/24

EAビット長:16

PSID-offset(a) : 4

そうすると、次のような情報が導かれます。

EA-bit : 0x3214

IPv4-suffix : 0x12

PSID : 0x34

IPv4アドレス:192.0.2.18

ポートセット:4928-4943, 9024-9039, ....62272-62287(a=4, A>0; PSID=0x34)

IPv6アドレス:2001:db8:0012:3400:00C0:0002:1200:0430

複数のサブドメインをIPv4サブネットに従ってMAPドメイン内で論理的に分割でき、各IPv4サブネットセグメントがサブドメインとして機能するため、サブドメイン内のすべてのMAP-CEによって構成されるMRを1つに簡素化できます。各 MAP-CE は、異なるエンドユーザー IPv6 プレフィックスと同じ BMR で構成できます。

もう 1 つは FMR で、これはオプションで、MAP-BR を介さずにメッシュ・ネットワーク内の MAP-CE 間のアクセス・トラフィックを直接通信できるようにするために使用されます。つまり、MAP-CE が他の MAP-CE にアクセスする場合、宛先 IPv6 アドレスは相手側の MAP-CE のアドレスになります。メッセージのソースIPv6アドレスはBMRによって生成され、その後、宛先MAP-CEのIPv6アドレスがFMRの変換ターゲットになります。また、各 MAP-CE の BMR が同じであることは前述しましたので、FMR と BMR を同じにする、つまり BMR を FMR として使用することも可能です。

例として、MAP-Domain ドメインに BMR=FMR を設定し、MAP-CE2 ユーザの IPv4 サービスから MAP-CE1 ユーザの IPv4 サービスにアクセスする場合、NAT44 と BMR により MAP-CE2 に送信元 IPv6 アドレスを生成し、同時に FMR により宛先 MAP-CE1 の IPv6 アドレスを生成します。

最初の2つのルールはMAP-EとMAP-Tの両方に当てはまりますが、3つ目のルールについてはMAP-EとMAP-Tは異なります。

DMR」はMAP-Tで定義されており、メッセージの宛先IPv4アドレスがMAPドメイン外のアドレスであり、BRを経由してドメイン外に転送されることを意味します。DMRには、Rule-IPv6-prefixとRule-IPv4-prefixの2つのパラメータが含まれます。Rule-IPv6-prefixの値は、MAP-CE上でIPv4経路をマッチングする際のデフォルト経路となるMAP BRのIPv6プレフィックスです。MAP BR の IPv6 プレフィックス、Rule-IPv4-prefix の値は 0.0.0.0/0 で、これは MAP-CE 上で IPv4 ルートをマッチングするときのデフォルトルートとして適用されるマッピングルールです。このルールを使用すると、宛先IPv6アドレスは、Rule-IPv6-prefixによる宛先IPv6アドレス+DMRで設定した宛先IPv4アドレスで構成されます。

MAP-E では、3 番目のルールは「Destinations outside the MAP domain」であり、ルールの意味をより明確にしています。MAP-E は IPv6 ヘッダに IPv4 アドレスをネストしているため、メッセージの宛先 IPv4 アドレスが MAP ドメイン外にある場合のみ、BR の IPv6 アドレスをレイヤの IPv6 アドレスでカプセル化する必要があり、宛先 IPv4 アドレスは IPv6 ヘッダを直接剥がして BR に到達することで復元可能です。したがって、MAP-E では、MAP ドメイン外の宛先は MAP-BR の IPv6 アドレスを設定することになります。

先ほど、これらのルールと属性について話しましたが、これらはどのようなプロトコルで 設定されるのでしょうか?最も簡単に思いつくのは DHCPv6 の属性ですが、現在の DHCPv6 の属性は MAP ドメインの設定に必要な End-user-IPv6-prefix 以外定義されていません。軽量4over6(この3つのプロトコルはすべてA+P哲学によって特徴付けられます。)

具体的なOptionの内容には触れませんが、draft-ietf-softwire-map-dhcpは明確に定義されており、すべてRFCとして議論され更新される可能性があります。

#p#

MAP-BRのプールはどのように実装されていますか?信頼性はどのように向上するのですか?

MAP ドメインでは、複数の MAP-BR を同じ Pool に配置することで、負荷分散とプロテクション の反転が実現されます。同じプール内の各 MAP-BR は、同じ Anycast IPv6 アドレスと異なる IPv6 アドレスで構成されます。

エニーキャストIPv6アドレスは、インタフェース識別子のセットであるIPv6アドレスファミリ内の特別なアドレスタイプであり、エニーキャストアドレス宛のパケットは、アドレスによって識別されるインタフェースの1つに送信されます。エニーキャストIPv6アドレスのこの機能は、負荷分散または冗長性とバックアップメカニズムを可能にします。エニーキャストアドレスは宛先アドレスとしてのみ使用でき、送信元アドレスとして使用できないため、BR用に追加のIPv6アドレスを構成する必要があります。このため、BR 用に別の IPv6 アドレスを設定する必要があります。

MAP はステートレス技術に属するため、例えば、上流 CE3 から BR-1、下流 BR2-CE3 のような非対称なアップストリーム・パスとダウンストリーム・パスの場合でも、BR-1 と BR-2 の MAP ルールが同じであるため、トラフィックを正常に転送できます。エニーキャストで BR アドレスを構成し、CE はルーティングによって転送に最も近い BR を選択するため、BR トラフィックの負荷分散が実現し、BR の信頼性が向上します。

#p#

MAPシナリオにおけるビジネストラフィックのメッセージフォーマットは?

MAPドメインでは、ネットワークはIPv6シングルスタックプロトコルを展開します。IPv6端末のサービストラフィックはNative IPv6で伝送されます。IPv4端末のサービストラフィックについては、MAP-CEとMAP-BRの間にIPv6チャネルを確立する必要があり、IPv4メッセージのカプセル化方式の違いにより、MAP-EとMAP-Tに分けられます。

MAP-E:カプセル化方式。すなわち、IPv4メッセージをIPv6ヘッダーの別のレイヤーでカプセル化し、外側のレイヤーをIPv6ヘッダー、内側のレイヤーをIPv4ヘッダーとします。

MAP-T:IPv4ヘッダーをIPv6ヘッダーに1レイヤーだけ変換する変換方式。

個人的な理解ですが、MAP-Eのデータ処理の流れを簡単に図式化すると以下のようになります。

同様に、MAP-Tのデータ処理の流れを個人的に理解すると下図のようになります。

MAP-EとMAP-T、どちらが優れていますか?

MAP-EはIPv6ヘッダを1層追加するため、メッセージ長が長くなり、MTUの問題が発生する可能性がありますが、IPv4情報のカプセル化は完全に保持され、IPv4メッセージの他の属性を破壊しません。IPv4ヘッダをIPv6ヘッダに置き換えたMAP-Tの場合、1層ヘッダはメッセージ伝送効率が高いですが、IPv4ヘッダ情報の損失が発生します。

私の個人的な意見では、トンネリングアプローチはトランスレーションアプローチよりも優れています。なぜなら、トランスレーションアプローチはヘッダー変換を目的としているため、デバイスはアドレスマッピングだけでなく、より多くのマッピングを処理する必要があり、2レベルの変換後のメッセージが最初のメッセージ情報と同じでない可能性があるからです。一方、トンネリングは、IPv4ヘッダの完全性を大幅に維持し、展開時にリンクのMTUをチェックするだけです。

Read next

今日のUbuntuヒント:PPA経由でLibreOfficeをアップグレードする

世界中のボランティアによって管理され、慈善財団によってサポートされています。Linuxコミュニティのための主要なフリーオフィスツールです。Windows、Mac OS X、Linuxのコンピュータにインストールできます。

Jan 5, 2014 · 2 min read