IPv6に移行して、良かったことがいくつかある。
- プライベートIPアドレスとパブリックIPアドレスの関係はなく、パブリックIPアドレスだけの運用が可能になった。
- 完全に移行すれば、よくあるIPアドレス管理台帳エクセルみたいのは不要になるのでは。
- パブリックIPアドレスが、IPv4だとNAT経由で1つしかもらえないが、IPv6だと個人で利用する限り無限に近くもらえる。
- パブリックIPアドレスが必ずつくので、Let’s Encryptの証明書がホスト名でもらえて自動化ができる。ドメインのものを作っていたが、完全自動化は面倒(できなくもないが流用がしにくい)
- WindowsのクライアントもADには、IPv6も登録をしてくれている。
外からアクセスするのに、EdgeRouterだとファイヤウォールの設定をしないと繋がらないが、NATのようにどこのポートを開けるとか気にしなくてもいいし、IPv4でもファイヤウォールの設定は必要と言えば、必要。
もしIPv6がプロバイダーから降ってきているのであれば、使った方が絶対いいと思う。ただ、アクセス元がIPv4もまだ多いので併用する必要がある。(特にVPNのエンドポイントなど。)
閑話休題
EdgeRouterには、Static Host Nameという簡易DNS、FQDNとエイリアス、IPアドレスを登録すると、名前解決してくれる機能がある。中身はなんてことはない、dnsmasqで/etc/hostsに追記しているだけだが。
ここにホスト名を登録をしておけば、名前解決をしてくれる。
たとえば、
- NASのホスト名:nas.example.com
- エイリアス:nas
- プライベートIPアドレス :192.168.10.100
- パブリックIPアドレス(NAT): 203.0.113.100
の場合、
パブリックDNSには、nas.example.com / 203.0.113.100
と登録しておけば、外からアクセスができる。EdgeRouterもNATでヘアピンNATを設定しておけば、LAN側からも名前解決してアクセスできるはず。(なんか上手くいかない時もある。)
ここで、
Static Host Nameに、nas.example.com / 192.168.10.100
と登録をしておくと、LAN側からは、192.168.10.100でアクセスしてくれる。
ちょっと考えた。この登録だと、IPv4しか返してくれない。IPv6でも返して欲しい。どうする?
つまり、
Static Host Nameに、nas.example.com / 2001:db8:aaaa:bbbb:cccc:dddd:eeee:fffff
としたい。
しかし、EdgeRouterのStatic Host NameのGUIは、IPv4アドレスしか受け付けてくれない。コマンドラインで以下をやってみた。
set system static-host-mapping host-name nas.example.com alias nas
set system static-host-mapping host-name nas.example.com inet 2001:db8:aaaa:bbbb:cccc:dddd:eeee:fffff
set system static-host-mapping host-name nas.example.com inet 192.168.10.100
こうすると、/etc/hostsにもちゃんと2つ書かれ、GUIでもちゃんと表示される。それに、Dual Stackで名前解決ができた。SSHでログインしてみたが、IPv6でログインできていた。
これは使える!!!
ただ、もうStatic Hosts NameのGUIは使えなくなる。以後、必ずコマンドラインでやる必要がある。
それにしても、IPv6にすると。。。キャプチャーをとると全部ガチなパブリックアドレスになってしまうので、キャプチャを取るのが大変。もはや文章で記載するしかなくなってしまう。
こうやって、昨今のよくある、基本をあまり語られずに、いきなり応用からになってしまう。初心者にはかなり辛い。