自宅サーバーを使うためにはポート解放が必要、でもV6プラスのスピード感も享受したいということで、フレッツ光(So-net)の回線を巧みに使って今までの問題を解決する。
2020/06から、割り切った接続方式に転換したところ逆に不都合もなくなったので個人的には理想的な状態にできたと判断している。
宅内ネットワークの詳しいテーマ(10GbE化・Wifi・10GbE対応端末・R86Sなど)は子ページに分けてある。全体像と読み進め方は、末尾の「宅内ネットワークの全体像と子ページの案内」にまとめた。
ここ20年近く悩んできた問題として、自宅サーバーあるあるのヘアピンNAT使えない問題がある。
WANからのアクセス時(通常のインターネットアクセス)には自宅ルーターの外向きIPがグローバルアドレスとなり、ルーターのポート転送の設定によりサーバーに接続される。
しかし、自宅内のネットワーク(LAN)からサーバーに接続しようとした場合は、DNSによりドメインがルーター自身のIPアドレスを指し示すことになるため、サーバーにたどり着くことができず、ルーターの管理画面が表示されることになる。ヘアピンNAT機能がこの問題を解決してくれるシンプルな手段であるが、対応しているルーターが現時点でほぼ皆無である。
この問題を解決する手段として以下のような方法がある。
いずれも抜本的な解決手段にはなり得ない。作業用端末のみ対応できればいいのであれば上記の方法で問題ないと思う。
今回は、IPv6 PPPoE接続 (IPv6トンネル方式)をサーバー用回線として使い、IPoE(IPv4 over IPv6)を主回線として用いることで、一度WANを経由させて自宅にアクセスする方法をとっている。要はホームページにアクセスするユーザーと同じ環境にするということ。
この方式の利点は契約上、1契約で実質2回線分として使えるので費用負担がないということと、宅内ネットワークと、サーバー用ネットワークが分離できるためサイバー攻撃などにより家庭内端末が道連れになるリスクを抑えられるということ。
デメリットはPPPoE、IPoEの2接続を行う必要があるため一般的なルーターだと2台必要であるということ。(機種によっては1台で両接続を実施することも可能)
主回線をPPPoEからV6プラス側に変更。ポートを開ける必要のあるもののみPPPoE側に残すことにしたが、基本的にはすべてNAS内で完結しているためPPPoE側回線はサーバーのみで使用。PPPoE側のルーターをER-Xに変更。
::: nwdiag
nwdiag {
inet [shape = cloud];
inet -- ONU;
network SwitchingHUB {
ONU;
Ubiquiti_EdgeRouter-X_PPPoE;
YAMAHA_RTX830_V6Plus;
}
network internal2 {
address = "192.168.0.x/24";
Ubiquiti_EdgeRouter-X_PPPoE [address = "192.168.0.1"];
DS1819Plus;
DS1821Plus;
}
network internal1 {
address = "192.168.100.x/24";
DS1819Plus;
DS1821Plus;
YAMAHA_RTX830_V6Plus [address = "192.168.100.1"];
PS4;
NVIDIA_ShieldTV_Pro;
PC;
Google_Home;
IoT_Deviices;
etc;
}
}
:::
主回線をPPPoEからV6プラス側に変更。ポートを開ける必要のあるもののみPPPoE側に残すことにしたが、基本的にはすべてNAS内で完結しているためPPPoE側回線はサーバーのみで使用。
::: nwdiag
nwdiag {
inet [shape = cloud];
inet -- ONU;
network SwitchingHUB {
ONU;
BUFFALO_BHR-4GRV_PPPoE;
YAMAHA_RTX830_V6Plus;
}
network internal2 {
address = "192.168.0.x/24";
BUFFALO_BHR-4GRV_PPPoE [address = "192.168.0.1"];
DS1819Plus;
}
network internal1 {
address = "192.168.100.x/24";
DS1819Plus;
YAMAHA_RTX830_V6Plus [address = "129.168.100.1"];
PS4;
NVIDIA_ShieldTV_Pro;
PC;
Google_Home;
IoT_Deviices;
etc;
}
}
:::
::: nwdiag
nwdiag {
inet [shape = cloud];
inet -- ONU;
network SwitchingHUB {
YAMAHA_RTX830_V6Plus
ONU
BUFFALO_BHR-4GRV_PPPoE
}
network internal1 {
address = "192.168.100.x/24";
YAMAHA_RTX830_V6Plus [address = "129.168.100.1"];
PS4;
NVIDIA_ShieldTV_Pro;
DS1819Plus;
}
network internal2 {
address = "192.168.0.x/24";
BUFFALO_BHR-4GRV_PPPoE [address = "192.168.0.1"];
DS1819Plus;
PC;
Google_Home;
IoT_Deviices;
etc;
}
}
:::
家中に散らばっていたサーバーをNAS Synology DS1819+に一本化。
| 役割 | 環境 | 用途 |
|---|---|---|
| ファイルサーバー | Synology DSM | 大量の家庭内向けファイル置き場 |
| Webサーバ(blog) | DSM VMM(Ubuntu) | 外向きのブログサーバー |
| Wikiサーバー | DSM Docker(GROWI) | 外向きのwikiサーバー |
回線はFletsひかり1G(戸建て)。
V6プラス回線+PPPoE実質2回線運用だが、V6プラス回線はサーバー運用には向かないので、外向きのアクセス専用で使用(現在はゲームコンソール、STBなど速度を必要とする機器に優先割り当て)。
自宅サーバーは従来のPPPoE回線を使うことでポートが自由に使える。
基本的な作業はDSMで操作できるため、DSMのWebインターフェース経由で使用。
その他使用するポートはWeb用の80と443ポートだがまずはNASにすべてのポートを転送し、そのあとNASから各サービスに振り分けることにした。
ちなみにNASの80,443ポートは予約されているため、一度異なるポートに転送する必要がある
※DSMに手を入れてリバースプロキシ化する方法もある。
SynologyのNASを80番ポートの受け皿にしようとした話
Use Synology Nginx to Proxy HTTPS Request to Your Unifi Controller
まずはPPPoEルーターでポート変換しNASに転送。その後、NAS内Docker上に設定したリバースプロキシ Docker/https-portal でSSL関連の処理をすることにした。DSM搭載のリバースプロキシ機能も存在するが、転送に関係する証明書関連の処理をまとめてはできないので、各端末で処理する必要がある。
現状は、外からのアクセスに関してはすべてDocker/https-portal にて各サブドメイン(DSMのアプリ関係)各Webサーバー(Docker、VMM)に振り分けている。
今まではhostsファイルの書き換えなどで対応していたが広告やCSSが正常表示されないことも多く、モバイル回線から再確認するような作業が必要だった。
ドメインだけの問題であればhosts書き換え、DNSサーバーを立てるなどの対策で逃げられるが、各サーバーのポートが80,443ポート以外の場合はポート転送が絡むため簡単にはできなくなる。
今回はGROWIのみポートが標準ポートではないため、サブドメイン指定のDNSサーバーによる転送と、転送先のリバースプロキシによるポート転送を併用することにした。ここで、ポート転送先をDocker/https-portalに向ければ外部からのアクセスと同等の環境になるとは思うが、Chromeが証明書の警告を吐くだけなのであえて段数を減らすルートを設定している。
現在(2026時点)の骨格はこうなっている。回線はフレッツ光で、外向きの公開に使うPPPoE回線と、速度を優先するV6プラス(IPoE)回線の2本立て。公開サーバー周りはPPPoE側に残し、普段の端末はV6プラス側に置く。宅内のファイルはNASに集約し、宅内からも外からも同じNASを見に行く。宅内はまだ1GbEが中心で、10GbEは「先に詰まっている所を特定してから投資する」段階として進めている。
個別のテーマは子ページに分けてある。上から順に読むと組み立てやすい。
機材を選ぶときのポイント
主な使用機材の入手先(参考)
※ 本ページのAmazonリンクにはアフィリエイトタグ(toobf6-22)が付いている。
🤖 このページにはAIエージェント(ノア)による編集・加筆が含まれます。内容の正確性は保証できないため、重要な判断は一次情報でご確認ください。