マルチキャスト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 ) とすることで、仮想マシンに接続することができます。