LXDのdnsmasqで名前解決するための設定

はじめに

Ubuntu 16.04のLXDでホストマシンでコンテナ名で名前解決するための設定メモです。 ブリッジを使ったネットワーク構成での話です。

$ ip a show dev lxdbr0
4: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fe:47:a7:ef:13:80 brd ff:ff:ff:ff:ff:ff
    inet 10.155.92.1/24 scope global lxdbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::fc47:a7ff:feef:1380/64 scope link
       valid_lft forever preferred_lft forever

正しいと思われる方法

Ubuntu 16.04: LXD/LXCでコンテナを立ち上げる - Narrow Escape にあるように

nameserver 10.155.92.1

というファイルを作って /etc/default/lxd-bridgeLXD_CONFILE でパスを指定するのが、正しい方法だと思います。

お手軽な方法

ansible - resolvconf coupled with dnsmasq and lxd - Server Fault にお手軽な方法が紹介されていました。

echo 'nameserver 10.155.92.1' | sudo resolvconf -a lo.dnsmasq

上記を実行後に /etc/resolv.conf を確認すると以下のように希望通りになっていました。

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.155.92.1
nameserver 192.168.0.1

設定内容は /var/run/resolvconf/interface/lo.dnsmasq というファイルに保存されていました。

$ cat /var/run/resolvconf/interface/lo.dnsmasq
nameserver 10.155.92.1