同一ネットワークならわざわざ/etc/hosts書かなくても名前解決できるということを初めて知った
環境
やりたいこと
例えばIP「192.168.16.12」でホスト名が「ubuntu02」のサーバーが同一ネットワーク上にあったとする。
そのサーバーにsshしたい場合、通常だと/etc/hostsに 192.168.16.12 ubuntu02
と書いてssh ubuntu02でアクセスするが、
ubuntu02.local とかでhosts書かなくてもアクセスできるようにしたい。
そこで「mDNS」を使う
mDNSとは
mDNSとは
mDNS(Multicast DNS)は、ローカルネットワーク内でホスト名解決を行うためのプロトコルだ。従来のDNSとは異なり、DNSサーバを必要とせず、マルチキャストを利用して名前解決を行う。
- 一般的なのDNS:
- mDNS:
つまり、mDNSは、ローカルネットワークのホストが互いに名前解決するための、軽量で手間のかからないプロトコルだ。大げさな設定は不要で、BonjourやAvahiといった実装が普及している。
インストール
Macの場合はデフォルトでインストールされている。Ubuntuもデフォルトでインストールされているらしいが入ってない場合用
systemctl status avahi-daemon
なければインストールされていない
sudo apt update sudo apt install avahi-daemon sudo systemctl start avahi-daemon sudo systemctl enable avahi-daemon
確認
ping ubuntu02.local