IPv6 IPoE(MAP-E・DS-Lite)で自宅サーバーを公開する注意点と設定
IPv6 IPoEの回線では、MAP-EかDS-Liteかで外からIPv4で届くかが変わります。方式の確かめ方、IPv6での公開、固定IPやPPPoE併用、トンネルの選び方を整理しました。
IPv6 IPoEとは、フレッツ光などNTT東西の光回線で、PPPoEのIDとパスワードを設定せずに、IPv6で直接インターネットへつなぐ接続方式です。混雑しやすいPPPoEの設備を通らないため速度が安定する一方、IPv4の通信はIPv6の中にトンネルとして包まれて運ばれ、この仕組みが自宅サーバーの公開方法を大きく変えます。
同じ「IPoE」でも、IPv4を運ぶ方式がMAP-EかDS-Liteかで、外から自宅にIPv4で届くかどうかがまったく違います。この記事では、2つの方式の仕組みの違い、自分の回線がどちらかを確かめる方法、IPv6で直接公開するときの設定、IPv4で公開したいときの選択肢(固定IPオプションとPPPoEの併用)、そして外向きのトンネルを使う方法までを、公開したいものごとの判断基準として整理します。
この記事でわかること
- PPPoEとIPoEの違いと、IPv4がIPv6のトンネルで運ばれる理由
- MAP-EとDS-Liteで、外からIPv4で届く範囲がどう違うか
- 自分の回線の方式とIPv6の設定を確かめるコマンド
- IPv6で直接公開するときのフィルタ、アドレスの固定、DNSの設定
- 固定IPオプション、PPPoE併用、Tailscale、Cloudflare Tunnelの選び方
IPv6 IPoEとは:PPPoEとの違いと、IPv4がトンネルになる理由
フレッツ光のネットワーク(NGN)からインターネットへ出る道は2つあります。従来のPPPoEは、契約したISPの網終端装置を経由する方式で、利用者ごとに認証してグローバルIPv4アドレスを受け取ります。夜間に遅くなりやすいのは、この網終端装置が混雑するためです。IPoEは、VNE(Virtual Network Enabler)と呼ばれる事業者の大容量の接続点を経由してIPv6で直接つながる方式で、PPPoEの認証がありません。
IPoEで配られるのはIPv6のアドレスだけなので、IPv4のWebサイトを見るための仕組みが別に必要になります。それが「IPv4 over IPv6」で、IPv4のパケットをIPv6のパケットに包んでVNEまで運び、そこでIPv4のインターネットへ出します。包み方とNATを誰が行うかの違いで、代表的な方式がMAP-EとDS-Liteです。
| 方式 | IPv4アドレス | NAT(アドレス変換)を行う場所 | 外から自宅にIPv4で届くか | 代表的なサービス名(執筆時点) |
|---|---|---|---|---|
| PPPoE | 利用者ごとに1つ(動的、または固定IPオプション) | 自宅のルーター | ルーターのポート転送で届く | 各ISPのPPPoE接続 |
| MAP-E | 複数の利用者で1つを共有 | 自宅のルーター(割り当てられたポートの範囲だけ使う) | 割り当て範囲のポートだけ届く | v6プラス、OCNバーチャルコネクト |
| DS-Lite | 複数の利用者で1つを共有 | 事業者側の装置(AFTR) | 届かない | transix |
| 固定IPv4(IPIPトンネル) | 利用者ごとに1つ(固定) | 自宅のルーター | ルーターのポート転送で届く | transixやv6プラスの固定IPオプション(ISPごとに商品名が異なる) |
IPv6はどの方式でも同じで、自宅の機器それぞれにグローバルなIPv6アドレスが付きます。つまりIPoEの環境で自宅サーバーを公開するときは、「IPv6で直接公開する」と「IPv4で公開する」を別の問題として考える必要があります。
自分の回線がどの方式かを確かめる
いちばん確実なのは、ルーターの管理画面の状態表示です。接続方式の欄に「v6プラス」「MAP-E」「DS-Lite」「transix」のような表示があります。ISPが途中で方式を変更することもあるので、契約時の資料だけで判断せず、今の表示を確かめてください。
コマンドで確かめるなら、自宅の外から見えるIPv4アドレスと、ルーターのWAN側のIPv4アドレスを比べます。外から見えるアドレスは、DNSの問い合わせで調べられます。
dig -4 +short myip.opendns.com @resolver1.opendns.com
dig -4 +short TXT o-o.myaddr.l.google.com @ns1.google.comどちらも自宅の外側のIPv4アドレスを返します(検証環境では同じアドレスが返りました)。PPPoEやMAP-Eでは、この値がルーターの状態表示にあるIPv4アドレスと一致します。DS-Liteでは、ルーター自身は利用者ごとのグローバルIPv4を持たないため、状態表示にIPv4のグローバルアドレスがないか、DS-Liteの仕組みで使う 192.0.0.2 のような特殊なアドレスが表示されます(表示は機種によって違います)。
IPv6の設定は、サーバーでは次のように確認します。-temporary は、プライバシーのために定期的に入れ替わる一時アドレスを除く指定です。
ip -6 addr show scope global -temporary
ip -6 route show default2 で始まるグローバルアドレスと、fe80:: で始まるルーターのリンクローカルアドレスへのデフォルトルートがあれば、IPv6でインターネットにつながっています。Windowsではコマンドプロンプトで ipconfig を実行し、「IPv6 アドレス」と「一時 IPv6 アドレス」の行で確かめます。
プレフィックス(アドレスの上位部分)の受け取り方も確認しておきます。フレッツ光ネクストでは、ひかり電話を契約してホームゲートウェイ(HGW)を使っている場合はDHCPv6-PDで配下のルーターにプレフィックスを分けられますが、契約していない場合はRA(ルーター広告)で /64 のネットワークが1つ届くだけです(執筆時点。光クロスなど回線の種類によって扱いが異なります)。/64が1つだけだと、自前のルーターの内側でIPv6のネットワークを複数に分けられないので、VLANでネットワークを分ける設計をIPv6まで広げたい場合は、この条件が制約になります。
ルーターのIPv6の設定で、IPv6のDNSサーバーを端末に通知する機能(RAやDHCPv6)が有効になっていると、LANに置いた広告ブロックのDNSやキャッシュDNSを迂回されることがあります。自宅にDNSサーバーを置いている場合は、端末のDNSサーバーの一覧にIPv6のアドレスが混ざっていないかも確認してください。
MAP-Eで開けられるポートと、80番・443番が使えない理由
MAP-Eでは、1つのIPv4アドレスを複数の利用者で共有し、それぞれにポート番号の範囲を割り当てます。自宅のルーターは、割り当てられた範囲のポートだけを使って外向きの通信のアドレス変換を行います。割り当ては、いくつかの連続したポートの塊が飛び飛びに並ぶ形で、日本の主なMAP-Eのサービスでは、80番や443番を含むウェルノウンポート(0〜1023)はどの利用者にも割り当てられません。
外からの接続を受けるには、割り当て範囲の中のポートを、ルーターの静的なポート転送(静的NAPT)でサーバーに向けます。自分に割り当てられた範囲は、多くのルーターで状態表示に出ています。公開できるのは http://example.com:ポート番号/ のような範囲内のポートだけなので、次のような影響があります。
| やりたいこと | MAP-Eでの可否 | 代わりの方法 |
|---|---|---|
| 443番でWebサイトを公開 | できない | IPv6で公開、Cloudflare Tunnel、固定IPオプション |
| Let's Encryptの証明書をHTTP-01で取得 | できない(80番を使うため) | DNS-01で取得する |
| 範囲内のポートでゲームサーバーを公開 | できる | Minecraft Java版ならSRVレコードでポート番号を省略できる |
| 範囲内のUDPポートでWireGuardを受ける | できる | IPv6で受ける方法もある |
HTTPSの証明書は、DNSのTXTレコードで所有を確かめるDNS-01チャレンジなら、80番も443番も使わずに取得できます。DNS-01を数行で設定できるCaddyで自動HTTPSのリバースプロキシを作るガイドの構成は、そのままMAP-Eの環境で使えます。
MAP-Eにはもう1つ注意点があります。外向きの通信も割り当て範囲のポートしか使えないため、同時接続の多い使い方(多数のタブ、P2P、オンラインゲームの同時利用など)では、ポートが足りずに新しい接続が作れなくなることがあります。自宅サーバーが大量の外向き接続を張る用途(クローラーや大規模なダウンロード)は、この点も考慮します。
DS-Liteでは外からIPv4で届かない
DS-Liteでは、アドレス変換を事業者側の装置(AFTR)がまとめて行います。自宅のルーターはIPv4のパケットをIPv6に包んでAFTRに送るだけで、IPv4のポート転送を設定する場所がありません。そのため、外からIPv4で自宅のサーバーに接続する方法は、DS-Liteのままでは存在しません。ルーターの管理画面にポート転送の項目があっても、DS-Liteの接続には効きません。
DS-Liteの環境でIPv4の着信が必要なら、次の章以降のIPv6での公開、固定IPオプション、PPPoEとの併用、外向きトンネルのどれかを選びます。
IPv6で直接公開する:フィルタ・アドレス固定・DNSの設定
IPv6にはNATがなく、サーバーは自分のグローバルアドレスで直接インターネットとつながります。ただし、HGWや家庭用ルーターのIPv6パケットフィルタは、外から内への新しい接続を既定で遮断しています。公開するには、ルーターのIPv6フィルタに「宛先がサーバーのアドレス、宛先ポートが443番のTCPを通す」という規則を追加します(メニューの名前と場所は機種によって違います)。
ルーターの規則で通すのは公開するポートだけにし、サーバー側でもファイアウォールを必ず有効にします。NATの陰に隠れていたIPv4と違い、ルーターの規則を1行間違えると、そのサーバーのすべてのポートが外から見えるためです。Ubuntuのufwは、/etc/default/ufw の IPV6=yes(既定値)により、sudo ufw allow 443/tcp のような規則をIPv4とIPv6の両方に適用します。
アドレスの固定にも工夫が要ります。IPv6のアドレスは、上位64ビットのプレフィックスと下位64ビットのインターフェースIDでできています。プレフィックスは回線側から配られるので自分では決められませんが、インターフェースIDは固定できます。Ubuntuのnetplanなら次のように書くと、アドレスの下位が ::80 になり、プレフィックスが変わっても末尾は変わりません。
network:
version: 2
ethernets:
enp1s0:
dhcp4: true
accept-ra: true
ipv6-privacy: false
ipv6-address-token: "::80"検証では、netplan 1.1.2がこの設定を、systemd-networkdの IPv6Token=static:::80 と IPv6AcceptRA=yes に変換することを確かめました。反映は sudo netplan apply です。インターフェース名(例の enp1s0)は ip link で確認してください。
プレフィックスは頻繁には変わりませんが、契約の変更や設備の都合で変わることがあり、固定が約束されたものではありません。DNSのAAAAレコードは、DDNSの仕組みで自動更新するのが安全です。サーバーの上で、ip -6 addr show scope global -temporary で得たアドレスをDNS事業者のAPIに送るスクリプトを定期実行する形が一般的です。
IPv6で公開したときに見落としがちなのが、閲覧する側の環境です。国内の主要な携帯電話事業者のスマホ回線はIPv6に対応していますが(執筆時点)、IPv4しか使えない職場のネットワークや公衆Wi-Fiもあります。IPv6だけで公開したサーバーには、そうした場所からは届きません。不特定多数に見せるWebサイトなら、CloudflareのプロキシでAAAAレコードだけを登録する方法が有効です。閲覧者はIPv4でもIPv6でもCloudflareにつながり、CloudflareがIPv6で自宅のサーバーへ接続します。
IPv6で公開したサーバーのアドレスは、そのままインターネットから直接届く住所です。公開しないはずの管理画面やSSHが、ルーターのIPv6フィルタの設定ミス1つで外から見える状態にならないよう、サーバー側で待ち受けるポートを ss -tlnp で確かめ、不要なサービスは止めるか、待ち受けるアドレスをLANに限ってください。
IPv4で公開したいとき:固定IPオプションとPPPoE併用
IPv4の閲覧者やIPv4専用の機器から直接つながる必要があるなら、IPv4のアドレスを自分専用に確保します。方法は2つあります。
1つ目は、ISPの固定IPオプションです。IPoEのまま、固定のIPv4アドレスをIPIPトンネルで受け取る形のもので、すべてのポートを自分で使え、80番と443番も公開できます。ルーターがこの方式(IPv4 over IPv6の固定IP、IPIP)に対応している必要があり、家庭用ルーターでは対応機種が限られます。料金と対応ルーターはISPごとに違うので、契約前に確認してください。
2つ目は、PPPoEとの併用です。ISPがIPoEの契約でもPPPoEの認証IDを発行している場合、普段の通信はIPoEで流し、サーバーの公開だけPPPoEで受ける構成が作れます。PPPoEで受け取るIPv4アドレスは自分専用なので、ポート転送で80番や443番も公開できます(動的なアドレスならDDNSと組み合わせます)。HGWがある環境では、機種によってはPPPoEブリッジの機能で、配下のルーターにPPPoEの接続を通せます。
PPPoE併用で必ず問題になるのが、戻りの経路です。外からPPPoE側に届いた接続に対して、サーバーの応答がデフォルトルートのIPoE(MAP-E)側から出てしまうと、送信元のアドレスが変わるため、相手は応答を受け取れず、接続は成立しません。ルーターで「PPPoEから入ってきた接続の応答はPPPoEへ返す」ようにポリシールーティングを設定するか、公開用のサーバーだけを別のネットワーク(VLAN)に置いて、そのネットワークのデフォルトルートをPPPoEにします。家庭用ルーターではこの設定ができない機種が多く、業務用ルーターやOpenWrtなど、経路を細かく制御できる機器が必要になります。
外向きのトンネルで公開する:TailscaleとCloudflare Tunnel
回線の方式に左右されないのが、自宅のサーバーから外へ接続を張るタイプの仕組みです。自分と家族だけが使うならTailscaleでのリモート接続で、ルーターのポート転送もIPv6フィルタの変更も不要です。TailscaleはIPv6も使うため、IPoEの回線同士ではIPv6で直接つながりやすく、DS-LiteのようにIPv4の着信ができない環境でも問題なく動きます。
不特定多数に見せるWebサイトなら、Cloudflare Tunnelが使えます。cloudflaredが自宅からCloudflareへ外向きに接続するので、MAP-EでもDS-Liteでも、ポート転送なしで独自ドメインの443番で公開できます。代わりにTLSはCloudflareで終端され、アップロードサイズや動画配信には規約上の制限があります。
判断の基準:何を、誰に公開するかで決める
ここまでの選択肢を、公開したいものごとにまとめます。
| 公開したいもの | おすすめの方法 | 理由 |
|---|---|---|
| 自分と家族が使う管理画面・NAS・SSH | Tailscale | 回線方式に関係なく、ポートを一切開けずに済む |
| 不特定多数に見せるWebサイト | Cloudflare Tunnel、またはIPv6で公開してCloudflareのプロキシを通す | IPv4しか使えない閲覧者にも届き、自宅のアドレスも隠れる |
| IPv4のクライアントが直接つなぐゲームサーバー | MAP-Eなら割り当て範囲のポート、DS-Liteなら固定IPオプションかPPPoE併用 | 相手の端末に追加のソフトを求めない |
| 自宅のVPNサーバー(WireGuardなど) | IPv6で受けるか、MAP-Eの範囲内のUDPポート | 外出先の回線がIPv4だけの場合に備え、両方を用意すると確実 |
| メールサーバー | 自宅には置かない | 家庭向け回線では25番の外向き通信が制限され(OP25B)、共有IPv4では逆引きの設定もできない |
実際の手順は、1. 公開する相手(自分だけか、不特定多数か)を決める、2. ルーターの状態表示で回線の方式を確かめる、3. 上の表で方法を選ぶ、4. 公開するポートをルーターとサーバーのファイアウォールの両方で最小限にする、の順です。回線の方式が分からないまま、ルーターのポート転送やIPv6フィルタを試行錯誤すると、意図しないポートを開けたまま忘れることになりがちです。
よくある質問
IPoEはIPv6に対応していますか?
IPoEはIPv6で接続する方式なので、IPv6はそのまま使えます。IPv4の通信は、MAP-EやDS-LiteといったIPv4 over IPv6の仕組みでIPv6の中に包んで運ぶか、別にPPPoEで接続して使います。ルーターがこれらの方式に対応していないと、IPv4はPPPoEのままになります。
IPoEとPPPoEのどちらがいいですか?
普段のWeb閲覧や動画の視聴には、混雑しやすい設備を通らないIPoEが向いています。自宅サーバーをIPv4で公開したい場合は、自分専用のIPv4アドレスを受け取れるPPPoEか固定IPオプションが必要です。両方を併用し、普段はIPoE、公開用だけPPPoEで受ける構成もあります。
固定IPアドレスはv6で利用できない?
家庭向けの契約では、IPv6のプレフィックスは固定を約束されていないのが一般的で、頻度は低くても変わることがあります。サーバーのアドレスは、インターフェースIDの固定とDDNSによるAAAAレコードの自動更新で追従させます。固定のIPv4アドレスは、ISPの固定IPオプションで別に受け取れます(執筆時点、提供の有無と条件はISPごと)。
IPv6 IPoEのデメリットは?
IPv4を共有する方式では、外からIPv4で届くポートが限られるか(MAP-E)、まったく届きません(DS-Lite)。MAP-Eでは外向きに使えるポートの数にも上限があります。また、IPv4 over IPv6に対応したルーターが必要で、IPv6ではすべての機器がグローバルアドレスを持つため、ルーターのフィルタとサーバーのファイアウォールの設定が欠かせません。
まとめ
IPv6 IPoEの回線で自宅サーバーを公開するときは、まずルーターの状態表示でMAP-EかDS-Liteかを確かめます。MAP-Eなら割り当て範囲のポートとDNS-01の証明書、DS-LiteならIPv4の着信は諦めて、IPv6での公開か固定IPオプション、PPPoE併用を選びます。自分と家族だけが使うサービスは、回線方式に関係なく動くTailscaleに寄せると、ポートを1つも開けずに済みます。