web-dev-qa-db-ja.com

djbdns / dbndns dnscache query ipv6-ネームサーバーのみ?

Ubuntu 14.04(Trusty)でdnscacheをセットアップして、リクエストの処理と権威ネームサーバーへのクエリを行うためのデュアルスタックを実行しました。

明確にするために、私はfefeによるIPv6パッチを含むdbndnsパッケージを使用しています。

Dbndns&dnscache-runパッケージをインストールしました。 /etc/service/dnscache/env/IP0.0.0.0であり、/etc/service/dnscache/env/IPSEND0.0.0.0であることを確認しました。

また、/etc/service/dnscache/root/ipにIP範囲を追加しました。

これで、IPv4とIPv6の両方を介して別のマシンにDigを使用してaaaaとレコードをロードできます。ただし、testipv6.comには、IPv6のみの権威ネームサーバーからレコードをロードするためのテストがあります。これをテストするために、URL http://ds.v6ns.test-ipv6.com/ip/?callback= ?をロードします。そのホスト名ds.v6ns.test-ipv6.com8.8.8.8(googleのIPv6対応DNSサーバー)を使用して掘ると、AAAAレコードが返されます。しかし、私のdbndnsキャッシュ(IPv4およびIPv6経由)に対して同じことを行っても、結果は返されません。

IPSENDを変更する必要がありますか?もしそうなら、何をしますか? IPv4のみの権威ネームサーバーの解決策を壊したくありません。

1
Azendale

同じ問題が発生しましたが、Fefeのtest23から彼のtest27パッチにアップグレードすることで修正されました。具体的には、query.cとの違いでこの問題が修正されました。

これは主に次のような変更です。

-dtype = z->level ? DNS_T_A : z->type;
+dtype = z->level ? (z->ipv6[z->level] ? DNS_T_AAAA : DNS_T_A) : z->type;

ただし、950行目あたりのifステートメントには中括弧がありません(これについてはFefeに報告します)。また、セキュリティパッチが http:/)の場合は、dtypeを別の方法で変更する必要があります。 /www.your.org/dnscache/ 適用されます(おそらくそうすべきです)。

大幅にマージおよびカスタマイズされた(OpenBSDスタイルのIPv6をサポートするための)フレーバーを維持していますが、 query.cのパッチは次のとおりです これはそれらをマージするのに役立ちます。

もちろん、これが機能するには、IPSEND::である必要があります。あなたが言及したテストホストds.v6ns.test-ipv6.comは、変更後は機能し、変更前は失敗したので、これで間違いありません。

1
mirabilos