IPv4とIPv6の併用はこうする!ポート開放も考慮した我が家のネットワーク改造
こんにちは!
2019から2020の年末年始のおやすみの多くの時間を、自宅ネットワークの設定変更に費した結果、色々学んで大満足の、しずかなかずしです。
みなさんは、ホームネットワークに何がつながってますか?
一昔前は、ブロードバンド回線などと仰々しい名前で呼ばれていた、一般家庭の固定ネットワーク回線。スマホの普及で、
「別に家にネットワークなんかなくても、スマホのキガ増やせばスマホだけで十分じゃん!」
なんて考えている人も多そうな時代になりました。そんな時代でも、「光回線」というキーワードで、あれやこれやとパッケージにして売り込んでくる業者さんの話、結構よく聞きますね。
私の自宅は以前から、公称1Gbitの光回線が引かれています。ネットワークも電話も、そして、テレビのデジタル放送まで、全てを光回線で賄うパワーユーザーです。
我が家のホームネットワークは、WiFiルーターが設置されており、
パソコン2台、スマホ3台、タブレット1台、ネットワークにつながる据え置きスピーカー1台、スマートスピーカー2台、プリンタが大小2台、スマート電球3個、スマートコンセント1個、スマート鍵1個、スマートテレビ1台、Apple TV1台、Fire TV stick 4k 1台、
などなどがつながる、一大ネットワークシステムになってしまっている状態。既に、管理不能なこのようなホームネットワークをがらっと変える大変更を年末年始に行いました。
目的は、我が家のホームネットワークをIPv4からIPv6に乗り換え自宅サーバも運用する。なぜなら、IPv6なら速い(?後述)から。ところが、IPv6だと自宅サーバーの運用がくせ者でした。いわゆるNAT問題やポート開放といった話。
という訳で、本日は我が家のネットワーク大改造の奮闘記です。
PPPoEをやめてIPv6に
我が家が契約しているインターネットサービスプロバイダ(ISP)は、so-netです。いや、正確にはso-net「でした」。今は、ドコモ光とともにso-netから事業が売られて、元のso-netユーザーは知らないうちにPlalaのユーザーになってしまっていました。実は、1年以上前、単なる興味からIPv6のサービスに加入(無料)しており、放ったらかし。それをこの度有効にしようと考えました。
IPv6というのは、IPプロトコル仕様バージョン6。プロトコルが何かわからない方は、こちらの記事に詳しく記載しております↓。
プロトコルとは、要するに、インターネットに接続された機器(スマホとか、パソコンとか、サーバーなど)が通信するときの手順の事です。
かんたんに言うと、スマホが、とあるサーバーの情報が欲しいときに、
「誰がそれ持ってるか教えてー」
「はい、ここです」
「〇〇のデータちょうだいー」
「はい、これです」
みたいなやり取りを機器同士がするのですが、その時に使う合言葉みたいなものです。
その、合言葉をプロトコル、とカッコよく言ってるだけなのです。
インターネットだと、日本語ではなく、英語でもなく、IPプロトコルで喋ってる、といったイメージです(かなり大雑把ですが)。
そして、IPv6というのは、IPプロトコルの最新版。
IPv6は何が新しいかというと、アドレスがたくさん付けられる、というところ。スマホを1人何台持とうと、全てのスマホにIPアドレスが個別に付けられる、というと話になります。
ひと昔前は、世の中すべて、IPv4という古い世代のプロトコルを使っていました。古いとはいえ、多くのサービスは2020年現在、まだまだIPv4を使用しています。そういう意味ではまだまだ、現役です。ただし、IPv4だとアドレスがたくさん付けられないので、インターネットにつながる機器が増えている現代。困ったことになる、というわけです。
話し言葉でいうと、おじいちゃんが喋ってる言葉(v4)と、孫が喋ってる言葉(v6)とが、ちょっと違ってる、くらいの話になりますね。(かなり大雑把ですが)
「IPv6なら速い」は本当?
世間では「IPv6なら速い」といった都市伝説があるようです。ですがそれは「IPv6というプロトコルだから」速い訳ではないないので注意してください。
どういうことでしょう?
先程、IPv4では、PPPoEを使うと述べました。PPPというのは、プロトコルの一種です。その昔は、電話回線を使ってインターネットにつなげるのによく使われていました。それを、いわゆるインターネットの回線で使うように拡張されたものが、PPPoE(PPP on Ether)です。ルーターにユーザー名とパスワードを設定すると、PPPの仕組みを使ってユーザー認証が行われ、これで、ISPからインターネットのアドレスを入手することができます。
最近は、このPPPoEの仕組みのおかげでISPが混雑しており、通信速度の低下を引き起こしているそうです。一方、IPv6ではPPPoEは使う必要がありません。そのため、PPPoEを使わないIPv6が空いていて速度低下起こらな。よって「IPv4より速い」という現象が起こっているらしいのです。
都市伝説はこう理解しましょう。IPv6自体が高速な訳ではなくIPv6にすると、みんなが使わない回線を使えるので高速である、ということです。
IPv4のNAT越え問題とポート開放
これまでのIPv4の世界では、"NAT越え“という言葉で語られる問題がありました。NATを越えて通信するための”ポート開放“という技でご存じの方も多いかも知れません。
先述のようにIPv4ではネット上の全ての機器に割り当てるには、アドレスが足りなくなります。アドレス枯渇に対する現代のIPv4の解決策は、極端な話あなたのスマホと、私のスマホのIPアドレスが同じになる可能性がある、というものです。その状態でも問題なく使えるようにするのが、ルーターやゲートウェイ、ファイアウォール、といった技術です。
つまり、ルーターの中にいるスマホには、ルーターの中でしか通用しないアドレス(ローカルIP)を振ります。一方、ルーターの外から見えるアドレス(WAN側のIPアドレス)は、世界全体で通用するユニークなIPアドレス(グローバルIP)を割り当てる、という仕組みです。
これなら、スマホの数ではなく、ルーターの数分のアドレスで済みます。自宅のルータの事を考えてみて下さい。1つのルーターには、複数のスマホがつながっていませんか?これがIPv4のアドレス枯渇に対する解決策になっています。そしてルーター内部のアドレスとグローバルIPを変換するのがNAT(Network Address Translation)という技術なのです。
このような、IPv4で普及した様々な技術。普通にブラウザでインターネットのサイトを見る分には問題ありません。快適そのものです。しかし、ちょっと特殊なことをしようとすると話が複雑になります。その一例が家の中にサーバーを立てる、というケース。
家の中にサーバーを立てると、”あなたの手に持っているスマホと同じアドレスになっているかも知れない私の家の中のサーバー”を、インターネットから家にアクセスする時、どのように識別すればいいのでしょうか??
これがIPv4を使ったホームネットワークのルーターにポート開放の設定をする理由です。ポート開放設定することで、インターネットからきたパケットを家の中の特定のアドレスの機器に転送することが出来るようになるのです。
この記事にたどり着いた読者であれば"ポート開放"自体はご存知かと思いますが、念のため、以前書いたポート開放のちょっと変わった説明記事もご紹介します。読んでいただけると幸いです↓
IPv6でポート開放は不要?
それでは、IPv6でインターネット上の全ての機器に個別のIPアドレスが割り当てられるようになると、NAT超えやポート開放が不要な、幸せな世界が来るのでしょうか?
話はそんなにかんたんではありません。
現代のインターネットは、IPv4とIPv6が混在する世界。まだまだIPv4でつながる機器が多い中、IPv4とIPv6をどうにか共存させる必要があります。
それが為に、サーバを自宅に立てようとすると、結局IPv4のNAT越え問題の解決が必要になります。しかも、悪いことに、IPv6の場合、NATが行うアドレス変換は自宅のホームルータではなくISP側で行われてしまいます。そのため、我々ユーザにとっては手が出せず、逆に不便になっているのが実態です。
以下のブログ記事が参考になります↓
これは困りました。IPv6のホームネットワーク環境で、自宅サーバーはどのように構築すればよいのでしょう?
我が家のホームネットワーク
それでは、ここから我が家のホームネットワークの仕組みをIPv6ベースに変える話に話題を変えます。先述のように、一番のポイントは自宅にサーバーを設置するところです。
ISPは「ぷらら」です。
変更前のネットワーク
光回線で引き込んだ、回線は、レンタルを受けているルーターに入ります。PR-S300SEというモデルです。
このモデルはテレビの同軸のケーブル、電話のモジュラージャック、そして、ネットワークのRJ45コネクタ(CAT5/CAT5eみたいなケーブルが刺さる口)が出力になります。DHCPによる、ローカルIPアドレスの配布機能などがあり、PPPoE機能が搭載されています。私の場合はPPPoEパススルーを有効にして、PPPoEのユーザ認証は後段のルーターに任せます。
PR-S300SEの後に、NetGearのR7000というWiFiルーターを設置。PPPoEはNetGearに設定し、家庭内のローカルIPアドレス(IPv4のローカルアドレス)は、全ての機器でこのルーターから取るようにしています。
このような構成にしたのは理由があります。NetGearのR7000は、高度なペアレンタルコントロールができます。親が子供のネットワークアクセスを制限できるわけです。
IPv4を使っている利点は、NAT(ホームルーター)のポート開放の設定を適切にしておくと、家庭内にサーバーを立て、自由にインターネットに公開できることです。このお陰で、外出先からスマホで自宅サーバーにアクセスすることが可能になります。
但しこの場合、グローバルのIPv4アドレスは固定されないので、注意が必要です。ISPが勝手に変えてしまう場合があるからです。使い続けるには、DDNS(Dynamic DNS)の設定を、しておく必要があります。DDNS については、以下の記事で解説していますのでこちらもご覧ください。
変更後のネットワーク(IPv4とIPv6の共存)
変更後のネットワークはIPv6とIPv4の共存が目標にしました。IPv6とIPv4の同時接続です。以下のようなネットワークを目指します。
- 家の中のほとんどの機器はIPv6でつながる
- サーバー機器はIPv4でつながる
- IPv6でつながる機器とIPv4でつながる機器は家庭の中では互いにアクセス可能
- 今でつながっていた機器の設定変更はしない(または、最低限にする)
ここでのポイントは、IPv4でポート開放を設定し、自宅サーバーをIPv4で公開するところ。
それぞれ説明すると、まず1の理由は、IPv6にすることによりネットワークの混雑を避け、「高速に」通信することです。
2の理由は、IPv6の不自由なNAT越問題を避け、これまで通り自由に家庭内にサーバーを設置することです。
3の理由は、IPv6, IPv4それぞれの機器が家庭内に混在したとしても、設定変更することなく互いにアクセス可能にするためです。ここが非常に重要で、例えば、私のパソコンは家庭ネットワークに有線でつながっていますが、IPv6でインターネットにつなぎます。一方で、IPv4につながっているサーバーの設定を変更する場合は、家庭内ネットワーク内部の通信が発生します。この場合にも、線をつなぎ変えたり設定を一時的に変更する、といった手間を避けたいのです。
4の理由は、家庭内のネットワークにいろんな機器をつなぎ便利に利用しているヘビーユーザーの家族に、今回の変更に伴って迷惑をかけたくないという、ことです。しずかなかずしオフィスの情報システム担当として、最低限のマナーです(笑)
その結果、以下のようになりました。
ポイントは、ルーター機器をIPv4のサーバー用に1つ増やしたことです。それぞれの機器の役割を記載しますと、
PPPoE用に別のWiFiルーター(TP-Link Archer c50)を導入し、そこにユーザー名とパスワードを設定します。家庭内サーバーはTP-Linkのローカルネットワークの中に設置するので、ポート開放の設定は、TP-Linkに対して行います。TP-Link自体の家庭内でのアドレスは、192.168.1.200に固定するのですが固定IP設定はTP-Linkの設定画面で行います。
TP-Linkのルーターはお値段は安いですが、ポート開放の設定に関してはかなり分かりやすいです。ポート転送からDMZなど機能も豊富でありがたいです。こちらの記事で↓、TP-Linkも詳しく扱っていますので、ぜひご覧ください。
家庭内でIPアドレスを192.168.1.200に固定する、と言いましたが、固定IPの考え方関しては以下の記事に詳しく書いています。こちらも合わせて読んでもらえると嬉しいです。
DHCPによるIPv4アドレスの割当は、PR-S300SEで行っています。PR-S300SEのDHCPによるアドレスの範囲は、192.168.1.xのxは、1から199までとし、192.168.1.200以降は、TP-Link用に予約する(DHCPで使わない)ようにしています。
これまでPPPoEに使っていたNetGearは、アクセスポイント(AP)モードにしています。
また、物理的な接続として重要なのが、TP LinkのLAN側のポートの一つから、PR-S300SEのLANのポートに一本線をつないぐことです。これにより、IPv4ネットワーク機器とIPv6機器の通信が可能になります。
注意点としては、
- TP-LinkのLAN側のルータ自身のアドレスを固定IPにする(192.168.1.200)
- TP-Linkで初期設定で動作しているDHCP機能をOffにする(家庭内の機器は、固定IPの機器以外は、PR-S300SEのDHCPからローカルIPアドレスを取得)
- TP-LinkのIPv6使用をやめる
以下のサイトの情報を参考にしました