きっかけ
家に設置したRTX1200でL2TP/IPsec接続時のログを見ていたら、PP[ANONYMOUS01] PPP/IPV6CP up
というログを見た…気がする。これは、ちゃんと設定すれば、家にデュアルスタックでトンネル行けるのでは…?
設定
RTX1200側
- L2TP/IPsecできるようにする。これはrtpro他、各種記事参照のこと。
-
pp anonymous
にIPv6の設定を追加する。追加差分はこれだけ。
ipv6 prefix 4 dhcp-prefix@pp2:2::/64
pp select anonymous
ppp ipv6cp use on
ipv6 pp address dhcp-prefix@pp2:2::1/64
ipv6 pp rtadv send 4 o_flag=on
ipv6 pp mtu 1280
ipv6 pp dhcp service server
ipv6 pp tcp mss limit auto
我が家はPPPoEで/48なので、トンネル専用のprefixとして、pp2のprefixに2::を足している。MTUは適当。
OSX側
OSXのpppはデフォルトでRAによるアドレス自動設定が動作しない。そこで、ppp0がup/downした時に、ipconfig
コマンド(ifconfig
ではない)で自動設定が動作するようにする。
#!/bin/sh
/usr/sbin/ipconfig set $1 AUTOMATIC-V6
/sbin/route add -inet6 default -interface $1
#!/bin/sh
/sbin/route delete -inet6 default -interface $1
/usr/sbin/ipconfig set $1 NONE-V6
sudo chmod +x /etc/ppp/ipv6-*
を忘れずに。スクリプトの引数はPPPD(8)
参照のこと。$1はインターフェース名(ppp0等)。
ちなみにWindows10
WindowsはL2TP/IPsecもRAで設定される模様で、追加設定無しでIPv6接続可能となった。ただ、そもそもNAT Traversalが有効でないため、LTEのCGNが通らなかった。こちらの方法でレジストリ変更で対処。
確認
$ ifconfig ppp0
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
inet6 fe80::yyyy:yyff:feyy:yyyy%ppp0 prefixlen 64 scopeid 0xa
inet 192.168.101.100 --> 192.168.100.1 netmask 0xffffff00
inet6 2001:xxx:xxxx:2:yyyy:yyff:feyy:yyyy prefixlen 64 autoconf
inet6 2001:xxx:xxxx:2:zzzz:zzzz:zzzz:zzzz prefixlen 64 autoconf temporary
$ sudo ipconfig getv6packet ppp0
DHCPv6 REPLY (7) Transaction ID 0x0e75e1 Length 56
Options[3] = {
SERVERID (2) Length 10 DUID LL HW 1 Addr yy:yy:yy:yy:yy:yy
CLIENTID (1) Length 14 DUID LLT HW 1 Time 505569110 Addr zz:zz:zz:zz:zz:zz
DNS_SERVERS (23) Length 16 2001:xxx:xxxx:2::1
}
わーい。
課題
DNSが変かも? ブラウザでAAAAが引かれない?
El CapitanでHappy Eyeballsが変更になったとの話だが、この方法だとAAAAを引こうとしない…のか?