自宅回線をIPoE接続に移行

February 27, 2023

linuxAlpineLinux

はじめに

自宅ネット接続の光コラボ事業者を「楽天ひかり」から「OCN光」に変更し、それを機に自宅LANとインターネットの接続をPPPoEからIPoEに変更を試みました。

ちなみに光コラボ事業者を変更したのは、

  • 楽天が提供するサービスは契約したときの条件を契約期間中に一方的に反故にすることが多く、そのリスクを避けたかった
  • 「楽天ひかり」が3年契約と長期でリスクが大きいので、なるべく短い契約期間の事業者を探した
  • 「楽天ひかり」を継続してもそもそも楽天市場でほとんど買い物しないんで、SPUのメリットがない
  • 「OCN光」加入でOCNモバイルONEのスマホ料金が安くなり、実利がある

というのが主な理由。別に遅いからとかそんな理由ではない。

光コラボ事業者変更自体は、モバイル回線のMNPのようなかんじで、転出元の「楽天ひかり」から事業者変更承諾番号(MNP予約番号に相当)を取得し、それを転出先に伝えるだけで、特に工事とかはなくスムーズに移行できた。光でんわ(固定電話)の切り替えも転出先に「良きに計らえ」を伝えるだけで移転できた。拍子抜けするほど容易。契約更新月の期間中に切り替えたので違約金も発生せず、転出元、転出先の手数料それぞれ3000円がかかった総費用。でも、たまたま転出先の「OCN光」で4ヶ月分料金無料キャンペーンがあったので、手数料分は相殺されてお釣りが来る状態だった。

自宅LANの環境を一新したのを機に、それまでPPPoEでIPv4接続していたのをIPoEでIPv6接続するように変更してみた。噂ではIPoEは爆速だとか言われてるけど本当だろうか?

実際にIPoEで接続してみると、Webブラウザでサイトを閲覧する分には何も問題ないものの、自宅内サーバの挙動がおかしくなり、vpnで外から自宅内LANにアクセスすることもできなくなってしまった。これらの問題は最終的には解決に至ったものの、ハマったところもあり、IPoEをこれから導入する方も同様の問題に遭遇すること必至であるため、本記事で共有しておきます。

IPoEでvpnを稼働させたい場合はコチラ

IPoEでvpnを稼働させるに加え、固定電話をvpnクライアントから利用したい場合はコチラ

しかしそれにしても…IPv6の運用が開始されてもう20年、IPv4アドレスが枯渇してから10年位以上経過しても未だにスムーズにIPv6環境に移行できないとはトホホの限り。ほんと何やってるんだか…

ひかり回線のIPoE接続

従来のPPPoE接続は、元々モデムを使って電話回線でインターネットに接続していた時代にダイアルアップのプロトコルとして用いられたPPPを、そのままADSLやひかり接続に持ってきたもの。

それに対してIPoEは直接ethernetでインターネットに接続してしまおうとするもの。しかもIPv6で。IPv6が爆速といわれる所以は、接続方法がシンプルだからというよりは、ほとんどのネット接続はPPPoEなんでIPoE接続先が空いているから速いということなんだと思う。

「OCN光」の場合は、IPv6オプション付きで申し込んでもPPPoE接続として開通する。開通後改めてIPoEを申し込む必要がある。「必要がある」と書いてしまったが、筆者の場合そうだったということであり、光コラボ事業者変更が関係しているのかもしれないし、いきなりIPoEで開通する方法があるのかもしれない。

「OCN光」のIPoE接続の申し込み方法は、

ocnマイページにログイン

https://mypage.ocn.ne.jp/

お客様情報>お客様情報>2段階認証>契約中のサービスを見る>IPoEの提供状況

ここで、IPoE接続を申し込むと、筆者の場合2週間ぐらいで「IPoE」が「提供中」になった。「提供中」になったことのお知らせは特になかったが、光コラボ事業者変更前の「楽天ひかり」がその時点でまだ生きていて、「楽天ひかり」からIPv6オプションが解約になった旨のお知らせメイルが来た。この点は「楽天ひかり」のほうがまともな対応だと思う。

ocn_ipoe_1.png

「IPoE」が「提供中」になったことが確認できた後、HGW(筆者の場合RT-500KI)を再起動すると、HGWがIPoE接続専用のGWに生まれ変わっていた。なんとリモートでハードウェアが更新された模様。

