前回に引き続き、vJunosでMPLS周りを検証したいと思います。
今回は、前回のトポロジーと設定を引き継ぎ、6PEによるIPv6 over IPv4を試してみます。
6PEとは、IPv6が動いていないMPLSネットワークを経由してIPv6ネットワーク同士の通信を実現する技術です。
この説明がメッチャわかりやすいです。
今回のトポロジーでは、CE Site1(R1)およびSite2(R7)にはIPv6のLoopback Addressが付与されてますが、疑似SP網(R2~R6)にはIPv6 Addressが付与されてません。そんな条件下でもCE Site間でIPv6が通信できる技術になります。
ネット上に例がないので、書き記します(果たしてテレコム/ISPがIPv4/IPv6 Dual Stackになっている今、需要はあるのか…)
1. MPLS LDP - 6PE 構成
前回と同様なので割愛します。前回の説明を見てください。
トポロジー再掲しときます。

キモとしては疑似SP網内ではIPv6 Addressは付与していない点でしょうか。
2. MPLS LDP - 6PE 設定
それでは設定していきます。
疑似SP網内で6PEを有効にするため、設定するRouterはR2~R6になります。
順を追って説明した方がわかりやすいので、少しずつ設定と確認をしたいと思います。
(最後に、機器ごとのconfigをまとめて記載します)
まず、CE Site1の経路情報(R1のIPv6 Loopback Address(3fff::1/128))を考えます。
R2は既にR1から3fff::1/128の経路情報を受信しているため、この経路情報のProtocol next hopを自身にしてRoute-Reflector(RR)なR6に広報する必要があります。
そのため、まず「family inet6 labeled-unicast」コマンドでMP-BGPにてIPv6 Prefixを送受信できるようにします。
//R2 set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null
//R6 set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null
explicit-nullオプションは、IPv6通信を行う際に必須となるLabel 2を強制的に付与させる設定となります。
(後ほど詳しく説明します)
R2にてR6へ広報しているか確認します。
//R2 lab@R2# run show route advertising-protocol bgp 172.16.1.6 inet6.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 Self 100 65001 I
R6へ3fff::1/128を広報できました。
R6で受信しているか確認します。
//R6 lab@R6# run show route receive-protocol bgp 172.16.1.2 inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden) inet6.0: 1 destinations, 1 routes (0 active, 0 holddown, 1 hidden)
おや、経路情報が出てきません…。
詳しく見ていきます。
//R6
lab@R6# run show route receive-protocol bgp 172.16.1.2 hidden
inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
inet6.0: 1 destinations, 1 routes (0 active, 0 holddown, 1 hidden)
Prefix Nexthop MED Lclpref AS path
3fff::1/128 ::ffff:172.16.1.2 100 65001 I
[edit]
lab@R6# run show route 3fff::1/128 hidden extensive
inet6.0: 1 destinations, 1 routes (0 active, 0 holddown, 1 hidden)
3fff::1/128 (1 entry, 0 announced)
BGP Preference: 170/-101
Next hop type: Unusable, Next hop index: 0
<snip>
Protocol next hop: ::ffff:172.16.1.2 ResolvState: PnhUnresolv
<snip>3fff::1/128のProtocol next hopは(RFC4291で定めてる)IPv4-Mapped IPv6 Addressな「::ffff:172.16.1.2」として広報しており、このAddressの解決ができていないようです。
なので何らかの形でルーティングテーブルにこの「::ffff:172.16.1.2」をエントリーする必要があります。
そして、この「::ffff:172.16.1.2」はMPLSによるパケット転送対象なnext-hopとするため、inet.3のIPv6版なinet6.3テーブルにエントリーする必要があります。
これらを実現する設定が「set protocols mpls ipv6-tunneling」コマンドになります。
このコマンドによって、inet.3テーブルにエントリーされているIPv4 AddressをMappedしたIPv6 Addressとしてinet6.3テーブルにインストールします。
ですが今はR6はMPLSを有効にしていないため、そもそもinet.3テーブルがありません。
なので、併せてMPLS(LDP)を有効にします。(R6の物理接続)対向のR3のIFでもMPLSとLDPを有効にします。
//R3 set interfaces ge-0/0/6 unit 0 family mpls set protocols mpls interface ge-0/0/6.0 set protocols ldp interface ge-0/0/6.0
//R6 set interfaces ge-0/0/1 unit 0 family mpls set protocols mpls interface ge-0/0/1.0 set protocols ldp interface ge-0/0/1.0 set protocols mpls ipv6-tunneling
再度、R6にて確認します。
//R6 lab@R6# run show route receive-protocol bgp 172.16.1.2 inet.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden) inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 ::ffff:172.16.1.2 100 65001 I inet6.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
Protocol next hop解決され、有効な経路情報として受信できました!
詳しく確認します。
//R6
lab@R6# run show route 3fff::1/128 extensive
inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
3fff::1/128 (1 entry, 1 announced)
TSI:
KRT in-kernel 3fff::1/128 -> {indirect(1048574)}
*BGP Preference: 170/-101
<snip>
Protocol next hop: ::ffff:172.16.1.2
<snip>
lab@R6# run show route ::ffff:172.16.1.2
inet6.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
::ffff:172.16.1.2/128
*[LDP/9] 00:06:33, metric 1
> to 10.1.36.3 via ge-0/0/1.0, Push 299776
lab@R6# run show route 3fff::1/128
inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::1/128 *[BGP/170] 00:05:26, localpref 100, from 172.16.1.2
AS path: 65001 I, validation-state: unverified
> to 10.1.36.3 via ge-0/0/1.0, Push 2, Push 299776(top)まず「run show route 3fff::1/128 extensive」コマンド結果より、Protocol next hopは「::ffff:172.16.1.2」となっていることが確認できます。
そして「run show route ::ffff:172.16.1.2」コマンド結果より、::ffff:172.16.1.2はinet6.3にエントリーされています。
その結果「run show route 3fff::1/128 」コマンドの結果のとおり、このAddres宛は「Push 2, Push 299776(top)」として、MPLSにてパケット転送されるようになりました。
次に、この経路情報をR5に広報する必要があります。
先ほどと同様の考えで、R5にて「family inet6 labeled-unicast」と「set protocols mpls ipv6-tunneling」を設定する必要があります。
//R5 set protocols mpls ipv6-tunneling set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null
R5で確認します。
//R5
lab@R5# run show route receive-protocol bgp 172.16.1.6
inet.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden)
inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
mpls.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
inet6.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
* 3fff::1/128 ::ffff:172.16.1.2 100 65001 I
lab@R5# run show route ::ffff:172.16.1.2
inet6.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
::ffff:172.16.1.2/128
*[LDP/9] 00:03:34, metric 1
> to 10.1.45.4 via ge-0/0/0.0, Push 299776
inet6.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
lab@R5# run show route 3fff::1/128
inet6.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::1/128 *[BGP/170] 00:02:23, localpref 100, from 172.16.1.6
AS path: 65001 I, validation-state: unverified
> to 10.1.45.4 via ge-0/0/0.0, Push 2, Push 299776(top)「run show route receive-protocol bgp 172.16.1.6 」コマンド結果より、3fff::1/128の経路情報をR6から受信し、
「run show route ::ffff:172.16.1.2」コマンド結果より、::ffff:172.16.1.2がinet6.3にエントリーされており、
「run show route 3fff::1/128 」コマンド結果より、3fff::1宛のパケットについて、MPLSによって(LabelがPushされて)転送されるのが確認できます。
最後にR5よりR7へ3fff::1/128の経路情報を広報し、R7にエントリーがあるか確認します。
//R5 lab@R5# run show route advertising-protocol bgp 2001:db8:1:57::7 inet6.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 Self 65001 I
//R7
lab@R7# run show route receive-protocol bgp 2001:db8:1:57::5
inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
* 3fff::1/128 2001:db8:1:57::5 65002 65001 I
[edit]
lab@R7# run show route 3fff::1/128
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::1/128 *[BGP/170] 00:11:09, localpref 100
AS path: 65002 65001 I, validation-state: unverified
> to 2001:db8:1:57::5 via ge-0/0/0.0R7に3fff::1/128の経路情報が載ってます!
CE Site2からCE site1へのIPv6通信はできそうです。
…と言いたいところですが、実はこれではまだR7から3fff::1宛のパケットはR1に届きません。
具体的には、R2より3fff::1宛のパケットをR1へルーティングしてくれません。
これは、Label 2が付与されている場合はIPv6パケットして扱っており、MPLSを動かしている物理IFにてinet6を有効にする必要があるためです。
Web Documentにも以下の記載があります。
In addition to configuring the family inet6 statement on all the CE router–facing interfaces, you must also configure the statement on all the core-facing interfaces running MPLS. Both configurations are necessary because the router must be able to process any IPv6 packets it receives on these interfaces. You should not see any regular IPv6 traffic arrive on these interfaces, but you will receive MPLS packets tagged with Label 2. Even though Label 2 MPLS packets are sent in IPv4, these packets are treated as native IPv6 packets.
これはとんだ罠っすね…。
なので、R2のge-0/0/1でinet6を有効にします。
//R2 set interfaces ge-0/0/1 unit 0 family inet6
これでCE Site1の経路情報の広報に関わる設定は完了です。
CE Site2(R7のIPv6 Loopback Address(3fff::7/128))の経路情報の広報に関わる設定についても、同様の考えで設定を追加します。
//R2 set protocols mpls ipv6-tunneling
//R4 set interfaces ge-0/0/6 unit 0 family mpls set protocols mpls interface ge-0/0/6.0 set protocols ldp interface ge-0/0/6.0
//R5 set interfaces ge-0/0/0 unit 0 family inet6
//R6 set interfaces ge-0/0/2 unit 0 family mpls set protocols mpls interface ge-0/0/2.0 set protocols ldp interface ge-0/0/2.0
以上の設定でCE Site間でIPv6通信ができるようになります。
…が、またここで罠があります。
前回設定したIPv4の通信ができなくなっています。
具体的にはR2とR5がIPv6 Prefixしか広報しない動作になっています。
//R2 lab@R2# run show route advertising-protocol bgp 172.16.1.6 inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 Self 100 65001 I
//R5 lab@R5# run show route advertising-protocol bgp 172.16.1.6 inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::7/128 Self 100 65007 I
これは「family inet6 labeled-unicast」コマンドを設定したために、Label付きのIPv6の経路情報のみ送受信する動作に変わってしまったためです。
なので、IPv4の経路情報も送受信する設定を追加します。
(受信時も設定は必要なのでR6にも投入します)
//R2 set protocols bgp group INTERNAL family inet unicast
//R5 set protocols bgp group INTERNAL family inet unicast
//R6 set protocols bgp group INTERNAL family inet unicast
これで前回同様にR1とR7のIPv4 Loopback Address情報も広報するようになります。
念のため確認します。
//R2 lab@R2# run show route advertising-protocol bgp 172.16.1.6 inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.1/32 Self 100 65001 I inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 Self 100 65001 I lab@R2# run show route receive-protocol bgp 172.16.1.6 inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.7/32 172.16.1.5 100 65007 I inet.3: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) mpls.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::7/128 ::ffff:172.16.1.5 100 65007 I
//R5 lab@R5# run show route advertising-protocol bgp 172.16.1.6 inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.7/32 Self 100 65007 I inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::7/128 Self 100 65007 I lab@R5# run show route receive-protocol bgp 172.16.1.6 inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.1/32 172.16.1.2 100 65001 I inet.3: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) mpls.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 3fff::1/128 ::ffff:172.16.1.2 100 65001 I inet6.3: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
R2とR5はそれぞれIPv4とIPv6の経路情報を広報し、かつR6から対向のCE Siteの経路情報を受信していますね。
これで設定は以上になります。
最後に、今回投入した設定を機器ごとに載せておきます。
一気に設定投入したい時のコピペ用にお使いください。
//R2 set protocols mpls ipv6-tunneling set interfaces ge-0/0/1 unit 0 family inet6 set protocols bgp group INTERNAL family inet unicast set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null
//R3 set interfaces ge-0/0/6 unit 0 family mpls set protocols mpls interface ge-0/0/6.0 set protocols ldp interface ge-0/0/6.0
//R4 set interfaces ge-0/0/6 unit 0 family mpls set protocols mpls interface ge-0/0/6.0 set protocols ldp interface ge-0/0/6.0
//R5 set protocols mpls ipv6-tunneling set interfaces ge-0/0/0 unit 0 family inet6 set protocols bgp group INTERNAL family inet unicast set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null
//R6 set interfaces ge-0/0/1 unit 0 family mpls set interfaces ge-0/0/2 unit 0 family mpls set protocols mpls interface ge-0/0/1.0 set protocols mpls interface ge-0/0/2.0 set protocols ldp interface ge-0/0/1.0 set protocols ldp interface ge-0/0/2.0 set protocols bgp group INTERNAL family inet unicast set protocols bgp group INTERNAL family inet6 labeled-unicast explicit-null set protocols mpls ipv6-tunneling
3. MPLS LDP - 6PE 動作確認
では実際に動作を確認します。改めて各種showコマンドの結果も見ていきます。CE Site1(R1)からCE Site2(R7)方向を確認します。
基本的な観点は前回と同様です。
R1からR7へのパケットは
・R2はinet6.3テーブルを参照してShimヘッダーを二重に挿入してR3へ転送
・R3はmpls.0テーブルを参照してLabelをSwapしてR4へ転送
・R4はmpls.0テーブルを参照して(PHP動作にて)Shimヘッダーを1つPopしてR5へ転送
・R5はShimヘッダーをPopしてinet6.0テーブルを参照して(宛先 IPv6 Addressによって)R7へ転送
といった動作となります。
前回と異なる点はR2は二重にShimヘッダーを挿入し、R5でShimヘッダーを外します。
(なんで二重かはおいおい説明します…)
ではR2から見ていきます。
//R2
lab@R2# run show route 3fff::7
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::7/128 *[BGP/170] 00:20:16, localpref 100, from 172.16.1.6
AS path: 65007 I, validation-state: unverified
> to 10.1.23.3 via ge-0/0/1.0, Push 2, Push 299808(top)
lab@R2# run show route ::ffff:172.16.1.5
inet6.3: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
::ffff:172.16.1.5/128
*[LDP/9] 00:20:49, metric 1
> to 10.1.23.3 via ge-0/0/1.0, Push 299808ルーティングテーブルを確認すると、3fff::7(R7のLoopback Address)宛は「Push 2, Push 299808(top)」としてパケットを10.1.23.3(R3)へ転送する様になっています。
この「Push 2, Push 299808(top)」はLabelが二重に付くことを意味します。
実際にR1からR7へPingを飛ばしてR2-R3間のパケットキャプチャーを見てみます。

