実家のひかり電話対応のホームゲートウェイ(PR-S300SE) にいつの間にかIPv6 PPPoEの設定がされていて、LAN内のPCやAndroid機にPPPoEのDHCPv6で取得したプレフィックスがついていた。
で、ちょっと気になったので実験。
実家のひかり電話対応のホームゲートウェイ(PR-S300SE) にいつの間にかIPv6 PPPoEの設定がされていて、LAN内のPCやAndroid機にPPPoEのDHCPv6で取得したプレフィックスがついていた。
で、ちょっと気になったので実験。
ここの続き。申請が通ったので早速RTX810の設定を変更した。
この2段階で完了。
我が家はひかり電話を申し込んでいるので、
という挙動を示す。
ひかり電話のルーターに直接端末をつないだときに、どのような挙動を示すか試していないのではっきりはわからないけど、おそらくmフラグがONのRAを流していて、DHCPv6で端末にアドレスかプレフィックスを払い出すようになっていると思われる。
PPPoEのときとプレフィックスが変更になったのでサーバーのアドレスやらをひとつずつ変更し、とりあえず使える状態にした。
iijmioのIPv6版スピードテストで測ってみたところ、761.29Mbps出た。これまでPPPoEの制約で200Mbpsに張り付いていたのでかなりの改善。
そういえば、IPoEという名前はどうなんだろう。PPPoEの対義語としてはいいんだろうけど、この言葉だけ見たらEtherの上にIP通すのは当たり前すぎてあまりぱっとしない感じがして、ネイティブ方式の方がしっくりくると思う。
なんとなく、折角フレッツを使っているのでフレッツ網にも入れるようにしておきたいというのと、そのうちv6プラス(IPv4 over IPv6)なんかに手を出しそうな気がしているので、IPv6接続をPPPoEからIPoEに変更すべく、フレッツv6オプションを申し込んだ。
最近だと光ネクストを契約すると自動的にv6オプションがついているけど、1年前に契約したときはまだv6オプションは付帯されておらず、申し込みが必要な状態。オンラインで申し込むと工事費無料というので、ひかり電話ルータのLANポートからパソコンまでLANケーブルをせっせと引っ張って、flets-east.jpから申し込んだ。
設定をしたPCでipconfigを眺めていると、申し込んだ数分後に、ここと同じように6オクテット目が”2″になっている2つ目のプレフィックスがついていた。NGN内ではプレフィックスで動作を変えてるんですかね。
ここまではさくっと終わったので、IIJmio FiberAccess/NFを申し込んだ。こちらは、インターネットマルチフィードとのやり取りがあるらしく、開通までしばし待ち。
FreeBSD-9.0Rのネットワーク設定が8.xと違っていて少し手こずったので忘れないように書いておく。ちなみに、先日入れた9.1RC2でも同じ。
NICはIntel PRO/1000なので em0。DHCPは使わない。
IPアドレスとデフォルトルータ
/etc/rc.conf: ifconfig_em0="inet 192.168.100.3 netmask 255.255.255.0" defaultrouter="192.168.100.1"
RAを受け取る設定。
8.3Rでは ipv6_enable=”YES” と ipv6_network_interfaces=”em0″ と書いたら自動的に設定してくれていた。ifconfigコマンドのみで設定できるようになったのはシンプルでいい。
/etc/rc.conf: ifconfig_em0_ipv6="inet6 accept_rtadv"
エイリアスをつける (長いアドレスはさすがに覚えられない)
/etc/rc.conf: ifconfig_em0_alias0="inet6 2001:240:xxxx:xxxx::3 prefixlen 64"
テンポラリアドレスをつけて、通信時はこのテンポラリアドレスをなるべく使うように指定。
/etc/sysctl.conf: net.inet6.ip6.use_tempaddr=1 net.inet6.ip6.prefer_tempaddr=1
DHCPを使わないのでresolv.confにDNSサーバのアドレスを書く。
/etc/resolv.conf: nameserver 192.168.100.2 nameserver 192.168.100.1
これで、ifconfig em0の結果はこんな感じになる。
% ifconfig em0 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO> ether 00:19:d1:xx:xx:xx inet 192.168.100.3 netmask 0xffffff00 broadcast 192.168.100.255 inet6 fe80::219:d1ff:fexx:xxxx%em0 prefixlen 64 scopeid 0x1 inet6 2001:240:xxxx:xxxx::3 prefixlen 64 inet6 2001:240:xxxx:xxxx:219:d1ff:fexx:xxxx prefixlen 64 autoconf inet6 2001:240:xxxx:xxxx:6cb1:4cd2:ec24:e946 prefixlen 64 autoconf temporary nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT ) status: active
今朝、tobyにログインしてifconfigしたらem0にIPv6の一時アドレスがついていないことに気づいて、いろいろ調べた。
/etc/network.subrを見るとnetwork6_interface_setup()の定義のところで、
if [ ${rtsol_available} = yes -a -n "${rtsol_interfaces}" ]; then # Act as endhost - automatically configured. # You can configure only single interface, as # specification assumes that autoconfigured host has # single interface only. sysctl net.inet6.ip6.accept_rtadv=1 set ${rtsol_interfaces} ifconfig $1 up if ! checkyesno rtsold_enable; then rtsol ${rtsol_flags} $1 fi fi
とあるので、rtsol_available=yesになるインターフェースじゃないとaccept_rtadv=1にならないらしい。では、どうしたらrtsol_available=yesになるのかさかのぼってみてみると、rtsol_availableを触るのは3か所。
1か所目
case ${ipv6_gateway_enable} in [Yy][Ee][Ss]) rtsol_available=no ;; *) rtsol_available=yes ;; esac
ここは、ipv6_gateway_enable=noにしているので、rtsol_available=yesになっているはず。
2か所目
prefix=`get_if_var $i ipv6_prefix_IF` if [ -n "${prefix}" ]; then rtsol_available=no rtsol_interface=no laddr=`network6_getladdr $i` hostid=`expr "${laddr}" : 'fe80::\(.*\)%\(.*\)'`
ここは実行してみたけど、prefixは空文字列になっていて、test -n はFalseになって、rtsol_available=yesは維持。
3か所目
ipv6_ifconfig=`get_if_var $i ipv6_ifconfig_IF` if [ -n "${ipv6_ifconfig}" ]; then rtsol_available=no rtsol_interface=no ifconfig $i inet6 ${ipv6_ifconfig} alias fi
ここはアドレスがついてしまっている。なので test -nがTrueになって、rtsol_available=noになってしまっている模様。
ん?と思って、rc.confを見たら、サーバ待ち受けようにipv6アドレスを付ける設定のaliasを消してしまって、メインのアドレスとして設定する状態になってしまっていたようで、これが怪しそうなので、aliasになるように変更してリブートしてみた。
するとちゃんと一時アドレスがついて、デフォルトルートもちゃんとつくようになった。めでたしめでたし。
というか、rc.confの ipv6_ifconfig_em0 と ipv6_ifconfig_em0_alias0 の違いがやっとわかった。
いつも9/10で1項目Failが出るので調べてみたら、ds.v6ns.test-ipv6.comのAAAAがIPv6のDNSサーバでしか問い合わせできないようになってして、それが出来ていなかったのでFAILになっていた。
RTX810のDNSプロキシへはipv6で問い合わせているので、RTX810がIPv4でDNS問い合わせしているっぽい感じなので調べてみたら、ずばりdns server selectコマンドで問い合わせ順序を指定できるらしく、今の設定はipv4(pp1)の優先順位が上になっていた。
dns server select 100003 pp 3 any v4flets-east.jp restrict pp 3 dns server select 500001 pp 1 any . restrict pp 1 dns server select 500002 pp 2 any . restrict pp 2
というわけで、IPv4(pp1)の500001より上になるよう、IPv6(pp2)の順位を500002から200002に変更して、
dns server select 100003 pp 3 any v4flets-east.jp restrict pp 3 dns server select 200002 pp 2 any . restrict pp 2 dns server select 500001 pp 1 any . restrict pp 1
としたら 10/10 OKになった。
めでたしめでたし。
ちなみに、フレッツのPPPoEセッション数が2までなので、設定に書いてあるpp3は使用しておらず。v4とv6で2個消費するんだから、フレッツネクストは3個くらいまで対応してくれてもいいのになぁ。
Twitterにもつぶやいたけど、日経のIPv6関連の社説の話。
「NTTには国際標準に近づけるよう円滑な設備の改変を求めたい。」からの話がそれより前の記述とどう読んでもつながらない。フレッツ閉域網は昔から国際標準のIPv6規格を使っているし、それが閉域だから問題なのであって、国際標準とずれているという課題認識はちょっと違う気がする。
12ケタと32ケタも10進数と16進数で比較がおかしいし。
それに、「より重要なことは、新規格を導入した恩恵が感じられるサービスを医療や教育などの分野で生み出すことだ。当初の戦略を実現できなかった責任は重い。」も、フレッツv6オプションを使えばフレッツ網内限定のネットワークが構築できるから医療とか教育みたいなセキュアな用途に向いてそう。フレッツ網内だから絶対安全ということはないだろうけど、インターネットに比べればという意味で。
日経がNTT東西と政府に何を期待しているのかがよくわからない。
嫁さんからメールが送れないといわれて気が付いた。
エクセルファイルを添付したメールがなぜか送信できない。添付ファイルなしだとOK。
VISTA、Win7の両方で同じ現象なので、メーラーの問題か。
いろいろやっていくうちに、SMTPサーバにIPv6でつながるとだめで、IPv4だと何事もなかったかのように送信できた。
とりあえず、hostsファイルにメールサーバーのIPv4アドレスを書いて、強制的にIPv4でつながるように設定して回避。
いろいろ試してからIIJに問い合わせかな。
[2012/4/26追記]
とりあえずルータの設定を変えてみた。pp 2 はIPv6 PPPoEを割り当てているPP番号。
pp select 2 ppp lcp mru on 1454 → 削除 ipv6 pp tcp mss limit auto → 追加
どれが聞いたかわからないけど、内容からして添付ファイルを送ったときのパケットサイズがおかしくなって、ロストしまくったとかかなぁと思われる。
とりあえず今の状態で様子見。
[2012/4/26追記2]
Wiresharkで見ていると送信パケットのエラーがたくさんある。ICMPv6 Packet too bigとか。
で、IPv6のスループットサイトで確認したら上りが激遅。なので、一か所、ルータの設定を戻してみた。
pp select 2 ppp lcp mru on 1454 → 復活
でも変わらず。
今度はNICの設定をいじる。「大量送信オフロード(LSO) (IPv6)」をOFFにしたらエラーがほとんどなくなった。
なんだろう。いろいろチューニングしなきゃいけないのか。面倒だ。
ようやくフレッツ光ネクスト開通。
今住んでいるところのBフレッツのときは、PPPoEの設定までしてくれて、ルータのパスワードも設定してくれたけど、今回来てくれた人は、初期状態のまま置いて行きました。IP直打ちか設定ツールで設定して下さいとのこと。
とりあえず、運び込んでおいた新PCを立ち上げて、ひかり電話ルータの設定。設定といっても、PPPoEはヤマハRTX810からつなぐので、RTX810のWAN(LAN2)ポートへ静的ルーティングを指定するだけ。
それだけやって、ハブとひかり電話ルータの間にRTX810をつないでRTXの電源をONし、ついでハブ(GS116E)の電源を再起動。
まずは、IPv4のアドレスが問題なく取れていることを確認。さらに、ヤマハのサイトを見ながらIPv6 PPPoEの設定をして、グローバルのIPv6アドレスが取れるところまで設定完了。L2TPでとっていたときとプレフィックスが変わっていたので、tobyの設定を変えなきゃ。これは追々。
で、最終的な状態↓
なんか携帯のカメラがイマイチなのか、若干ピンぼけなのかすっきりしない写真。
テレビの調整。目標の60~65dBuVに対して、地デジ(UHF)は59~62dBuV、BSは60~63dBuVに調整できた。結構難しく、これ以上ATTを抜くと信号が歪んでいるのかレベルが下がるので、これが精一杯のレベル。事前の計算からもこれくらいがいいところっぽい。よく考えたら、TV入力前にVU/BS分配器を入れているので、3dBくらいのロスは計算通り。
それと、ルータの設定画面を出しているついでに、無線LANのルータ(WR8700N)を1F物置に設置し、P-02DのSIPの設定をした。そして新しい電話番号にかけてつながることも確認。
とりあえず、引っ越すまではRTX810とWR8700Nの電源はOFF。