デフォルトでは、Linuxボックス(Ubuntu Focal)がゲートウェイとして構成されています。
sysctl net.ipv4.ip_forward = 1 #Enable ipv4 forwarding
iptables -t nat -A POSTROUTING -o ens160 -s 192.168.1.0/24 -j MASQUERADE #NAT 192.168.1.x to internet behind interface ens160
クローキングルールのクリック数が増加したことを確認しました(この場合は1から2に)。
このルールはスクリーンショットを撮るときにすべてを試したので、前の図で繰り返しますが、この例ではそれほど重要ではないと思います。
したがって、8.8.8.8では問題なくpingを送信できますが、DNSルックアップなどの他の操作を試してみると
dig @8.8.8.8 www.google.com
操作が失敗し、ルールのヒット数が増加しません。
また、Telnetを使用してIPアドレス(名前ではなく)でHTTP(HTTPSではなく)Webサイトを開こうとしましたが、クリック数が増えずに失敗しました。
このプロセスは一般的に機能し、ルール自体はICMPだけでなくすべてのプロトコルに対しても機能していると言いますが、DNSルックアップ(UDP)とTCPを除くすべてのプロトコルアドレスをIP経由でpingできるように見えるため、問題の原因は何であるかわかりません。 。ゲートウェイが接続を送信していないため、接続に失敗しました。
また、tcpdumpを実行しましたが、192.168.1.xに入ってくるパケットを見ることができ、ICMPの場合はNATパケットが出ているのがわかりますが、UDP / TCPの場合は出ることは何も見えません。
ここで何が間違っている可能性がありますか?
編集:コメントのいくつかのフィードバックに基づいてより多くの情報を追加する
filter
そしてそのテーブルraw
には何もないようでした。これを確認するために正しいコマンドを使用しているかどうかはわかりませんが、次のようになります。
iptables-save -c
また、私が期待したもの以外は何も表示されません。 (試行錯誤のためにルールのいくつかの重複を追加しましたが、これは何の影響も与えないと思います):
sudo iptables-save -c
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*raw
:PREROUTING ACCEPT [290378:642993821]
:OUTPUT ACCEPT [26621:1727859]
COMMIT
# Completed on Tue May 2 18:59:25 2023
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*filter
:INPUT ACCEPT [290051:642964315]
:FORWARD ACCEPT [140:11615]
:OUTPUT ACCEPT [26631:1728900]
COMMIT
# Completed on Tue May 2 18:59:25 2023
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*nat
:PREROUTING ACCEPT [72935:11925313]
:INPUT ACCEPT [72704:11903229]
:OUTPUT ACCEPT [1643:146886]
:POSTROUTING ACCEPT [1643:146886]
[11:924] -A POSTROUTING -s 192.168.1.0/24 -o ens160 -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.1.0/24 -o ens160 -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.1.0/32 -o ens160 -j MASQUERADE
COMMIT
# Completed on Tue May 2 18:59:25 2023
この結果から直接追加の洞察を得ることはできません。提案はありますか?
編集2:コメントに基づいてより多くの情報を追加する
NFtablesがインストールされたことはないと思いますが、nft list chains
情報は提供されず、icmpとudpのパスは同じように見えます。
ゲートウェイVM自体(システムDNSが8.8.8.8に設定されていない)内で発生したDNS要求がSNATによって処理され、問題なく出て応答を受信するように見えるため、これは本当に奇妙です。ただし、何らかの理由でインバウンドDNSは、プライベートLANからの要求は到着時に中断されます。