ルーティングテーブルのとおり、Label 299808とLabel 2が挿入されています。
次にR3を見ていきます。
//R3
lab@R3# run show route label 299808
mpls.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
299808 *[LDP/9] 09:15:05, metric 1
> to 10.1.34.4 via ge-0/0/1.0, Swap 299808(Label値は一緒ですが)Labe 299808をLabel 299808へSwapして10.1.34.4(R4)へ転送する様になっています。
実際にR3-R4間のパケットキャプチャーを見てみます。

(さっきとほぼ変わりませんが)ルーティングテーブルのとおり、Label 299808が付与されています。Label 2はそのまま残っています。
R4へ転送されてるので問題ありませんね。
次にR4を見ていきます。
//R4
lab@R4# run show route label 299808
mpls.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
299808 *[LDP/9] 09:20:50, metric 1
> to 10.1.45.5 via ge-0/0/1.0, Pop
299808(S=0) *[LDP/9] 09:20:50, metric 1
> to 10.1.45.5 via ge-0/0/1.0, PopLabel 299808は二種類あります。今回のパケットのLebel 299808のBottom of Stackビットは0なので後者のエントリーが選択されます(どっちもPop処理ですが)
※Label 2があるのでBottom of Stackではない
Label 299808なShimヘッダーは外され10.1.45.5(R5)へ転送される様になっています。
実際にR4-R5間のパケットキャプチャーを見てみます。

