karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

DNS over https + dnsmasqする

トレンドなのでやった
特にこれといった目的はないです

なにをした

私の環境はarchなのでpacaurでdnsmasqと、
AURからGitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPSを引っぱってくる

pacaur -S dns-over-https dnsmasq

素の状態で両方systemd経由で起動すると、bind「Address already in use」
と大激怒してくるのでこんな感じで適当に設定する

/etc/dnsmasq.conf

# stops dnsmasq from reading resolv.conf
no-resolv

# add your secureoperator server as the upstream dns server
server=127.0.0.1#5353

ポート番号は何でもよいと思うけれど、#5353をコメントだと思って消すとひどい目にあう(1敗)

/etc/dns-over-https/doh-client.conf

listen = "127.0.0.1:5353"
#以下をCloudFlareを使う用に変更した

ここのポート番号はdnsmasqと同じものを使う

おわりに

wiresharkで確認すると、まず普通にDNSdns.cloudflare.comを名前解決しに行きそこで手に入れたアドレスに対してDNS over HTTPSを叩いているのが見える
最初ip.addr == 1.1.1.1してフィルタを書けてもそれっぽい通信が無くてめっちゃ焦りました(1敗)
使用感は別に変わらないのでdoh-client.confでverbose = trueにしてsystemd経由で眺めたりdigを叩いて確認するときれいでよかった

20180417追記:
AURのパッケージにもアップデートが来た(元々ブログを書いた時にはout of date flagが付いていた)
その結果upstream_googleに"https:/1.1.1.1/dns-query"の様にアドレスを直に書けば初動のdns.cloudflare.comへ名前解決もしなくてよくなったみたい(今までも出来たものなの?)
でもここに"https://[2606:4700:4700::1111]/dns-query"とipv6を書くと403が返ってくる
私が何か間違っているのか対応していないのかわからん…(ジャガー)
20180418追記:
なんか適当なことを言っていたと気が付いたのを直した