6rd検証まとめ 6RD_CE(Ubuntu版)

前回のエントリは6RD_CEをCiscoルータで設定しましたが、
今回はubuntuで設定してみます。

構成図

test02が6RD_CEを兼ねます。なぜこの構成で検証したかは後述します。

f:id:kashigeru:20131119091834j:plain

環境

6RD_BR
Cisco ASR1001 Version 15.2(1)S1
6RD_CE
Ubuntu13.04 kernel 3.8.0
※kernelが2.6.33以上であること

6rd Prefix
2xxx:4200::/32

Delegated Prefix
2xxx:4200:A48:64::/64

6RD_BR設定(抜粋)

前回のエントリを参照してください。
6rd検証まとめ 6RD_CE(Cisco版)

6RD_CE設定

/etc/network/interfacesに追記

auto tun6rd
iface tun6rd inet6 v4tunnel
    address 2xxx:4200:0a48:0064::100
    netmask 64
    local 10.72.0.100
    endpoint any
    gateway  ::10.133.100.1
    ttl 64
    up ip tunnel 6rd dev tun6rd 6rd-prefix 2xxx:4200::/32
    up ip link set mtu 1280 dev tun6rd 

設定を投入したら再起動します。

6RD_CE設定確認

# ifconfig tun6rd
tun6rd    Link encap:IPv6-in-IPv4
          inet6アドレス: ::10.72.0.100/128 範囲:Compat
          inet6アドレス: 2xxx:4200:a48:64::100/64 範囲:グローバル
          UP RUNNING NOARP  MTU:1280  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:158 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0
          RXバイト:0 (0.0 B)  TXバイト:14160 (14.1 KB)
# ip -6 route show | grep default
default via ::10.133.100.1 dev tun6rd  metric 1024

これでtest01-test02間での疎通がとれるようになります。

キャプチャ

test02からtest01へのICMPをキャプチャしてみました。
IPv4カプセル化されているのがわかります。

Source                Destination        Protocol 
2xxx:4200:a48:64::100 2xxx:4201:124::100 ICMPv6

Frame 3: 138 bytes on wire (1104 bits), 138 bytes captured
Ethernet II, Src:78:2b:cb:74:be:86,Dst:54:75:d0:b0:0a:7f
Internet Protocol Version 4, Src:10.72.0.100,Dst:10.133.100.1
Internet Protocol Version 6, Src:2xxx:4200:a48:64::100,Dst:2xxx:4201:124::100
Internet Control Message Protocol v6

ではここからが本題。なぜubuntuを6RD_CEにして検証したかというと
弊社DC(IPv6サーバ)とAWSをDirectConnect接続してIPv6で疎通したかったからです。
すなわち、やりたかったことは

AWSインスタンスIPv6アドレスを付与して疎通する

構成図のtest02がAWSのインスタンスになるイメージです。

実際にAWSと弊社DC間をVPN接続して検証したので
解説と結果はcolleagueの下記ブログを参照してください。

RX-7乗りの適当な日々
6rdプロトコルを使って、IPv6ネットワークとAmazon VPC(EC2)をつないでみた

結果、AWSインスタンスに6RD_CEの設定をして弊社サーバ(IPv6)との疎通確認がとれました。