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

"6rd"を検証する機会があったのでまとめておきます。

6rd(IPv6 rapid deployment)とは
 IPv4ネットワークの上にIPv6パケットを流すトンネリング技術の一つです。
 詳しくは各解説サイトにお任せします。

ということで検証まとめです。

構成図

IPv6 NetWork上のtest01サーバから6RD_BR--6RD_CE間の6RDトンネルを通り6RD_CE配下のtest02サーバとの疎通を確認します。

f:id:kashigeru:20131119091447j:plain

環境

6RD_BR
Cisco ASR1001 Version 15.2(1)S1
6RD_CE
Cisco 1921 Version 15.1(4)M4

6rd Prefix
2xxx:4200::/32

Delegated Prefix(6RD_CE側で使用可能なPrefix。構成図の6RD_CE-test02間)
2xxx:4200:A48:64::/64

6RD_BR設定(抜粋)

interface Tunnel0  
 no ip address  
 no ip redirects  
 ipv6 address 2xxx:4200:A85:6401::1/64  ---①  
 tunnel source GigabitEthernet0/0/0    ---②  
 tunnel mode ipv6ip 6rd          ---③  
 tunnel 6rd prefix 2xxx:4200::/32     ---④  
!  
interface GigabitEthernet0/0/0  
 ip address 10.133.100.1 255.255.255.252  
!  
interface GigabitEthernet0/0/3  
 ipv6 address 2xxx:4201:124::1/64  
!  
ipv6 route 2xxx:4200::/32 Tunnel0     ---⑤  

IPv6のアドレスを設定
Prefixは2xxx:4200::/32にTunnel SourceのIPv4アドレス32bitを埋め込んで算出
"show tunnel 6rd"で確認出来る
②TunnelのSourceの設定
③Tunnelモードの設定
④6rd Prefixの設定
IPv6ルーティングの設定

6RD_CE設定(抜粋)

interface Tunnel0            
 no ip address
 no ip redirects
 ipv6 unnumbered GigabitEthernet0/1   
 tunnel source GigabitEthernet0/0    ---①
 tunnel mode ipv6ip 6rd         ---②
 tunnel 6rd prefix 2xxx:4200::/32    ---③
 tunnel 6rd br 10.133.100.1       ---④
!
interface GigabitEthernet0/0
 ip address 10.72.0.100 255.255.255.0
!
interface GigabitEthernet0/1
 ipv6 address 2xxx:4200:A48:64::1/64
!
ipv6 route 2xxx:4200::/32 Tunnel0
ipv6 route ::/0 2xxx:4200:A85:6401::1  ---⑤

①TunnelのSourceの設定
②Tunnelモードの設定
③6rd Prefixの設定
④6RD_BRの設定
IPv6ルーティングの設定

Delegated Prefixの概念が少し難しいので解説

今回の検証では6rd Prefixは2xxx:4200::/32

ここに6RD_CEのTunnel SourceのIPv4アドレス32bitを埋め込んだものが
Delegated Prefixとなる
つまり今回はtunnel sourceのGigabitEthernet0/0が10.72.0.100なので
これを16進数に変換して
10→A
72→48
0→0
100→64
埋め込んだ2xxx:4200:A48:64::/64がDelegated Prefixとなる。

※さらに6rd Prefixに埋め込むIPv4アドレスを何bit分使用するかは
6RD_BRの設定で自由に変更することが出来る。
例えば先頭から16bit分埋め込む場合は6RD_BRのinterface Tunnel0に
tunnel 6rd ipv4 prefix-length 16
の設定を追加する

そうすると6RD_CE側では10.72.0.100の先頭16bit分埋め込むので
Delegated Prefixは2xxx:4200:A48::/48となる。
ホストで使うIPを増やしたい場合は埋め込むbit数を減らすとよい。

6RD_BR設定確認(抜粋)

6RD_BR#sh tunnel 6rd  
Interface Tunnel0:  
  Tunnel Source: 10.133.100.1  
  6RD: Operational, V6 Prefix: 2xxx:4200::/32  
       V4 Prefix, Length: 0, Value: 0.0.0.0  
       V4 Suffix, Length: 0, Value: 0.0.0.0  
  General Prefix: 2xxx:4200:A85:6401::/64  

6RD_CE設定確認(抜粋)

6RD_CE#sh tunnel 6rd  
Interface Tunnel0:  
  Tunnel Source: 10.72.0.100  
  6RD: Operational, V6 Prefix: 2xxx:4200::/32  
       V4 Prefix, Length: 0, Value: 0.0.0.0  
       V4 Suffix, Length: 0, Value: 0.0.0.0  
       Border Relay address: 10.133.100.1  
  General Prefix: 2xxx:4200:A48:64::/64  

6rdの設定はこれで完了です。
ではtest01-test02間の疎通を確認します。

test01の設定

#ifconfig  
eth1      Link encap:Ethernet  HWaddr 00:26:2D:05:D7:0D  
          inet6 addr: 2xxx:4201:124::100/64 Scope:Global  
          inet6 addr: fe80::226:2dff:fe05:d70d/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:163826 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:2281 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:10029218 (9.5 MiB)  TX bytes:255258 (249.2 KiB)  
          Memory:ce1c0000-ce1e0000  

test02の設定

#ifconfig
em2       Link encap:イーサネット  ハードウェアアドレス 78:2b:cb:74:be:86
          inet6アドレス: 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9/64 範囲:グローバル
          inet6アドレス: fe80::7a2b:cbff:fe74:be86/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:1763 エラー:0 損失:1187 オーバラン:0 フレーム:0
          TXパケット:114 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:545246 (545.2 KB)  TXバイト:12716 (12.7 KB)

test01からtest02へping

# ping6 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9
PING 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9 56 data bytes
64 bytes from 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9: icmp_seq=1 ttl=62 time=0.574 ms
64 bytes from 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9: icmp_seq=2 ttl=62 time=0.623 ms
64 bytes from 2xxx:4200:a48:64:2c34:dc6e:41d6:b4b9: icmp_seq=3 ttl=62 time=0.579 ms

test02からtest01へping

# ping6 2xxx:4201:124::100
PING 2xxx:4201:124::100 56 data bytes
64 bytes from 2xxx:4201:124::100: icmp_seq=1 ttl=62 time=0.537 ms
64 bytes from 2xxx:4201:124::100: icmp_seq=2 ttl=62 time=0.518 ms
64 bytes from 2xxx:4201:124::100: icmp_seq=3 ttl=62 time=0.575 ms

疎通がとれたので完了。

【参考資料】
Cisco IOS XE Release3S(ASR 1000)IPv6 Rapid Deployment
6rd Configuration Example - DocWiki
6rdによるIPv6接続(Cisco編)« さくらインターネット研究所