すんごい久しぶりの投稿になってしまった。

今回はインターネット接続に纏わるすごい短い話。

DSLite方式でIPoEしてたら任天堂スイッチが接続できなくなった!

家族が使うSwitch(任天堂の方)がInternet接続できないという苦情があった。

自宅には2つSwitchあったのだが、両方とも接続できなかったため調査開始。

試しにPPPoE接続に切り替えてみた所正常に通信ができることが分かった。

IIJmioが提供するIPoEサービスはインターネットマルチフィード社が提供するtransix IPv4接続(DS-Lite)を使用している。このCGNATで相性問題?が発生しているようだった。

基本的には回線速度が早いIPoE接続を使いつつ、特定要件の場合のみPPPoE回線に切り替えていくことにした。

今回はその手順に関するメモ。

なおこれに関しては公式ページの注意事項にも書かれている

DS-LiteによるIPv4接続をご利用の場合、NATを利用して通信を行います。NATを利用した環境では、一部のソフトウェアやサービスが正常にご利用いただけない可能性がございます。

解決方法

解決方法として以下の2つを検討した。

今回は後者を選択した。理由は

実装

以前の投稿から画像を拝借。

全体図

NVR700Wでfilterを用意し、例えばVLAN10(192.168.10.0/24, WiFi用として運用中)のうちの一部(例えば192.168.10.64/26)のデフォルトルートをpp 1(PPPoE Interface)に向ける感じにする。

ip route default gateway pp 1 filter 500001 hide gateway tunnel 1 filter 500005 hide gateway tunnel 2 filter 500005 hide
ip filter 500001 pass 192.168.10.64/26 * * * *
ip filter 500005 pass * * * * *
dns server select 500001 1.1.1.1 8.8.8.8 any . restrict pp 1

ip routeコマンドは記述された順に評価されていく(9.1.7 IP の静的経路情報の設定)為、例えば192.168.10.65のホストはpp 1にトラフィックが向く。一方で192.168.10.2のホストはpp 1のフィルタにマッチしない為、次のgateway(ここではtunnel 1)が選択される。

IPoE接続の場合IPv6がenableな為、dnsはipv6のものを使っている。しかしPPPoEの場合IPv6は使用できないため(確かIPv6 IPoE接続を使用している場合IPv6 PPPoEは無効化されたような気がする)、別途public DNSを指定している。

これにより

弊環境では利便性を考慮して各NW(/24)の後半(/25)はDHCPによるIPアドレス払い出しを行っているため、雑に接続した場合は自動的にIPoEのinternet出口を使い快適なインターネットライフをご提供。もしPPPoE接続を明示的に使いたい場合は192.168.10.64/26からIPアドレスを払い出し固定IPアドレスとして機器をセットアップすればノープロブレム!

もしかしたら

そもそも指定したPortのみの通信に限定されるとかだったら同じくインターネットマルチフィード社提供のtransix IPv4接続(固定IP)を使ったらこんなことをしなくても良いのかなとも思っている(まだ試してはいない)。

これを使用したサービスは私が知る限りインターリンク社のフレッツ接続 ZOOT NATIVE(ズットネイティブ) IPv4固定IP1個のみ(だいぶニッチなニーズなのだろう)。いつか試してみたい。