ブラウザからHGWにアクセスすると、なんとメニュー自体がPPPoEのときとは変わっている!接続先設定(IPv4 PPPoE)が「未接続」で変更できないようになっている。そこほか、IPマスカレード設定とかVPN設定のメニューもなくなっている!IPoEに関する事前知識無しでいきなりIPoEに変更してしまった筆者はここで途方に暮れることになった。

rt500ki_toppage.png

サイトを見るだけなら、IPv4のサイトだろうがIPv6のサイトだろうが、HGWを再起動しただけですぐ使えた。この点は評価できる。

IPv6接続の確認

無事IPoEが開通したら、IPv6接続出来ているかを確認してみましょう。筆者宅の場合事業者は「OCN光」なのでOCN光サイトでIPv6接続を確認してみます。

https://v6test.ocn.ne.jp/
OCN IPoE接続環境確認サイト

このページを開き、赤い「確認開始」ボタンをクリック

ocn_ipoe_2.png

IPoE接続出来ていることが確認できました。

ちなみに、PPPoE接続の時は、IPv4接続環境が「PPPoE方式」、IPv6接続環境が「IPアドレスが確認できませんでした。」となっていました。

このサイトはOCN光が用意したものですが、汎用の確認サイトも存在します。

https://test-ipv6.com/
あなたの IPv6 接続性をテストしましょう。

https://ipv6-test.com/
IPv6-test.com is a free service that checks your IPv6 and IPv4 connectivity and speed.

https://ifconfig.io/
What is my ip address? - ifconfig.io

これらのサイトで確認しても同じ結果が得られます。

IPoEはほんとうに爆速なのか

以下のサイトで計測してみる

https://minsoku.net/speeds/contents/new
通信速度の測定(スピードテスト)

その結果

OCN光の測定結果の詳細(PPPoE接続のとき)

種類     IPv4接続                IPv6接続
接続方式 PPPoE                   IPoE(クロスパス)
Jitter   1.95ms                  0.53ms
Ping     20.5ms                  15.8ms
下り     65.9Mbps(速い)          66.59Mbps(速い)
上り     62.26Mbps(速い)         62.73Mbps(速い)

OCN光の測定結果の詳細(IPoE)

種類     IPv4接続                IPv6接続
接続方式 IPoE +                  IPoE
         IPv4 over IPv6          (OCNバーチャルコネクト)
         (OCNバーチャルコネクト) 
Jitter   0.57ms                  15.32ms
Ping	 17.1ms                  18.2ms
下り     65.07Mbps(速い)         65.99Mbps(速い)
上り     60.97Mbps(速い)         61.68Mbps(速い)

IPoEにしたからといって特に速くはなっていなかった。

筆者宅の場合、マンションタイプであり、受電室から自宅までは従来の電話線(メタル線)をVDSLで繋がっている。VDSLの仕様上の上限速度が100Mbpsなので、60Mbps台の速度は仕方がないというべきか。

速度はマンションタイプの場合VDSLがボトルネックとなり、IPoEの真価は発揮できないということ。トホホ。

マンションタイプの場合IPoEは制限ばかりが多く速度のメリットもない訳で、PPPoEに戻そうかと本気で考えている次第。

PPPoE接続に戻すには?

自宅LANにサーバを置いて外からアクセスしている場合など、いきなりIPoEにすると自由にポートが使えなくなってしまい途方に暮れるわけですが、実はipv4セッションを簡単にPPPoE接続に戻すことができます。

http://ntt.setup:8888/t
HGW配信済事業者ソフトウェア一覧

hgw_1.png

IPoE IPv4設定をクリック

●高度な設定>【IPv4通信設定】>[編集]>ステータス

hgw_2.png

「無効」を選択する。

HGWを再起動すると、

http://ntt.setup/
HGWトップページ

トップページに「接続先設定(IPv4 PPPoE)」が復活しているので、メインセッションをログインするとIPv4 PPPoEが再度有効になり、静的IPマスカレードが再び使えるようになります。HGWに内蔵するVPN機能も復活します。

