あらすじ
IPv4 と IPv6 のインターネットが混在する世界。
この v4 → v6 転換期で混沌を極めたネットワークの中でポートを開けるまでのお話
(ほぼ個人的な設定備忘録)
環境
契約しているのはSo-net光プラスマンション東日本
v6プラス(MAP-E)対応!!
これはPPPoEより比較的混雑してなくて速い!
当時ワイ「はぇ~~~~速いんだ!じゃあこれで!」
...
詳細や歴史的背景は後述しますが、この環境では任意のポート開放はできません。
まぁこの記事を読んでるってことは知ってますよね。
v6プラス接続環境においての開放可能なポートの調査
ちなみにv6プラスで自分で開放できるポートは以下アルゴリズムで求めることが可能です。
でも、ググると自分のIPv6アドレスから開放可能なポートを調べてくれる便利なサイトがあるから
わざわざ計算しなくても良いよ。
AAAA : BBBB : CCCC : DDDD : EEEE : FFFF : GGGG : HHHH
っていうIPv6アドレスの場合、4ブロック目の部分の頭文字2文字を使う。ここでは「DD」のこと。
X=1~F、Y=0~Fとすると開放可能なポートは以下の範囲になります。
0xXDD0 ~ 0xYDDF
開放可能ポート(HEX) |
---|
1DD0 ~ 1DDF |
2DD0 ~ 2DDF |
... |
EDD0 ~ EDDF |
FDD0 ~ FDDF |
def print_openable_port(v6_address):
address_block = v6_address.split(':')
block4 = address_block[3][0:2]
for X in range(1,15):
lower = int("{0:x}{1}0".format(X, block4), 16)
upper = int("{0:x}{1}f".format(X, block4), 16)
print("{0} ~ {1}".format(lower, upper))
要件
IPoE接続による恩恵は最大限受けて、任意のポート開放を行いたい
実現する方法
考えられる方法は以下のいずれかだと思います。
- ルータ2台で実現する
- YAMAHAルータ RTX830 で実現する
ルータ2台で実現する(おすすめ)
家庭用ルータを2台使ってゴリ押す方法です。必要機材は以下3点です。
- v6プラス対応ルータ1台 (L3SW-A)
- v6プラス非対応(もちろん対応でもいい)ルータ1台(L3SW-B)
- スイッチングハブ1台 (L2SW)
以下を構成します。
- L3SW-AはIPoE(VNE経由)でインターネットへ接続します。
- L3DW-BはPPPoE(ISP経由)でインターネットへ接続します。
- IPアドレスの払い出しがおかしくなるので、ここではDHCP機能はL3SW-Aに任せ、L3SW-Bでは無効にしておきます。
開けたいポート設定はL3SW-Bに対して行います。
ネットワークの設定は以上です。これ以降配線を変える必要はないです。
ゲートウェイの切り替え時はクライアントで決定してあげるだけです。
特に指定しないと、デフォルトゲートウェイはIPアドレスを振ってくれたルータに設定されると思いますが、
意図通りにならないかもしれないので、手動で設定しておきます。
IPoE接続でインターネットに出たい場合は、
デフォルトゲートウェイを192.168.100.1に設定します。
任意のポートを開放したいクライアントは、PPPoE接続でインターネットに出る必要があるので、
デフォルトゲートウェイを192.168.100.2に設定すれば良いです。
メリット
- 安い。理解しやすい。
デメリット
- クライアントのデフォルトゲートウェイを静的に決めるのが手間。
- 1クライアントに対して特定のポートだけPPPoEでそのほかはIPoEで、とはできない。
- ダサい。足が遅そう。
RTX830 で実現する
業務用ルータを使う。最終手段。
フィルター型ルーティングにより、開放するポートの接続のみPPPoEで行うようにします。
以下を構成します。
手順は次の通りです。
1.接続優先度をIPoE接続、PPPoE接続の順にしておきます。
以下ページの②までの手順を参考にIPoE接続とPPPoE接続を併用するためのフィルター設定をします。
これによりIPoE接続優先のPPPoEとの同時接続を行います。
【RTX830】IPoE v6プラス+IPv4 PPPoEを併用してVPNする話。|STK|note
ヒント
上記ページのフィルター番号で接続設定をしておくことをオススメします。
後述する拠点間VPNも行う場合、GUI上で2つのプロバイダー接続を行うと、
自動で設定されるフィルター番号のバッティングが発生するおそれがあります。
デメリット
- 高すぎる。私が入手したときは2台で6.8万円しました。(2023年2月現在)
メリット
- ルータが1台で済む。
- 特定のポートに対してのみゲートウェイを変えるということができるので、複雑な設定が可能となる(YoutubeはIPoE、P2PゲームはPPPoEなど)
- かっこいい。良い匂いがしそう。
雑談~~~~~~
v4とv6が混在している日本の環境
現在のインターネットでは、IPv4 と IPv6 という、2種類の異なる方式のIPが利用されています。
IPv4を使って構築されているIPv4インターネットと、IPv6を使って構築されているIPv6インターネットという、
互いに異なる方式の2種類のインターネットが存在しています。
日本ではユーザが新規申し込みを行って提供されるサービスは、
NTT東西がIPv6を使って構築した通信網であるNGN網です。(2019~)
NGN網は、IPv6 インターネットとは切り離された閉域網になっています。
これは日本電信電話株式会社等に関する法律(NTT法)による制限により、NTT東西はユーザに対して直接インターネット接続サービスを提供できないので、
フレッツ網はIPv6インターネットとは直接やり取りができないような設計になっています。
IPv4 PPPoE によるv4インターネット接続
ん?提供されるフレッツ網はIPv6閉域網なのにIPv4インターネットにはどうやって行くんだって話なんですけど、
そこでPPPoEという技術により、上記フレッツ網をトンネリングしてISPと接続し、その後ろにあるIPv4インターネットに接続します。
IPv6 IPoE によるv6インターネット接続
IPv6 IPoE はISPがIPv6による通信データを直接扱わないという特徴があります。
NTT東西と契約してIPv6 IPoEによるインターネット接続を提供するのは、
VNEです。ISPは、VNEからIPv6 IPoEインターネット接続サービスの卸提供を受けて
自社のユーザに対してこれを自社のサービスとして提供します。
誰のせいでポートを共有するハメになっているのか
1分で描いた図が以下です。
IPv6トンネルの割当にMAP-Eという仕組みが使われており、ベースにNATが使われているらしい。
結果、ポートの共有も行われるハメになった。と。
v6プラスって何
v6プラスは、VNEであるJPNEが提供する、IPv6 IPoEによるインターネット接続サービスにプラスして、
IPv4インターネットへの接続サービスも使えるというサービスです。
v6プラスでIPv4パケットを運ぶIPv6トンネルには、MAP-Eという方式が採用されていて、
JPNEはそのパケットをBorder Relayという機器を通すことでIPv4インターネットへ接続できます。
RTX830 2台による拠点間VPNも IPoE と PPPoE併用環境でできる....ってコト?!
できます。
L2TP / IPSec によるVPN接続にはudpでポート500, 1701, 4500 を開放する必要があるけど、
もちろんこれもv6プラスだと開放できないと思うので、これらをフィルターしてあげればOK。
【RTX830】IPoE v6プラス+IPv4 PPPoEを併用してVPNする話。|STK|note
フィルター型ルーティングの適用タイミングっていつ
最初、フィルター設定をPPPoEゲートウェイに設定したところで、PPPoEゲートウェイに接続優先度的に到達するのか...???
初期に到達するのはIPoEだから、そこにフィルター設定を設けるべきなのでは...
とか思ってたけど全然適用タイミングが違った。
公式リファレンスに記述がありました。そのまま引用します。
NATディスクリプター機能 概要
NATディスクリプター機能が動作するタイミングは、パケットをインターフェースへ送信するときと、インターフェースから受信するときです。
インターフェースの種類は問わず、LAN、PP、TUNNELインターフェースで動作します。
PP Anonymousインターフェースでも動作しますが、相手ごとにポリシーを変えることはできないので、使い方は限られます。
フィルタリングやルーティングとの位置関係は下図のようになっています。
特に、フィルタリングとNATディスクリプターの位置関係が重要です。
インターフェースへ送信するパケットは、先にフィルタリングの処理を受けてから、NATディスクリプターの処理を受けます。
逆に、受信するパケットは、NATディスクリプターの処理を先に受けます。
つまりout方向にパケットを送信するときは、送信先インタフェースの決定前にフィルターは一括で確認している。
逆にin方向では先にパケットのルーティングを決定してからフィルタを適用する。
参考
NATディスクリプター機能 概要
【RTX830】IPoE v6プラス+IPv4 PPPoEを併用してVPNする話。|STK|note
【設定記録】ヤマハルーターのRTX830 ポート開放設定|リスク・マネジメント委員会@一般社員|note