iptables と ipset で鎖国ルーターを作る

副題: Splatoon 海外勢に慈悲はない(2 に間に合って良かった)

1年ちょっと前に Planex が「鎖国ルーター」を発表しました。あまり話題にならなかったのですが、実態は日本国内および米国割り当てのIPアドレス帯域との通信のみ許可するルーター、というものです。

個人的には Splatoon 海外勢のラグの酷さに辟易していたこともあり*1、コンセプトは面白いよねと思っていたのですが、流石に自腹切って買うほどのものでもないかなぁと思っていました。

が、 Splatoon2 の発売が近づき、流石に次期作でもラグに悩まされるのは不愉快だったので、手元にあった浮いた Linux 端末でさくっと同じようなものを作ってみました。

コードはこちら: tamias / regionalIPFilter / source / — Bitbucket

細かい話は bitbucket に書いているのでここでは簡単に。

ホワイトリスト

Wii UならびにSplatoonは起動時に

  • ecs.wup.shop.nintendo.net
  • nppl.app.nintendo.net
  • account.nintendo.net
  • ias.wup.shop.nintendo.net
  • api-us.olv.nintendo.net
  • olvjp.cdn.nintendo.net
  • mii-secure.account.nintendo.net
  • nus.wup.shop.nintendo.net
  • api-jp.olv.nintendo.net
  • npts.app.nintendo.net
  • discovery.olv.nintendo.net

の各サーバー群と通信を行います。DNS Lookupすればわかりますが、これらのサーバー群は

のいずれかです。これらの通信先と国内割り当てIPリストを元に、ホワイトリストを作成するという流れになります。

ブラックリスト

Splatoon では「テザリングキッズ」とも呼ばれる、携帯回線経由で対戦を行おうとする一団がいます。常識的に考えて、いくらLTE世代といえども無線回線では遅延が非常に大きく、まともな対戦は望むべくもないことから、最低限3大キャリアからの接続を遮断します。対戦中にパケットキャプチャをしている限り、MVNOで接続するユーザーもいるのですが、Wii U買う前にやることあるだろうにという感じですね。

docomo

ISPとしてmopera/spmodeがあります。一応半公式に使用する帯域情報が公開されていますが、念には念を入れてwhoisからIPアドレスの割り当て情報を引っ張ってきます。docomoの携帯網への割り当てアドレスは「MAPS」というnetnameで管理されているようで、APNICのwhoisサーバーから根こそぎ引っ張ってきます。

KDDI(au)/Softbank

Whois からは携帯網限定で検索を行うことができないため、個人的に調査したモバイル帯域のリストを置いています(当然無保証)。

*1:EUや南米、西アジア諸国なんてRTTが300 ms超えとか余裕ですしね、死体からインク飛び散るのはほんと辛い