web-dev-qa-db-ja.com

同じサーバー上の2番目のDNSリゾルバのためのiptablesを介してポートリダイレクトを行うのはなぜですか?

ローカルゾーン用の信頼できるDNSサーバーとしてBIND9を実行しているラズベリーPIがあります。他のすべてのDNS要求は、パブリックDNSサーバーに転送されます。そのため、BIND9はアドレス53でポート192.168.1.254で聞いています。

これで、このRaspberry PIにアンインストールして「DNSを介してDNS」を入力します。同じポート(53)で2つの異なるリゾードを待機することはできないので、私はこれを2番目のIPアドレスとポート転送で解決できると思いました。

だから私は192.168.1.2:1053で聞くようにUnboundを設定しました。このポートとアドレスへのDNSは正しく答えられます。 iptablesを越えて、次の規則をインストールしました。

iptables -t nat -A PREROUTING -p udp --dst 192.168.1.2 --dport 53 -j REDIRECT --to-ports 1053
iptables -t nat -A PREROUTING -p tcp --dst 192.168.1.2 --dport 53 -j REDIRECT --to-ports 1053

これで、DNSは192.168.1.2とポート53をクライアント側でタイムアウトしているために応答されません。

Iptablesを使用すると、ルールが正しく適用されているが、答えが得られませんでした。どうして?

1
idlmn89

私はこれを解決しました:私が上記の場合には、単純なポート転送は十分ではありません。トリックは次のとおりです。

iptables -t nat -A PREROUTING -p udp --dport 53 --dst 192.168.1.2 -j DNAT --to-destination 192.168.1.2:1053
iptables -t nat -A PREROUTING -p tcp --dport 53 --dst 192.168.1.2 -j DNAT --to-destination 192.168.1.2:1053
 _

たぶん他の解決策がありますが、これは私にとってうまくいくものです。

2
idlmn89