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-bridge
の LXD_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