Memo/Linux/dnsmasq

https://dexlab.net:443/pukiwiki/index.php?Memo/Linux/dnsmasq
 

dnsmasq


検証

  • nslookupを使う。
    nslookup int.example.com
  • digを使う
    # 明示的にNSとしてlocalhostを指定。NSを変えれば、dnsmasqの有効/無効を確認できる。
    dig @localhost int.example.com
    
    # google public dns (8.8.8.8, 8.8.4.4)
    dig @8.8.8.8 int.example.com

よく使うオプション

  • address=/<domain>[/<domain>...]/[<ipaddr>]
    • アドレスの上書き
    • *.example.com の問い合わせで 192.168.1.10 を返す
      address=/.example.com/192.168.1.10
  • server=[/[<domain>]/[domain/]][<ipaddr>[#<port>][@<source-ip>|<interface>[#<port>]]
    • 指定ドメインだけ別のネームサーバを返す
      # 正引き用
      server=/int.example.com/192.168.2.254
      # 逆引き用
      server=/2.168.192.in-addr.arpa/192.168.2.254

クエリログを出力

  • lookupされるとsyslog等にログを残せる。
  • ログサイズが大きくなるので注意
  • syslogに出力
    sudo vim /etc/dnsmasq.conf
    --
    log-queries
    log-facility=local0
    #log-facility=/var/log/dnsmasq.log
    --
    
    sudo service dnsmasq restart
    
    nslookup dummy.example.com
    
    sudo tail /var/log/messages

white list式

許可したDNSだけ名前解決して、それ以外はlocalhostのアドレスを返すようにしたい。

  • "#" がワイルドカード
sudo vim /etc/dnsmasq.conf
----
conf-dir=/etc/dnsmasq.d,*.conf
----

sudo vim /etc/dnsmasq.d/whitelist.conf
----
server=/allowed.example.com/8.8.8.8
address=/#/127.0.0.1
----
sudo service dnsmasq restart

dnsmasqで内向きDNS

  • インストール
    yum install -y dnsmasq
    
    vi /etc/resolv.conf
    ----
    nameserver 127.0.0.1
    nameserver 192.168.1.1
    ----
    
    vi /etc/hosts
    ----
    192.168.1.200 group.example.com
    ----
    
    service dnsmasq restart
    chkconfig dnsmasq on
  • hostsを変更したら再読込
    service dnsmasq reload

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-20 (木) 13:33:51 (115d)