43751


調査のために DNS サーバへ名前を引いた結果をログに書きたいです。  
例えばコンソールで `dig www.google.com A` を実行すると、ローカルにキャッシュされていない場合は `www.google.com` の
`A` レコードが取得できますが、これをシステム全体で

  * どのような頻度で
  * どの名前の
  * どのレコードに対して検索され、
  * どのような値が返ってきたか

をログとして保存したいのですが、どうするのがよいでしょうか。  
OS は Ubuntu 16.04 です。


CC BY-SA 3.0
2018-04-30T18:20:22.190
43674
2018-05-02T23:44:26.563
258
question
ubuntu dns
DNS サーバへ名前を引いた結果をログに書きたい


試したことが無いのですが、案として思い浮かぶのは、UbuntuにBindなどのネームサーバーを導入し、ローカルのDNSに対して問い合わせが行われるように設定します。そのうえで、Bindのログ設定を行い、DNSクエリーのログを記録するのはどうでしょうか。

また、/etc/resolv.conf の option DEBUG
を有効化すればデバッグ情報を表示することはできるようですが、Glibcをデバッグモードで動かす必要があり、簡易には実行できません。またログに残すことができるかどうかがわかりません。


CC BY-SA 4.0
2018-05-02T14:11:26.743
43738
2018-05-02T14:11:26.743
5008
43674
answer

[code]

    sudo tcpdump -i eth0 -n -vv port 53
    
[/code]

としておいて

[code]

    host www.google.co.jp
    
[/code]

を実行すると、以下の出力が得られます。

[code]

    08:13:32.959741 IP (tos 0x0, ttl 64, id 36245, offset 0, flags [none], proto UDP (17), length 62)
        192.168.0.209.52248 > 192.168.0.132.53: [udp sum ok] 31008+ A? www.google.co.jp. (34)
    08:13:32.961503 IP (tos 0x0, ttl 64, id 17324, offset 0, flags [none], proto UDP (17), length 78)
        192.168.0.132.53 > 192.168.0.209.52248: [udp sum ok] 31008 q: A? www.google.co.jp. 1/0/0 www.google.co.jp. A 172.217.161.227 (50)
    08:13:32.961703 IP (tos 0x0, ttl 64, id 36246, offset 0, flags [none], proto UDP (17), length 62)
        192.168.0.209.51329 > 192.168.0.132.53: [udp sum ok] 46442+ AAAA? www.google.co.jp. (34)
    08:13:32.962600 IP (tos 0x0, ttl 64, id 17325, offset 0, flags [none], proto UDP (17), length 90)
        192.168.0.132.53 > 192.168.0.209.51329: [udp sum ok] 46442 q: AAAA? www.google.co.jp. 1/0/0 www.google.co.jp. AAAA 2404:6800:400a:80c::2003 (62)
    08:13:32.962718 IP (tos 0x0, ttl 64, id 36247, offset 0, flags [none], proto UDP (17), length 62)
        192.168.0.209.56586 > 192.168.0.132.53: [udp sum ok] 10017+ MX? www.google.co.jp. (34)
    08:13:32.963560 IP (tos 0x0, ttl 64, id 17326, offset 0, flags [none], proto UDP (17), length 122)
        192.168.0.132.53 > 192.168.0.209.56586: [udp sum ok] 10017 q: MX? www.google.co.jp. 0/1/0 ns: google.co.jp. SOA ns1.google.com. dns-admin.google.com. 195126406 900 900 1800 60 (94)
    
[/code]

というわけで、

[code]

    sudo tcpdump -i eth0 -n -vv port 53 > dns.log
    
[/code]

などと実行しておくのはいかがでしょうか。


CC BY-SA 4.0
2018-05-02T23:44:26.563
43751
2018-05-02T23:44:26.563
5288
43674
answer