私のDNSチェーンをどのように確認しますか?

私のDNSチェーンをどのように確認しますか?

DNSCryptを使用してすべてのDNSパケットを暗号化したいので、次のことを試しました。

/etc/rc.localから:

/usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk

それから私は以下を実行しました。sudo /usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk

/var/unbound/etc/unbound.confから

ここに画像の説明を入力してください。

すべてのDNS要求がdnscryptを介してルーティングされるように正しく設定されていますか?

これにより、host openbsd.org他の仮想OpenBSDシステムで同じコマンドを実行したときと同じIPアドレスが得られますが、google.comとyoutube.comを試すと異なるIP結果が表示されます。これにより、私が間違いを犯したか、DNSリゾルバが不良だと思うことになります。

DNS 要求が実際にポート 80 で行われているかどうかを確認するにはどうすればよいですか?可能であれば、DNSリゾルバーを使用していることを確認し、私の要求を暗号化できるかどうかを知りたいです。ドメインを確認できることだけを知り、使用されたパスは不明だからです。

私のオペレーティングシステムはOpenBSD 5.7 i386です。

答え1

YouTubeとGoogleはCDNを介してサービスを提供し、さまざまなIPアドレスにマッピングされているDNS名を使用するのが正常です。

クエリが実際にDNSCryptを通過することを確認するには、一時的に停止します。

# pkill -STOP dnscrypt-proxy

新しいDNSクエリへの応答を引き続き受け取っていることを確認してください。もはやこのようなことは起きてはいけません。

その後、復元します。

# pkill -CONT dnscrypt-proxy

アンバウンド構成ファイルによれば、プロキシはポート40でリッスンするため、tcpdumpこのポートで実行して、出力がデコード可能なDNSパケットではなく歪んでいるように見えることを確認できます。

# tcpdump -n udp port 40

/etc/resolv.confファイルに次の行が含まれている限り、Unboundがポート80からの着信接続をリッスンするのに問題はありません。

nameserver [127.0.0.1]:80

ただし、80は同じポートでWebサーバーを実行できないため、奇妙な選択です(DNSはUDPとTCPの両方を使用します)。

tcpdumpポート 80 で実行すると、認証されていない暗号化されていない一般クエリが表示されます。

関連情報