フレッツ光 ひかり電話を使いながら、IPoEのIPv6を自前ルータで直収する方法

注: 色々あってQiitaからの移植記事です。この記事は 2020年05月25日 頃 公開したものです。

これは

NTTのHGWではできることが少ない1ので、自前ルータを直接収容したいけどひかり電話も利用したいという人向けの資料です。 従来手法では、HGWを無理矢理IPv6を使わないようにして無理やりどうにかする方法だったため、ひかり電話ルータの挙動がおかしくなる可能性があったが、この方法だと無理矢理なことをせずに、ひかり電話を利用できるようになる。

想定する構成

通常の利用構成

通常のNTTが想定するような使い方です。 PPPoEの終端も、IPv6もHGWを一度通ることになっている。 このHGWはあまり性能が良くないので、IPv6IPv4もHGWの性能に引きずられることになる。 NTTのひかり電話ルータに備わっている「LAN側静的ルーティング」機能という通常使わないと考えられる機能が、素晴らしい機能になる瞬間。

NTTが想定する、少し強くなった構成

上記の通常の利用構成と変わっているのはHGWがPPPoEをパススルーして、自前ルータでPPPoEの終端をしているところ。 v4に関してはルータ本来の性能で利用することができるが、v6に関してはHGWに引きずられる形となる。

NTTやYAMAHAが想定する HGW を 市販のひかり電話対応ルータと置き換える

NVR510 や NVR700W 置き換えてHGWとおさらばする方法 「UNI出し」などと呼ばれる方法で、公式ページでも案内されている方法になる。

しかし、この方法には以下の問題点があり、IPSecひかり電話を同時に利用することは非常に難しくなっている。

  • NVRシリーズはIPSecでのVPNに対応し得ておらず、IPSecを利用した拠点間VPNが利用できない (IPIPやGRETC など、平文/脆弱な暗号化でのVPNは可能)
    • NVR700Wは対応しているが、RTXより対地数が少なく、値段もそこそこ高い
  • YAMAHAのRTXシリーズはPD再配布に対応しておらず、配下にIPv6をルーティングするルータを設置する際は一部IP手動設定を行わなければならない
    • NEC UNIVERGE IX シリーズはPD再配布に対応しているがひかり電話に対応していない
    • UNIVERGE IXシリーズのDHCPv6サーバオプションの都合上、PD再配布先にひかり電話の設定を渡すことができない

NTTのひかり電話仕様を再度確認してみる

NTT東 ひかり電話 技術参考資料を読むとひかり電話IPv4及びIPv6の双方で提供されている ことがわかる。

このIPv4アドレスが実は/30で割り当てられており、「グローバル 4IP/ひかり電話加入回線」という壮大な無駄遣いをしているという話もあるが、その話はここでは扱わない。

ひかり電話はNTT網から払い出されるIPv4のみを利用して、IPv6は自前のルータで収容してしまえばこれは円満に解決できるのでは……??という結論にたどり着くため、試しに IPv6 機能を無効にした NVR500 にてひかり電話が問題なく利用できるか検証してみる。

設定例

  • 雑な設定ですが、これでひかり電話だけであれば利用可能
  • 相当適当な設定ですので、なにか問題点があれば指摘していただきたいです
  • ひかり電話番号は必ず自分に割り当てられているひかり電話番号を指定する
  • 以下はナンバーディスプレイやキャッチホンなどの機能設定は一切行っていない
  • 設定終了後にIPv6の設定が紛れ込んでいないことを確認するために、必ず show config コマンド等を利用して確認すること!!
    • 設定後に「IPv6の通信がはじめはできるんだけど、少し立つと不安定になって、また回復する」みたいな事象が起こっている場合、NVRとIX間でIPv6の取り合いをしています!
> show config
# NVR500 Rev.11.00.41 (Tue Nov 19 17:36:45 2019)
# MAC Address : 00:a0:de:00:00:00, 00:a0:de:00:00:00
# Memory 64Mbytes, 2LAN, 1BRI
# Reporting Date: May 24 02:57:08 2020
ip lan1 address 192.168.1.1/24
ip lan2 address dhcp
ngn type lan2 ntt
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.1.101-192.168.1.200/24
dhcp client release linkdown on
analog arrive number display 1 off
analog sip arrive permit 1 myname
analog sip arrive myaddress 1 1 sip:[ひかり電話番号]@ntt-east.ne.jp
analog arrive number display 2 off
analog sip arrive permit 2 myname
analog supplementary-service pseudo call-waiting
analog extension emergency-call-dial type normal-number
analog extension dial prefix routing route-table=1 ngn lan2
analog extension dial prefix port=1 routing route-table=1 ngn lan2
analog extension dial prefix port=2 routing route-table=1 ngn lan2
analog call route-table 1 1
analog call route 1 * * ngn lan2 * line
sip use on
sip codec permit lan2 g711u

この設定で、ひかり電話をかけたり受けたりできることが確認できた。 これで、NTT網から払い出さえる使いみちのないIPv4アドレスを活用して、ひかり電話を利用可能となりった。そのため、PPPoE及びIPoEを自前のルータへ直収することができる。

最終的な接続形態は以下の通り。

こんなことは、できないよ!

NGN網からDHCPオプションにて、SIP設定を受け取っているので、IPv6ひかり電話ルータへ収容する場合は上位からSIP設定を送信する必要がある UNIVERGE IXのプレフィックス再委譲機能を利用すれば HGW を利用できると思うかもしれない。

しかし、UNIVERGE IXはDHCPオプションに対応していないため、利用することができない。

注) HGWも一応IPv4だけでもひかり電話を使うことができるが、「本来想定していない使い方」「DHCPv6-PDが受け取れないエラーが出力され続ける」等の挙動を行うため「できない」と定義しています。やり方はここには書きませんが、やるなら御自分の責任でやってください。

そのうち書くかもしれない

以下の要件を満たすエントリを書くかもしれませんが、現時点では見込みがない状態のため、多分書けない……。

  • どうしてもNTTから貸与されるHGWでひかり電話を収容したくて
  • どうしてもIPoEもPPPoEもHGWを経由せず自前のルータで直収したい

  1. NTTのHGW自体は一般家庭で利用する分には何ら問題がない性能を有しています。また、詳細な設定もかなりできるため 拠点間VPNを張りたい場合や、クライアントを数十台接続したいといった需要がない限りはHGWの利用で不自由はないと考えられます。