最新バージョンの(Debian)ラズベリーパイOSがインストールされたRaspberry Pi 4があります. iptables
Pi(使用)からのすべてのトラフィックを別のコンピュータ(IPアドレスを使用していると仮定)にリダイレクトするように設定しようとしています。これは、DNSベースの依存ポータルをホストする別のコンピュータをテストするためのものであり、すべてのトラフィックをこの依存ポータルコンピュータ(IP B)に転送したいと思います。私はヘッドレス設定が好きなので、転送せずにSSH接続を維持できれば幸いです。
NATテーブル()でこのルールセットを試しましたiptables
。私は私が試したことがIP AからIP BにUDPトラフィックを転送しようとしたことに気づきました。これはうまくいきません。
root@pi4:/home/pi# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 7 packets, 1155 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT udp -- * * <IP A> <resolver IP> udp dpt:53 to:<IP B>
Chain INPUT (policy ACCEPT 7 packets, 1155 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
どんな助けやアドバイスにも感謝します。
答え1
私はそれを考えた!私のチェーンルールが単に間違った場所に配置されていることがわかりました。内部的に生成された宛先IPアドレスを変更したいので、PREROUTINGルールをOUTPUTに入れる必要があります。最後に、私のNATテーブルは次のとおりです(質問でプレースホルダIPを維持してください)。
# Generated by iptables-save v1.8.7
*nat
:PREROUTING ACCEPT [22:2797]
:INPUT ACCEPT [22:2797]
:OUTPUT ACCEPT [129:8883]
:POSTROUTING ACCEPT [129:8883]
-A OUTPUT -d <resolver IP>/32 -p udp -m udp --dport 53 -j DNAT --to-destination <IP B>:<port B>
-A POSTROUTING -d <IP B>/32 -p udp -m udp --dport <port B> -j SNAT --to-source <IP A>
COMMIT
# Completed on