私はこれを見つけるのに苦労しています。
私は次のネットワークを持っています:
(インターネット) - (ファイアウォール) - (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からサービスとして公開できるかどうかはわかりません。