IPv6-over-IPv4トンネル
MPLS の IPv6 トンネリングの設定
MPLSのIPv6トンネリングを設定して、MPLSベースのIPv4ネットワーク上でIPv6トラフィックをトンネルすることができます。この構成により、IPv4ベースのネットワークコアを介して多数の小規模なIPv6ネットワークを相互接続できるため、コアネットワーク内のスイッチをアップグレードすることなく、IPv6サービスを提供できます。BGPはIPv6ネットワーク間でルートを交換するように設定されており、データはIPv4ベースのMPLSを介してこれらのIPv6ネットワーク間でトンネリングされます。
EXシリーズスイッチでMPLSのIPv6トンネリングを設定するには:
例:MPLS IPv4 ネットワークを介した IPv6 トラフィックのトンネリング
この例では、MPLSベースのIPv4ネットワーク上でIPv6をトンネルするようにJunos OSを設定する方法を示しています。外部BGP(EBGP)は、カスタマーエッジ(CE)デバイスとプロバイダエッジ(PE)デバイス間で使用されます。リモート CE デバイスには、ループ検出用の異なる AS 番号があります。
要件
この例を設定する前に、デバイスの初期化以外の特別な設定は必要ありません。
概要
ジュニパーネットワークスによる IPv6 over MPLS の実装に関する詳細な情報については、以下のインターネット ドラフトに記載されています。
-
インターネットドラフトdraft-ietf-l3vpn-bgp-ipv6-07.txt、 IPv6 VPN用のBGP-MPLS IP VPN拡張 (2006年1月終了)
-
インターネットドラフトdraft-ooms-v6ops-bgp-トンネル-06.txt、 IPv6プロバイダエッジルーターを使用したIPv4 MPLS上のIPv6 Islandの接続 (2006年7月終了)
これらのインターネットドラフトは、IETFのウェブサイト (http://www.ietf.org/)で入手できます。
この例では、IPv4ベースのネットワークコアを介して2つのIPv6ネットワークを相互接続する方法を示します。これにより、コアネットワーク内のルーターをアップグレードすることなくIPv6サービスを提供できるようになります。マルチプロトコル境界ゲートウェイプロトコル(MP-BGP)は、IPv6ネットワーク間でルートを交換するように構成されており、データはIPv4ベースのMPLSを介してこれらのIPv6ネットワーク間でトンネリングされます。
図1では、ルーターPE1とPE2はデュアルスタックBGPルーターであり、IPv4とIPv6の両方のスタックを持っています。PE ルーターは、カスタマー エッジ(CE)ルーターを介して IPv6 ネットワークを IPv4 コア ネットワークにリンクします。CEルーターとPEルーターは、IPv6トラフィックを伝送できるリンク層を介して接続します。PE ルーターは、CE ルーターに面するインターフェイスでは IPv6 を使用し、コアに面するインターフェイスでは IPv4 と MPLS を使用します。接続されているIPv6ネットワークの1つが、グローバルIPv6 インターネットである可能性があることに注意してください。
2つのPEルーターは、IPv4アドレスを使用してMP-BGPセッションを介してリンクされています。このセッションを使用して、IPv6(値2)アドレスファミリーインジケーター(AFI)およびそれに続くAFI(SAFI)(値4)とIPv6ルートを交換します。各PEルーターは、このセッションでアドバタイズされたIPv6ルートのネクストホップを独自のIPv4アドレスに設定します。MP-BGPでは、BGPネクストホップがネットワーク層到達可能性情報(NLRI)と同じアドレスファミリーに対応する必要があるため、このIPv4アドレスをIPv6形式内に埋め込む必要があります。
PEルーターは、ルーティングプロトコル、ルーティング情報プロトコル次世代(RIPng)またはMP-BGPを使用して、または静的構成を介して、接続されたCEルーターからIPv6ルートを学習できます。BGPがPEルーターからCEルーターへのプロトコルとして使用されている場合、PEルーターとCEルーター間のMP-BGPセッションは、IPv4またはIPv6伝送制御プロトコル(TCP)セッション上で発生する可能性があることに注意してください。また、そのセッションで交換されるBGPルートは、SAFIユニキャストを持ちます。IBGPとEBGPの間、およびBGPと他のプロトコルの間でルートを渡すには、エクスポートポリシーを設定する必要があります。
PEルーターは、互いのIPv4アドレスにルーティングされたMPLSLSPを持っています。IPv4 は、LDP または RSVP のいずれかによって LSP にシグナリングを提供します。これらのLSPは、MP-BGPから学習したIPv6ルートのネクストホップアドレスを解決するために使用されます。ネクストホップはIPv4にマッピングされたIPv6アドレスを使用し、LSPはIPv4アドレスを使用します。
PEルーターは常に、RFC 3032、 MPLSラベルスタックエンコーディングで定義されているIPv6の明示的なnullラベルであるラベル値2を使用して、IPv6ルートを相互にアドバタイズします。その結果、リモートPEルーターから学習したIPv6ルートの各転送ネクストホップは、通常2つのラベルをプッシュします。内側ラベルは2で(アドバタイズするPEルーターがジュニパーネットワークスルーティングプラットフォームでない場合、このラベルは異なる場合があります)、外側ラベルはLSPラベルです。LSPがシングルホップLSPの場合、ラベル2のみがプッシュされます。
また、PE ルーターが SAFI ユニキャストを使用してプレーン IPv6 ルートを交換することもできます。ただし、ラベル付きIPv6ルートを交換することには大きなメリットが1つあります。MPLS LSP の最後から 2 番目のホップ ルーターは、外側ラベルをポップし、内側ラベルを持つパケットを MPLS パケットとして送信できます。内側ラベルがなければ、最後から 2 番目のホップ ルーターは、パケットが IPv4 パケットか IPv6 パケットかを検出して、レイヤー 2 ヘッダーのプロトコル フィールドを正しく設定する必要があります。
図 1 の PE1 ルーターは、CE1 ルーターから IPv6 パケットを受信すると、IPv6 転送テーブル内で検索を実行します。宛先がCE2ルーターから学習したプレフィックスと一致する場合、ラベルをプッシュする必要はなく、パケットはCE2ルーターに送信されるだけです。宛先がPE2ルーターから学習したプレフィックスと一致する場合、PE1ルーターは2つのラベルをパケットにプッシュし、プロバイダルーターに送信します。内側ラベルは2で、外側ラベルはPE2ルーターのLSPラベルです。
サービスプロバイダのネットワーク内の各プロバイダルーターは、他のMPLSパケットと同様にパケットを処理し、プロバイダルーターからプロバイダルーターに渡される際にラベルを入れ替えます。LSP の最後から 2 番目のホップ プロバイダ ルーターは、外側ラベルをポップし、パケットを PE2 ルーターに送信します。PE2 ルーターは、パケットを受信すると、パケット上の IPv6 explicit null ラベル(ラベル 2)を認識します。このラベルをポップしてIPv6パケットとして扱い、IPv6転送テーブルで検索を実行し、パケットをCE3ルーターに転送します。
この例では、以下の設定が含まれています。
-
CEすべてのルーター向けインターフェイスで
family inet6ステートメントを設定することに加えて、MPLSを実行しているすべてのコア向けインターフェイスでもステートメントを設定する必要があります。ルーターがこれらのインターフェイスで受信したIPv6パケットを処理できるため、両方の設定が必要です。これらのインターフェイスに通常のIPv6トラフィックが到着することはありませんが、ラベル2でタグ付けされたMPLSパケットを受信します。ラベル 2 の MPLS パケットは IPv4 で送信されますが、これらのパケットはネイティブ IPv6 パケットとして扱われます。 -
IPv6 トンネリングを有効にするには、PE ルーターの設定に
ipv6-tunnelingステートメントを含めます。このステートメントにより、inet.3 ルーティングテーブルに保存されているすべてのルートを IPv4 にマッピングされた IPv6 アドレスに変換し、それらを inet6.3 ルーティングテーブルにコピーすることで、IPv6 ルートをMPLSネットワーク上で解決できます。このルーティングテーブルを使用して、inet6とinet6-vpnルートの両方のネクストホップを解決できます。注:BGPは、プライマリルーティングテーブルグループからセカンダリルーティングテーブルグループにルートをコピーする場合でも、インポートポリシーを自動的に実行します。IPv4ラベル付きルートがBGPセッションから到着した場合(例えば、PEルーターの
[edit protocols bgp family inet]階層レベルでlabeled-unicastステートメントを設定した場合)、ネイバーのインポートポリシーは、inet6.3ルーティングテーブルへのコピー操作中にネイバーのインポートポリシーが実行されるため、BGP IPv6ルートも受け入れます。 -
IPv6 トラフィックを伝送するように MP-BGP を設定すると、宛先 PE ルーターで IPv4 MPLS ラベルが削除されます。ラベルのない残りのIPv6パケットは、IPv6ネットワークに転送できます。これを有効にするには、BGP設定に
explicit-nullステートメントを含めます。
設定
CLIクイックコンフィグレーション
この例をすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit] 階層レベルのCLIにコマンドをコピー アンド ペーストします。
デバイスPE1
set interfaces fe-1/2/0 unit 0 family inet6 address ::10.1.1.2/126 set interfaces fe-1/2/0 unit 0 family mpls set interfaces fe-1/2/1 unit 0 family inet address 10.1.1.5/30 set interfaces fe-1/2/1 unit 0 family inet6 set interfaces fe-1/2/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.1.1.2/32 set protocols mpls ipv6-tunneling set protocols mpls interface fe-1/2/0.0 set protocols mpls interface fe-1/2/1.0 set protocols bgp group toCE1 type external set protocols bgp group toCE1 local-address ::10.1.1.2 set protocols bgp group toCE1 family inet6 unicast set protocols bgp group toCE1 export send-bgp6 set protocols bgp group toCE1 peer-as 65001 set protocols bgp group toCE1 neighbor ::10.1.1.1 set protocols bgp group toPE2 type internal set protocols bgp group toPE2 local-address 10.1.1.2 set protocols bgp group toPE2 family inet6 labeled-unicast explicit-null set protocols bgp group toPE2 export next-hop-self set protocols bgp group toPE2 export send-v6 set protocols bgp group toPE2 neighbor 10.1.1.4 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ldp interface fe-1/2/1.0 set policy-options policy-statement next-hop-self then next-hop self set policy-options policy-statement send-bgp6 from family inet6 set policy-options policy-statement send-bgp6 from protocol bgp set policy-options policy-statement send-bgp6 then accept set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol bgp set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.1.1.2 set routing-options autonomous-system 65002
デバイスPE2
set interfaces fe-1/2/0 unit 0 family inet address 10.1.1.10/30 set interfaces fe-1/2/0 unit 0 family inet6 set interfaces fe-1/2/0 unit 0 family mpls set interfaces fe-1/2/1 unit 0 family inet6 address ::10.1.1.13/126 set interfaces fe-1/2/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.1.1.4/32 set protocols mpls ipv6-tunneling set protocols mpls interface fe-1/2/0.0 set protocols mpls interface fe-1/2/1.0 set protocols bgp group toPE1 type internal set protocols bgp group toPE1 local-address 10.1.1.4 set protocols bgp group toPE1 family inet6 labeled-unicast explicit-null set protocols bgp group toPE1 export next-hop-self set protocols bgp group toPE1 export send-v6 set protocols bgp group toPE1 neighbor 10.1.1.2 set protocols bgp group toCE3 type external set protocols bgp group toCE3 local-address ::10.1.1.13 set protocols bgp group toCE3 family inet6 unicast set protocols bgp group toCE3 export send-bgp6 set protocols bgp group toCE3 peer-as 65003 set protocols bgp group toCE3 neighbor ::10.1.1.14 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ldp interface fe-1/2/0.0 set policy-options policy-statement next-hop-self then next-hop self set policy-options policy-statement send-bgp6 from family inet6 set policy-options policy-statement send-bgp6 from protocol bgp set policy-options policy-statement send-bgp6 then accept set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol bgp set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.1.1.4 set routing-options autonomous-system 65002
デバイスP
set interfaces fe-1/2/0 unit 0 family inet address 10.1.1.6/30 set interfaces fe-1/2/0 unit 0 family inet6 set interfaces fe-1/2/0 unit 0 family mpls set interfaces fe-1/2/1 unit 0 family inet address 10.1.1.9/30 set interfaces fe-1/2/1 unit 0 family inet6 set interfaces fe-1/2/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.1.1.3/32 set protocols mpls interface fe-1/2/0.0 set protocols mpls interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ldp interface fe-1/2/0.0 set protocols ldp interface fe-1/2/1.0 set routing-options router-id 10.1.1.3 set routing-options autonomous-system 65002
デバイスCE1
set interfaces fe-1/2/0 unit 0 family inet6 address ::10.1.1.1/126 set interfaces lo0 unit 0 family inet6 address ::10.255.1.1/128 set protocols bgp group toPE1 type external set protocols bgp group toPE1 local-address ::10.1.1.1 set protocols bgp group toPE1 family inet6 unicast set protocols bgp group toPE1 export send-v6 set protocols bgp group toPE1 peer-as 65002 set protocols bgp group toPE1 neighbor ::10.1.1.2 set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.255.1.1 set routing-options autonomous-system 65001
デバイスCE3
set interfaces fe-1/2/0 unit 0 family inet6 address ::10.1.1.14/126 set interfaces lo0 unit 0 family inet6 address ::10.255.1.5/128 set protocols bgp group toPE2 type external set protocols bgp group toPE2 local-address ::10.1.1.14 set protocols bgp group toPE2 family inet6 unicast set protocols bgp group toPE2 export send-v6 set protocols bgp group toPE2 peer-as 65002 set protocols bgp group toPE2 neighbor ::10.1.1.13 set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.255.1.5 set routing-options autonomous-system 65003
デバイスPE1の設定
ステップバイステップの手順
次の例では、設定階層のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、『Junos OS CLIユーザーガイド』の「構成モードでのCLIエディターの使用」を参照してください。
デバイスPE1を設定するには:
-
インターフェイスを設定します。
[edit interfaces] user@PE1# set fe-1/2/0 unit 0 family inet6 address ::10.1.1.2/126 user@PE1# set fe-1/2/0 unit 0 family mpls user@PE1# set fe-1/2/1 unit 0 family inet address 10.1.1.5/30 user@PE1# set fe-1/2/1 unit 0 family inet6 user@PE1# set fe-1/2/1 unit 0 family mpls user@PE1# set lo0 unit 0 family inet address 10.1.1.2/32
-
インターフェイスに MPLS を設定します。
[edit protocols mpls] user@PE1# set ipv6-tunneling user@PE1# set interface fe-1/2/0.0 user@PE1# set interface fe-1/2/1.0
-
BGPを設定します。
[edit protocols bgp] user@PE1# set group toCE1 type external user@PE1# set group toCE1 local-address ::10.1.1.2 user@PE1# set group toCE1 family inet6 unicast user@PE1# set group toCE1 export send-bgp6 user@PE1# set group toCE1 peer-as 65001 user@PE1# set group toCE1 neighbor ::10.1.1.1 user@PE1# set group toPE2 type internal user@PE1# set group toPE2 local-address 10.1.1.2 user@PE1# set group toPE2 family inet6 labeled-unicast explicit-null user@PE1# set group toPE2 export next-hop-self user@PE1# set group toPE2 export send-v6 user@PE1# set group toPE2 neighbor 10.1.1.4
-
OSPFを設定する
[edit protocols ospf area 0.0.0.0] user@PE1# set interface fe-1/2/1.0 user@PE1# set interface lo0.0 passive
-
シグナリングプロトコルを設定します。
[edit protocols] user@PE1# set ldp interface fe-1/2/1.0
-
ルーティングポリシーを設定します。
[edit policy-options] user@PE1# set policy-statement next-hop-self then next-hop self user@PE1# set policy-statement send-bgp6 from family inet6 user@PE1# set policy-statement send-bgp6 from protocol bgp user@PE1# set policy-statement send-bgp6 then accept user@PE1# set policy-statement send-v6 from family inet6 user@PE1# set policy-statement send-v6 from protocol bgp user@PE1# set policy-statement send-v6 from protocol direct user@PE1# set policy-statement send-v6 then accept
-
ルーターIDと自律システム(AS)番号を設定します。
[edit routing-options] user@PE1# set router-id 10.1.1.2 user@PE1# set autonomous-system 675002
結果
設定モードから、 show interfaces、 show policy-options、 show protocols、および show routing-options コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R1# show interfaces
fe-1/2/0 {
unit 0 {
family inet6 {
address ::10.1.1.2/126;
}
family mpls;
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.1.1.5/30;
}
family inet6;
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 10.1.1.2/32;
}
}
}
user@R1# show policy-options
policy-statement next-hop-self {
then {
next-hop self;
}
}
policy-statement send-bgp6 {
from {
family inet6;
protocol bgp;
}
then accept;
}
policy-statement send-v6 {
from {
family inet6;
protocol [ bgp direct ];
}
then accept;
}
user@R1# show protocols
mpls {
ipv6-tunneling;
interface fe-1/2/0.0;
interface fe-1/2/1.0;
}
bgp {
group toCE1 {
type external;
local-address ::10.1.1.2;
family inet6 {
unicast;
}
export send-bgp6;
peer-as 65001;
neighbor ::10.1.1.1;
}
group toPE2 {
type internal;
local-address 10.1.1.2;
family inet6 {
labeled-unicast {
explicit-null;
}
}
export [ next-hop-self send-v6 ];
neighbor 10.1.1.4;
}
}
ospf {
area 0.0.0.0 {
interface fe-1/2/1.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface fe-1/2/1.0;
}
user@R1# show routing-options router-id 10.1.1.2; autonomous-system 65002;
デバイスの設定が完了したら、設定モードからcommitを入力します。 CLIクイック設定に示されているように、トポロジー内の他のデバイスを設定します。
検証
設定が正常に機能していることを確認します。
CEデバイスに接続性の確認
目的
トンネルが動作していることを確認します。
アクション
動作モードから、 ping コマンドを入力します。
user@CE1> ping ::10.1.1.14 PING6(56=40+8+8 bytes) ::10.1.1.1 --> ::10.1.1.14 16 bytes from ::10.1.1.14, icmp_seq=0 hlim=61 time=10.687 ms 16 bytes from ::10.1.1.14, icmp_seq=1 hlim=61 time=9.239 ms 16 bytes from ::10.1.1.14, icmp_seq=2 hlim=61 time=1.842 ms
user@CE3> ping ::10.1.1.1 PING6(56=40+8+8 bytes) ::10.1.1.14 --> ::10.1.1.1 16 bytes from ::10.1.1.1, icmp_seq=0 hlim=61 time=1.484 ms 16 bytes from ::10.1.1.1, icmp_seq=1 hlim=61 time=1.338 ms 16 bytes from ::10.1.1.1, icmp_seq=2 hlim=61 time=1.351 ms
意味
IPv6 CEデバイスは、コアIPv4ネットワークを介して通信できます。