リバースNATアクセス用のデュアルNIC

リバースNATアクセス用のデュアルNIC

この目標に関してサポートが必要です:

Internet
    <-- TP_LINK Router(192.168.0.1)
        <-- PC1(eth0:192.168.0.8)
        <-- PC2(eth0:192.168.0.81)

ケーブルを使用して PC2 eth1 を PC3 eth0 に接続し、PC2 eth1 IPV4 設定を「他のコンピューターと共有」に構成すると、PC2 と PC3 は以下の IP を取得します。

    PC2(eth1:10.42.0.1)
        <-- PC3(eth0: 10.42.0.169)

ここで、PC1 で「10.42.0.169 に ping を実行できるように、ルートまたは iptables で何かを実行したいと思います。

これは可能ですか? 以下は私が試したことです:

  • TP_LINK ルーターの静的ルート テーブルを設定します: 10.42.0.0 (ターゲット) - 255.255.255.0 (ネットマスク) - 192.168.0.81 (ゲートウェイ)。

PC1 で結果が得られました:

$ traceroute 10.42.0.169
traceroute to 10.42.0.169 (10.42.0.169), 64 hops max, 52 byte packets
1  192.168.0.1 (192.168.0.1)  4.018 ms  0.905 ms  0.768 ms
2  ay11 (192.168.0.81)  1.140 ms  1.273 ms  1.482 ms
3  ay11 (192.168.0.81)  1.104 ms  1.041 ms  1.127 ms

PC2 がパケットを 10.42.0.0/24 に転送できれば、すべてが完璧になるのではないかと思います。

PC2 の構成は次のとおりです。

$ route
default         192.168.0.1     0.0.0.0         UG    100    0        0 eth1
10.42.0.0       *               255.255.255.0   U     100    0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth1
192.168.0.1     *               255.255.255.255 UH    100    0        0 eth1

$ sudo iptables -L
[sudo] password for mlhch: 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.42.0.0/24         state RELATED,ESTABLISHED
ACCEPT     all  --  10.42.0.0/24         anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

ルートまたは iptables についてはどうすればいいですか?

ありがとう!

答え1

これをオンにして試してください。PC2まず最初にIP転送を有効にします。これは、

echo "1" > /proc/sys/net/ipv4/ip_forward

次に、トラフィックを転送するように指示するルールを追加します

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

答え2

ご尽力に感謝いたします。

/proc/sys/net/ipv4/ip_forward はすでに「1」になっており、/etc/sysctl.conf で net.ipv4.ip_forward=1 を設定していました。

iptables コマンドを実行したところ、Chain FORWARD セクションに以下の 2 行が追加されました。

ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

奇跡は起きない。しかし、2つのREJECT行に気付いた。

REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

これらを削除すると、すべてが完璧に動作します。実際、新しく追加された行も削除し、「ACCEPT all -- anywhere anywhere」という行を 1 つだけ残します。

関連情報