家には DNSが無いので、[hosts]ファイルで名前解決します。
自宅でサーバーのお勉強をするにあたり、サーバー数が多くなってくると IPアドレスを覚えきれなくなってきます。
職場なら DNSがあって マシン名→IPアドレス の「名前解決」ができますので IPアドレスを暗記しておく必要は無いのですが、自宅だとそうもいきません。
自宅に DNSサーバーを立ち上げるのもお勉強としては大変良いのですが、ただ単に DNSを使うためだけにお勉強の度に仮想OSを 1つ起動するってのも面倒臭いです。
解決策として考えたのが以下です。
- ラズベリーパイのような少電力のものにDNSを立ち上げる
- お勉強用のホストOS(Win10)に DNSを立ち上げる(Black Jumbo Dogとかで)
でも何か違うな〜と思って却下。
普段電気を入れっ放しの、光ルーターかWifiルーターに宅内の DNS機能をつけてくれれば良いのにと思いますが、DNSの中継機能があるだけです。
仕方がないので、hostsファイルというもので名前解決しています。
これは OS毎にローカルディスクに持っているファイルで、DNSより優先して使われますので、ここにマシン名と IPアドレスの紐付けを書いておけば、自宅環境でも名前解決ができます。
でもマシン毎に記載をしないといけません。
自宅で DNSを常時運用するのとどっちが面倒臭いのかですが、こちらの方が面倒臭くないと思っています。
Linuxと Windowsの [hosts]ファイルのパスは以下となっています。
Linux | /etc/hosts |
Windows | C:¥Windows¥System32¥drivers¥etc¥hosts |
書式は Linuxと Windowsで同じです。
IPアドレスを頭に持ってきて、スペースかタブで区切り、マシン名は 1つでも複数でも書くこともできます。
#がコメントですね。
IPアドレス マシン名 マシン名 マシン名 #コメント
家の例はこんな感じ。
##
## Linux Servers
##
192.168.1.100 UbuntuServer2204-1 UbuntuServer2204-1.localdomain #Database Server
192.168.1.101 UbuntuServer2204-2 # NGINX Server
これだけのことなんですが、当ホームページで IPアドレスではなくマシン名を使ってサーバー間の接続設定を書いているのは、これを使っているおかげです。
最近になってやっと Raspberry Pi Zero 2 Wが日本の技適を取得して売り出されたんで、これに DNSをやらせて常時つけっ放しにしておくのも良いかと思っています。
余り電力を必要としない・Wifiが使える・サイズが小さいということで、
- 火事の心配が減る
- Wifiルータ等の常設機器の USBから電源を得て動かせるかも
- 場所を取らないし雑多なケーブルも必要ない
メモリが 512MBしかない非力なマシンですが、DNSだけやらせるには十分でしょう。