拙著「ヤマハルータでつくるインターネットVPN」では、IPv4を使用しているLAN同士を、IPv4を使用しているインターネットを介して、PPTP(Point to Point Tunneling Protocol)、あるいはIPsec(IP security)によるVPN(Virtual Private Network)で接続する方法について取り上げている。

実は、何もIPv4に限った話ではなく、IPv6でも同様の運用が可能である。そこで今回は、IPv6が動作するLAN同士を、IPv4が動作するインターネットを介してVPN接続する方法について取り上げよう。なお、話を簡単にするためにVPN専用としており、インターネット接続は考慮に入れないこととする。

設定に際しての考え方

IPv4であれIPv6であれ、インターネットVPNを実現する際にIPsecでトンネリングすることに変わりはない。そういう意味では、拙著ですでに取り上げている内容と大きな違いはないのだが、IPv6を扱うために固有の設定がいくつか必要になる。

まず、ヤマハルータに対してIPv6のルータアドバタイズを設定する必要がある。これは、それぞれのLANで稼動するコンピュータなどにIPv6アドレスを割り振るためだ。以下の設定例では、拠点1側で「fd00:1::/64」、拠点2側で「fd00:2::/64」を使用している。

VPNについては、IPsecの設定には違いはないが、ルーティングの設定には違いがある。IPv4ネットワーク経由でIPv6の通信だけをトンネリングする場合、IPv4ネットワークのデフォルトゲートウェイはインターネット接続時にISP(Internet Service Provider)から割り当てを受けるものを使う(そうしないと、対向側のルータに到達できない)。それに対して、トンネリングの対象になるIPv6ネットワークのゲートウェイは、IPsecによって構成するVPNトンネルとする。こうすることで、IPv6のトラフィックだけがVPNトンネル経由で対向側ネットワークに到達できる。

インターネット接続については、PPPoE (Point to Point Protocol over Ethernet)を使用することとした。固定IPv4グローバルIPアドレスの取得が難しくなってきている昨今の情勢を考慮して、動的に割り当てられるIPアドレスでメインモードによるIPsec接続を行うこととしている。本来なら固定グローバルIPアドレスが必要になるところだが、ヤマハルータ同士を対向させる前提であれば、NetVolanteDNSサービスを利用することで固定グローバルIPアドレスを不要にできる。

なお、Netvolante DNSを使ってホスト名を登録する際には、以下のサイトを参考にしていただきたい。

RTシリーズのネットボランチDNSサービスに関するFAQ - コマンドを使用してホストアドレス・電話アドレスの登録/削除を行う

では、それぞれの拠点に設置するルータで設定するコマンドについて見ていこう。

拠点1側の設定


# LANインタフェースの設定
ipv6 prefix 1 fd00:1::/64
ipv6 lan1 address fd00:1::1/64
ipv6 lan1 rtadv send 1

# WANインタフェースの設定
pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname  
ppp lcp mru on 1454
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp mtu 1454
ip pp secure filter in 1010 1011 2000
ip pp secure filter out dynamic 100 101 102 103
netvolante-dns hostname host pp 
pp enable 1

# ゲートウェイの設定
ip route default gateway pp 1
ipv6 route default gateway tunnel 1

# IPsecの設定
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha-hmac
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on
ipsec ike hash 1 sha
ipsec ike pre-shared-key 1 text 
ipsec ike remote address 1 
tunnel enable 1
ipsec auto refresh on

# フィルタの設定
ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 pass * * udp * 500
ip filter 1011 pass * * esp
ip filter 2000 reject * *
ip filter dynamic 100 * * www
ip filter dynamic 101 * * domain
ip filter dynamic 102 * * tcp
ip filter dynamic 103 * * udp

# DNSの設定
dns server 
dns private address spoof on

拠点2側の設定


# LANインタフェースの設定
ipv6 prefix 1 fd00:2::/64
ipv6 lan1 address fd00:2::1/64
ipv6 lan1 rtadv send 1

# WANインターフェースの設定
pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname  
ppp lcp mru on 1454
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp mtu 1454
ip pp secure filter in 1010 1011 2000
ip pp secure filter out dynamic 100 101 102 103
netvolante-dns hostname host pp 
pp enable 1

# ゲートウェイの設定
ip route default gateway pp 1
ipv6 route default gateway tunnel 1

# IPsecの設定
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha-hmac
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on
ipsec ike hash 1 sha
ipsec ike pre-shared-key 1 text 
ipsec ike remote address 1 
tunnel enable 1
ipsec auto refresh on

# フィルタの設定
ip filter source-route on
ip filter directed-broadcast on
ip filter 1010 pass * * udp * 500
ip filter 1011 pass * * esp
ip filter 2000 reject * *
ip filter dynamic 100 * * www
ip filter dynamic 101 * * domain
ip filter dynamic 102 * * tcp
ip filter dynamic 103 * * udp

# DNSの設定
dns server 
dns private address spoof on