NATデバイスとUFWでDNSクエリをリダイレクトする

NATデバイスとUFWでDNSクエリをリダイレクトする

私はこれを見つけるのに苦労しています。

私は次のネットワークを持っています:

(インターネット) - (ファイアウォール) - (PC1(Ubuntu 20.04)) - (PC2(Fedora、192.168.0.2))

PC1には2つのネットワークカードがあります。 (enp4s0)はファイアウォールに向かい、(eno0)はPC2に向かいます.

ファイアウォールがすべての発信DNS要求をブロックしているようで、これを変更することはできません。 PC2は8.8.8.8にアクセスする必要があり、変更することはできません。ただし、PC1が内部DNSサーバー(192.169.100.100と呼ばれる)を使用して次のUFW構成を実行している限り、インターネットにアクセスできます。気づく

# Nat table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# Forward traffic from eno1 through enp4s0
-A PREROUTING -i enp4s0 -p udp --dport 53 -j DNAT --to-destination 192.169.100.100
-A POSTROUTING -s 192.168.0.0/24 -o enp4s0 -j MASQUERADE

# process the nat table rules
COMMIT

ご覧のとおり、すべてのトラフィックはPC2からPC1を通過します。良い結果。 PC2は問題なく8.8.8.8をpingできます。ただし、PC2は8.8.8.8を使用してアドレス解決を試み、そのアドレスがファイアウォールによってブロックされているため、必要に応じてPC2を使用することはできません。私が望むのは、8.8.8.8のすべてのDNS要求を192.169.100.100にルーティングして解決することです。

それは可能ですか?だとしたら、私が何を間違っているのか混乱しているので教えてください。私はしばらくWiresharkを見つめて8.8.8.8に到達しようとしているパケットを見ています。

ありがとうございます!

答え1

Ubuntuシステムから要求を転送できるバインディング9または他のDNSサーバーをインストールし、FedoraのネームサーバーエントリをUbuntuシステムのIPにポイントします。

Debianおよびその派生製品(Ubuntuなど)にデフォルトでインストールされているBinding 9は、クエリルートサーバーとして機能するキャッシュネームサーバーです。このパスに移動してもUbuntuボックスでそのアイテムにアクセスできない場合は、次のforwardersオプションを使用することをお勧めします。/etc/bind/named.conf.options

systemdが動作するために「必要な」方法のため、すでに内部プロキシDNSサーバーがありますが、それをLANからサービスとして公開できるかどうかはわかりません。

関連情報