Label 299808なShimヘッダーは外されてます。
また、R5へ転送されてるので問題ありませんね。
最後にR5を見ます。R5で受信時ではLabel 2なShimヘッダーが付いてるため、まずmpls.0テーブルを確認します。
//R5
lab@R5# run show route label 2
mpls.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2 *[MPLS/0] 09:34:45, metric 1
to table inet6.0
2(S=0) *[MPLS/0] 09:34:45, metric 1
to table mpls.0また二種類ありますね。Bottom of Stackビットは1なので前者のエントリーが選択されます。
エントリー内容を見ると「to table inet6.0」と表示されています。
これは「inet6.0テーブルをlookupしてルーティングをしなさい」と命令してることを意味します。
6PE使用時においては明示的にinet6.0テーブルへのlookupを行う様にするため、このようにLabel 2を付ける必要があります。
(パケットキャプチャーのとおり、Label 2は「IPv6 Explicit NULL」LabelとしてRFC3032で定義されてます。
また前述のとおり、このLabel値が付いてるパケットはIPv6パケットとして処理されるため、物理IFにinet6が必要になります)
なので、6PEではIngress LERでLabelを二重に挿入してパケット転送する約束となっています。
(Ingress LERで「各Routerでパケット転送する用のLabel」と「Egress LERでIPv6ルーティングテーブルを参照する命令用のLabel」を付ける、というイメージです)
念のためR5のinet6.0テーブルも見ましょう。
//R5
lab@R5# run show route 3fff::7
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::7/128 *[BGP/170] 09:54:26, localpref 100
AS path: 65007 I, validation-state: unverified
> to 2001:db8:1:57::7 via ge-0/0/1.0BGPでの広報によってR7(2001:db8:1:57::7)へ転送する様になっていますね。
これでCE Site1からCE Site2方向は問題無さそうです。
参考までに、CE Site2からCE Site1方向のルーティングテーブルも確認します。
見かたは一緒なので、説明は省略します。
//R5
lab@R5# run show route 3fff::1
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::1/128 *[BGP/170] 01:15:27, localpref 100, from 172.16.1.6
AS path: 65001 I, validation-state: unverified
> to 10.1.45.4 via ge-0/0/0.0, Push 2, Push 299776(top)//R4
lab@R4# run show route label 299776
mpls.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
299776 *[LDP/9] 09:59:23, metric 1
> to 10.1.34.3 via ge-0/0/0.0, Swap 299776//R3
lab@R3# run show route label 299776
mpls.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
299776 *[LDP/9] 10:02:27, metric 1
> to 10.1.23.2 via ge-0/0/0.0, Pop
299776(S=0) *[LDP/9] 10:02:27, metric 1
> to 10.1.23.2 via ge-0/0/0.0, Pop//R2
lab@R2# run show route label 2
mpls.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2 *[MPLS/0] 10:09:25, metric 1
to table inet6.0
2(S=0) *[MPLS/0] 10:09:25, metric 1
to table mpls.0
lab@R2# run show route 3fff::1
inet6.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
3fff::1/128 *[BGP/170] 10:09:29, localpref 100
AS path: 65001 I, validation-state: unverified
> to 2001:db8:1:12::1 via ge-0/0/0.0R7から3fff::1宛もMPLSによってR1へパケット転送できそうですね。
最後にCE Site間でIPv6 Pingが通ることを改めて確認します。
ついでにIPv4 Pingも通ることも確認します。
//R1 lab@R1# run ping 3fff::7 source 3fff::1 rapid PING6(56=40+8+8 bytes) 3fff::1 --> 3fff::7 !!!!! --- 3fff::7 ping6 statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/std-dev = 2.719/3.019/3.294/0.185 ms lab@R1# run ping 172.16.1.7 source 172.16.1.1 rapid PING 172.16.1.7 (172.16.1.7): 56 data bytes !!!!! --- 172.16.1.7 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.863/3.260/3.582/0.244 ms
はい、無事にIPv6 Over IPv4な環境でIPv6 PingとIPv4 Pingが飛びました!
今回は以上になります。
今回、二回に渡ってMPLSの検証を行いました。
MPLSのLabel配布プロトコルは(今回使った)LDPの他にもRSVPがありますが、パケット転送のテーブルの確認方法は一緒です!!
ぜひ参考にしてください!!
ここまで読んでくださりありがとうございました!!!!
4. 参考資料
MPLS JAPAN 2008 - MPLS-IXでの6PE運用
Juniper Documentation - MPLS Applications User Guide - IPv6-over-Ipv4 Tunnelswww.juniper.net