ただし、この状態はIPv6対応のサイトはIPoEで接続されるものの、大半を占めるIPv4対応サイトはIPv4 over Ipv6ではなくIPv4 PPPoEで接続されてしまうので、回線速度向上のメリットは享受できません。筆者のようなフレッツマンションタイプ契約の場合はIPoEによる回線速度向上は見込めないのでこれでもいいかもってところ。

VPNの復活

PPPoE接続のときは以下の記事の方法や、HGW内蔵のVPN機能により、容易にVPNを利用できました。

https://saturday-in-the-park.netlify.app/alpinelinux/07_vpn/
Alpine Linuxにvpnを入れる

自宅のネット回線をIPoEにして最も絶望的になることは、PPPoEのときは使えていたVPNが使えなくなることではないでしょうか。IPoEではVPNが使えないということではなく、IPoEではポートを自由に使えないのでPPPoEのとき使っていたL2TP/IPsec方式のVPNが使えないというだけのことです。

IPoEにした後でも、前節で解説したようにIPv4だけPPPoEに戻せば、ポートが再度使えるようになり、L2TP/IPsec方式のVPNも使えるようにすることが可能です。ただし、IPoEによりせっかく速くなった回線が遅い回線に戻るという副作用があります。

IPv4をPPPoEに戻さずにVPNを利用するには、SoftEtherVPNからOpenVPNを利用するのが容易です。この方法は以下の記事にまとめています。

https://saturday-in-the-park.netlify.app/alpinelinux/openvpnwithsoftetrervpn/
SoftetherVPN ServerをIPoE(IPv6)環境で動かす

OpenVPNでは、VPNクライアントはVPNサーバが置かれたネットワークとは別のサブネットになってしまいます。そのため、同一サブネット上でしか動作しない機能(例えばひかり電話の内線機能)はうまく動作しません。ひかり電話の内線機能は上手にルーティングしてやれば繋がるのですが、SoftetherVPNでは残念ながらそこまで手を入れることはできないようです。

そこで、自前で素のOpenVPNサーバーを動かし、ひかり電話の内線機能を使えるようにしたのが以下の記事です。

https://saturday-in-the-park.netlify.app/alpinelinux/openvpnusingdockercompose/
OpenVPN Serverをdocker composeで動かす

この方法でIPoEにおけるVPNの不満は全て解決することでしょう。

IPoE接続ハマりポイント

Webサイトを見るだけならPPPoE接続だろうがIPoE接続だろうが何ら変わりありません。回線速度向上のメリットを享受できるなら積極的にIPoE接続に変えるべきです。IPv4グローバルアドレスの無駄遣いも減るし。

でも自宅LAN内にサーバを立てて、外部からアクセスする必要があるなら、何も考えずにIPoE接続に移行してしまうと途方に暮れることになるかもしれません。そこで、筆者がハマった点を共有しておきます。

モバイル環境

見落とされがちな点は、モバイル環境(スマホの契約先)がIPv6対応していないと、スマホから自宅サーバのIPv6アドレスを直接指定してのアクセスはできないということ。

4大キャリアは当然大丈夫でしょうけど、ショボいMVNOではIPv6対応していないとこともあります。筆者が利用するOCNモバイルONEはMVNOでは大手だという認識ですが、実はショボくてIPv6対応していません。

自宅のサーバをIPoEでIPv6対応してしまうと、ショボいMVNO回線からでは自宅のサーバにアクセスできなくなってしまう場合があります。

ご自身の契約しているモバイル回線がIPv6対応か否かは、Wifiを切った状態でスマホのブラウザから

https://test-ipv6.com/
あなたの IPv6 接続性をテストしましょう。

のような確認サイトにアクセスするとわかります。

スマホにNetwork Analyzerというアプリをインストールしてもわかります。

network_analyzer.png

IPv6対応のモバイル回線の場合、端末のIPv4アドレスとIPv6アドレスが表示されますが、

IPv6Client.png

IPv6非対応のモバイル回線では端末のIPv4アドレスしか表示されません。

IPv4Client.png

Wifiアクセスポイント

WifiアクセスポイントのIPv6化を忘れずに!

筆者の場合レアな機器(Google Wifi)を使用しているので参考にならないでしょうが、どのWifiアクセスポイントでもIPv6有効/無効を切り替えるスイッチがあるので有効にしておきます。

IPv6Settings.png

自宅サーバーのIPv6対応

筆者宅の自宅サーバーはGHUWI LarkBox上に立てたAlipne Linuxサーバーです。

