マルチキャストDNSを使って、ローカルで名前解決を行う
目次
概要
mDNS(マルチキャストDNS)は、Linuxの場合は、avahi-daemon をインストールすることで、名前解決を行うDNSなしで、仮想マシン同士やホストと仮想マシンの間で、名前解決ができます。Windowsの場合は、Bonjour Print Servicesが必要で、Macは始めから対応しているので、何もインストールする必要はありません。
特定の組織内だけのネットワークや、パソコン上で仮想マシンを使って、開発や検証を行う際に、とても便利です。mDNSを使うことで、例えば、ホスト名がserver1のマシン上で稼働するSSL/TLS対応のWebアプリケーションにアクセスする場合は、https://server1.local でアクセスすることができます。IPアドレスよりも便利です。
準備
例えば、WindowsやMac上で稼働する仮想マシンに、IPアドレスで接続ではなく、mDNSで接続するとしましょう。
VirtualBoxやUTM などで構築した仮想マシンに、mDNSを有効化します。VirtualBoxの場合は、仮想マシンに「ホストオンリーアダプタ」が割り当てられている必要があります。
仮想マシンを構築し、mDNS対応にします。
仮想マシンは、最低限、SSH接続はできるようにしておきましょう。Webアプリケーションを動かす場合は、SSH接続に加えて、HTTP接続やHTTPS接続ができるようにしておきましょう。
Ubuntuの場合
次のコマンドを実行
sudo apt-get install avahi-daemon
RedHat / CentOSの場合
次のコマンドを実行
sudo yum -y install avahi
sudo systemctl start avahi-daemon
仮想マシンを動かすホスト側のWindows 10/11やMacに必要なこと
Bonjour がインストールされている必要があります。Macは標準機能として組み込まれているので、特にやることはありません。
Windows パソコンを使っている人は、Bonjour Print Services (Windows) のインストールが必要です。Bonjour Print Services (Windows) << クリックしてインストールファイルをダウンロード、ダウンロード後、インストールします。
もしくは、Windowsに、https://www.apple.com/jp/itunes/ をインストールします。iTunesにもBonjour Print Servicesが含まれています。
実施方法
Windowsであれば「TeraTerm」、Macの場合はターミナルアプリからSSHコマンドを用いて、仮想マシンのIPアドレスの代わりに、仮想マシンのホスト名.local (例 ubuntu1.local ) とすることで、仮想マシンに接続することができます。