概要
前回 Ubuntu 上に dnsmasq を構築してみました
今回は docker コンテナとして dnsmasq を構築してみたいと思います
環境
- Ubuntu 16.04
- docker 18.09.8
- dnsmasq
イメージ
andyshinn/dnsmasq を使います
おそらくこれが一番無難なはず、、
コンテナ起動
基本的な使い方はすべて引数でコントロールする点です
/etc/dnsmasq.conf
に記載できる内容はすべて引数で指定可能です
例えば前回と同じ内容で起動する場合は
docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq -D -b --local=/vagrant.local/ -E --domain=vagrant.local
という感じで起動します
-D
・・・domain-needed-b
・・・bogus-priv--local
・・・local=/vagrant.local/-E
・・・expand-hosts--domain
・・・domain=vagrant.local
になります
そして A レコードを登録する場合は更に引数に -A
を使います
docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns andyshinn/dnsmasq -D -b --local=/vagrant.local/ -E --domain=vagrant.local -A /mac/172.28.128.1 -A /mac.vagrant.local/172.28.128.1
DNS クライアントから動作確認
dig mac @172.28.128.3
dig mac.vagrant.local @172.28.128.3
どちらでも引けるはずです
CNAME は
これもオプションを追加します
--cname
を使います
また cname の場合は /etc/hosts
への記載が必要になるので -A
ではなく docker の --add-host
オプションを使います
docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns --add-host=mac:172.28.128.1 --add-host=mac.vagrant.local:172.28.128.1 andyshinn/dnsmasq -D -b --local=/vagrant.local/ -E --domain=vagrant.local --cname=alt-mac,mac
これで CNAME も引けるようになります
dig alt-mac @172.28.128.3
冷静に考えると A, AAAA レコードは --add-host
オプションを使うのが良いと思います
最後に
docker で dnsmasq を動かしてみました
ポイントは設定ファイルではなくすべてオプションで指定するという点です
オプションがわからない場合は dnsmasq --help
あたりで調べられます
help で表示されるオプションはすべて docker でも指定可能です
設定ファイルも当然あるのですがそれよりもオプションで変更できるほうを推奨しているようです
docker exec dns ls /etc/dnsmasq.conf
0 件のコメント:
コメントを投稿