IPv6のことは全く頭にないままサーバーを整備していったので、IPoE環境に変えたところIPv6に関する不具合が露呈しまくりました。とりあえずサーバの動作に支障をきたさないように最低限のIPv6対応をしておきます。

まずは/etc/hostsのlocalhostの定義をIPv6化

/etc/hosts
127.0.0.1       larkbox.my.domain larkbox localhost.localdomain localhost
::1             localhost localhost.localdomain

IPv6対応後

/etc/hosts
127.0.0.1       larkbox localhost
192.168.1.xx    larkbox.home.arpa
::1             localhost ipv6-localhost ipv6-loopback localhost.localdomain
fe00::0         ipv6-localnet
ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts

次にwlan0のネットワーク設定

サーバのIPv4アドレスは192.168.1.yy
サーバのIPv6アドレスは2400:xxxx:xxxx:xxxx::yy

としました。 上から降ってきたIPv6プレフィックスは2400:xxxx:xxxx:xxxx::/56

/etc/network/interfaces
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet dhcp
        hostname larkbox

IPv6対応後(alpine-linux 3.12以下の場合)

/etc/network/interfaces
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
        address 192.168.1.yy
        netmask 255.255.255.0
        gateway 192.168.1.1
        hostname larkbox
iface wlan0 inet6 static
        address 2400:xxxx:xxxx:xxxx::yy
        netmask 64
        gateway 2400:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx # Grobal ipv6 address

IPv6対応後alpine-linux 3.13以降の場合)

/etc/network/interfaces
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
        address 192.168.1.yy/24
        gateway 192.168.1.1
        hostname larkbox
iface wlan0 inet6 static
        address 2400:xxxx:xxxx:xxxx::yy
        netmask 64
        gateway 2400:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx # Grobal ipv6 address

以上の変更によりサーバーにIPv6のグローバルアドレスが割り当てられました。

$ ip a
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.yy/24 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 2400:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
       valid_lft 14360sec preferred_lft 12560sec
    inet6 2400:xxxx:xxxx:xxxx::yy/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

マイdnsのIPv6対応

筆者宅では自宅LAN内機器の名前解決をdnsmasによるマイDNSサーバで行っています。ちなみに自宅ドメインは慣例に従いhome.arpa。

IPv6化するには、docker composeのextra_hostsに自宅LAN内機器のIPv6アドレスを併記すればOKです。

docker-compose.yml
version: "3"
services:
  dns:
    build: .
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    restart: always
    dns:
      - 8.8.8.8
      - 8.8.4.4
      - 163.139.21.197
      - 163.139.230.168
    extra_hosts:
      - "rt-500ki.home.arpa:192.168.1.1"
      - "rt-500ki.home.arpa:2400:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx"
      - "centos7.home.arpa:192.168.1.2"
      - "centos7.home.arpa:2400:xxxx:xxxx:xxxx::2"
      - "larkbox.home.arpa:192.168.1.3"
      - "larkbox.home.arpa:2400:xxxx:xxxx:xxxx::3"
      ...
    cap_add:
      - NET_ADMIN

変更後コンテナを再起動。

IPoE化で自宅LANのIPv6プレフィックスも変更になったので、HGWのDNS設定も修正

詳細設定>DNS設定>[ ローカルドメイン問合せテーブル ]>エントリ番号1>編集

[ ローカルドメイン問合せテーブル エントリ編集 ]
エントリ番号: 1
ドメイン名: home.arpa
プライマリDNSサーバアドレス: 2400:xxxx:xxxx:xxxx:0:0:0:yy
セカンダリDNSサーバアドレス: 

my_dns_1.png

まとめ

自宅のネット回線をIPoEに変更した際の自宅サーバーの変更点をまとめました。IPoEでは自由にポートを使うことができないので、何も考えずにいきなりIPoE化してしまうと、外から自宅LAN内のサーバにアクセスしている場合いろいろと支障が出て途方に暮れてしまいます。そんなとき本記事が解決のヒントになればと思っております。鬼門のVPNも本記事の方法で解決できると思います。

IPoEは速いというのが定説ですが、フレッツマンションタイプの場合VDSLがボトルネックとなり速くはならない場合もあるのでその点も共有しておきます。


Written by questions6768 who lives in Uji, Kyoto.