たまにネットが繋がらないと言われて、人のうちにお邪魔することがある。まぁ繋がればいいやなのだが、ホームラボとなるとちょっと話が違ってくる。また、今よほどのことがない限り実はIPv6が使えるようになっている。例えば、携帯の基地局もほとんどがIPv6のIPが振られる。感覚的には、今やIPv4しか振られない基地局の方が少ないのではと思う。
というわけで、実はIPv6が身近になっているのだが、IPv6が使われていないケースが多い。プロバイダーの設定資料もその観点で書かれていないから。ただ、何も考えないで設定した人の方がIPv6の設定ができているケースもある。(PPPoEの設定は書いてあるけど、運良く設定を忘れているパターン)
また、IPv6が速いという話もあるが、予想だが、IPv6を使っている人が少ないので帯域が空いているだけで、IPv4が廃れたら混んでくるんじゃないかと思う。(携帯の3Gが速く感じるのは、みんな4Gや5Gを使っているため)
閑話休題
だいぶ前にまとめてあったのだが、改めて接続形態をまとめてみた。ちなみにIPv6で接続できているかどうかは、IIJのページを参照するか、https://ifconfig.meへアクセスをしてみるとわかる。またIPv6でアクセスしていてもちゃんとhttps://www.yahoo.co.jp/などのIPv4のページにアクセスができるはず。(できなければルータの設定がおかしい。)
家庭で想定されるインターネット接続形態フレッツ編(自分調べ)
各パターン解説
A:これは、まずないだろう。まず、ONUだけを借りる時は、ルータを持っているかを確認される。ない場合は、ルータをレンタルするので。ただ、試しに接続してみると、フレッツスクエア(NGN)へ接続できる。NTTでIPv6オプション、プロバイダーでIPv6 IPoEの契約をしていると、IPv6をサポートしているサイト(googleとか)だけには接続できる。
B:実はこのパターンが多いかもしれない。接続案内には、PPPoEの設定が書かれているので、普通に入れてしまう。さらに、IPv6に関しては、v6プラスなどは別オプション(たいてい無料)で申し込んでいない。あくまでも追加オプションなので。ifconfig.meにアクセスすると、IPv4が表示されるパターン。
C:NTTでv6オプション、プロバイダーでIPv6IPoE 例えばv6プラスなどを契約して、PPPoEの設定を設定していないパターン。実は、一番資料を読み込んでいる人。ただし、IPv4変換サービスはポートが指定されて通信されるので、IPv4のサーバ的なものは建てられない。一般のご家庭で一番望ましい設定。
D:知らずとやっている人とわざとやっている人のパターン
知らずとやっている人:ブロードバンドテストでなぜかスピードが出ない。IPv4は、PPPoE経由で出て行っているから、そんなにスピードの体感は出ないかもしれない。
わざとやっている人:ゲームサーバへの接続などクライアントとサーバとのポート指定でのIPv4通信が必要となる。あるいは、監視カメラなど自宅に接続をする必要があるケース。CのIPv6 IPoE経由だと、インターネット側からIPv4の着信ができない。インターネットへの個別IPの露出は、PPPoEでもらった1つのIPv4のみ。
以下、EdgeRouterなど逸般の誤家庭的な機材を利用している場合
E:v6プラスなどはEdgeRouterでサポートされないので、IPv4変換サービスが使えない。よって、IPv4でしか通信ができず、インターネットへの個別IPの露出は、PPPoEでもらった1つのIPv4のみ。まぁ、普通のラボではこれで済む。
F:IPv4とIPv6を分けて設定する。IPv6は、プロバイダーから降ってくるIPv6を再分配しなきゃならない。nddppdを使って再分配。ただし、EdgeRouterには、ndppdが無いので、ソースからクロスコンパイルしてバイナリを作る必要がある。(NECの業務用のルータならこんなことをしなくてもいいらしい。)さらにEdgeRouterのIPv6のファイヤーウォールの設定は空なので設定を追加する必要がある。ここまでやればIPv6のファイヤウォールを設定すれば、個別のサーバをIPv6限定でインターネットへの露出ができる。また、この構成ではないと、分割したサブネットにIPv6を配ることができない。
家庭で想定されるインターネット接続形態Nuro編(自分調べ)
G:何も考えないで設定するとこのケース。問題はない。
一般のご家庭向けの設定。ホームラボとかがない場合は、これでOK。IPv4も露出できるので監視カメラとかも使える。
H:フレッツのEのケースと同じ。
IPv4でしか通信ができず、インターネットへの個別IPの露出は、1つのIPv4のみ。まぁ、普通のラボではこれで済む。
I:フレッツのFのケースと同じ。逸般の誤家庭向け設定。
IPv4とIPv6を分けて設定する。IPv6は、プロバイダーから降ってくるIPv6を再分配しなきゃならない。nddppdを使って再分配。ただし、EdgeRouterには、ndppdが無いので、ソースからクロスコンパイルしてバイナリを作る必要がある。(NECの業務用のルータならこんなことをしなくてもいいらしい。)さらにEdgeRouterのIPv6のファイヤーウォールの設定は空なので設定を追加する必要がある。ここまでやればIPv6のファイヤウォールを設定すれば、個別のサーバをIPv6限定でインターネットへの露出ができる。また、この構成ではないと、分割したサブネットにIPv6を配ることができない。
ホームラボをもっていて、LAN内にIPv6アドレスを割り振りたい強引な技
ONUのインタフェースやNuroのルーターのLAN側とLAN側を接続をする。
つまり、IPv6の通信をルータをスキップしてしまう。一見ルータが無意味に見えるが、IPv4は、ルータ経由、IPv6はルータを飛ばしてダイレクト接続になる。
また、複数のサブネットがある場合は、ONUと直接接続できるラインを全てのサブネットに回す必要がある。
この問題点は、途中にIPv6のファイヤウォールがないので、サーバやクライアント自身にファイヤウォールを設定しないといけないという大問題がある。
よってIPv6のアドレスを自由にコントロールできるようにするには、自宅内ルーターでEdgeRouterのようなndppdでIPv6をばら撒く必要があるが、FWの設定をすれば(しなきゃ全露出)、パブリックIPv6としてIPv6アドレスが露出(サーバとして利用)できる。プレフィクス/60の場合で295京個!!!EdgeRouterでサブネットをポートやVLANで分けてプレフィックスを/64にした場合でも1.8億個!!!
ただし、IPv6アドレスは、全てのデバイスにばら撒かれてしまうので、手元の、家族のスマートフォンまでIPv6を持つことになる。(だからIPv6のFWが必要。)そのIPv6アドレスは、EUI-64というMACアドレスから計算されたIPv6アドレスなので端末の特定ができてしまう。たいていのパソコンやスマホは一時的IPv6アドレスを降り出して使うのでIPv6アドレスを直に晒されることはないが。
サーバOSの場合は、一時IPv6アドレスは使われないので、サーバとしてIPv6アドレスを使うのであれば、静的なIPv6アドレスを設定したほうがいい。自分にあるいは、サブネットに割り当てられているIPv6アドレスから適当なアドレスを指定する。(アドレスの衝突はゲートウェイとかちあわなければ、あまり考えなくてもよい。他のデバイスは、EUI-64(MACアドレス)で割り当てられているので衝突をすることはない。また、衝突した場合は、OS側がIPv6アドレスを設定させてくれない。)
ちなみに、どの場合であれ、IPv4はどうやっても1個しか割り当てられないので、貴重なIPv4 1個は、http/https用リバースプロキシ用のアドレスにして、1VMあるいは1コンテナでリバースプロキシに仕立ててあげれば、IPv4/IPv6のWebサーバは建て放題となる。
自分的にIPv6がなぜ必要だったか?
IPv6では、NATとかVPNを使う必要がない。理由は、IPv6はパブリックIPで通信することができるから。プライベートIP的なものもあるが、イントラでしか振られない別のIPv6アドレスなので。また、パブリッククラウドと自分のラボを接続するとき、以前なら、高いパブリックIPv4アドレスをクラウドからレンタルして、手元でもBGPの構成を組む必要があった。(AWSやAzureは、EdgeRouterのコンフィグを作ってくれるので手間というほどではないが。)また、パブリッククラウドとのサイトVPNは設置するだけで月額5000円もかかる。AWSは帯域をフルで使えるが、Azureだと100Mpsしかでない。(高速のは高額)
パブリッククラウドのサブネットはIPv6が使えるので、ファイヤーウォールだけで自サイトと接続ができてしまう。
自サイトでIPv6が使えれば、クラウドとの接続が無料になる。EdgeRouterのndppdのコンパイルがちと面倒だったが。
また、ソフトウェアがIPv6に対応している必要があるが、今、IPv4しか使えないというソフトウェアのほうが実は少ないんじゃないかと思うが、一応確認したほうがいいかも。
さて、これが一般的になるのはいつ頃になるだろうかと思う今日この頃。この手のものが普及するのにあと少なくとも5年はかかるんだろうなぁ。
最後にEdgeRouterだが、以下がおすすめ。というか、今更EdgeRouterかぁという気がしないのでもない。ファームウェアの更新もパタリと止まっている。もっといい解決策がありそうだが、ある程度はGUIで設定ができて、シェルでも設定できる。それにあまり壊れない。熱暴走で死ぬこともあるが、設置場所が悪すぎるだけ。ちなみに、EdgeRouterはいつ入手できなくなるかわからないので、欲しい!と思った時に、値段に納得すればゲットしておくことをおすすめする。
EdgeRouter X
安い時は、US価格で5000円、日本でも9000円くらいだったのだが、今は2万円近くする。ちなみに、CPUはそれなりので、注意。特にVLANをたくさん使う場合は、おすすめしない。また、Web Proxyとかも使えるが、中のストレージの容量が異様に小さいので、おすすめしない。特徴として、ネットワークスイッチがインタフェースになっているので、スイッチングハブにもなったりする。また、それが仇で、ルータを通るパケットが余計な経路を通る。また、MTU9000は設定できないので注意
EdgeRouter 4
VLANを大量に作るのであればこっち。というか、これが一番おすすめ。約3万円。この値段差ならあり。CPUパワー、ストレージの容量もかなり余裕がある。また、ネットワークポートがスイッチではないので、ルータを通るパケットは余計なところを通らない。EdgeRouter4の下に普通にスイッチングハブを置いておけばいい。MTU9000の設定も可能。
さらに、EdgeRouterXとEdgeRouter4では設定ができるハードウェアオフロードの設定も異なり、CPUアーキテクチャも異なるので注意。特にndppdのコンパイルの時は注意。
EdgeRouterX:mipsel
EdgeRouter4:mips64
同じMIPSでもEdgeRouterは32ビットでリトルエンディアン。EdgeRouter4は64ビットで確かビッグエンディアン。
他の対応策は、マルチNICのNUCを使うという手もある。
インテルCPUなので、UbuntuやRouter OSを入れて使える。メモリやSSDもNUC同様交換、増設ができる。がしかし、壊れた時や設定をミスしたときに大変。工場出荷状態に戻すのではなく、再インストールになるので。ルータという便利さが全く受けられない。