Dual-NIC für Reverse-NAT-Zugriff

Dual-NIC für Reverse-NAT-Zugriff

Brauche Hilfe bei diesem Ziel:

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

Wenn ich PC2 eth1 über ein Kabel mit PC3 eth0 verbinde und die IPV4-Einstellungen von PC2 eth1 auf „Für andere Computer freigegeben“ konfiguriere, erhalten PC2 und PC3 die folgenden IPs:

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

Jetzt möchte ich etwas auf Route oder iptables tun, damit ich auf PC1 „10.42.0.169 anpingen“ kann.

Ist das möglich? Folgendes habe ich versucht:

  • Konfigurieren Sie die statische Routentabelle des TP_LINK-Routers: 10.42.0.0 (Ziel) – 255.255.255.0 (Netzmaske) – 192.168.0.81 (Gateway).

Jetzt erhalte ich das Ergebnis auf 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

Wir können sehen, dass, wenn PC2 Pakete an 10.42.0.0/24 weiterleiten kann, vielleicht alles perfekt ist?

Hier sind die Konfigurationen auf 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

Was soll ich mit Route oder iptables tun?

Danke!

Antwort1

Versuchen Sie dies, um Folgendes einzustellen: PC2Als erstes müssen Sie die IP-Weiterleitung aktivieren. Dies geschieht entweder durch

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

Dann fügen wir eine Regel hinzu, die den Verkehr weiterleitet

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

Antwort2

Danke für Ihr Bemühen.

Für /proc/sys/net/ipv4/ip_forward war es bereits „1“ und ich hatte net.ipv4.ip_forward=1 in /etc/sysctl.conf konfiguriert

Ich habe Ihre iptables-Befehle ausgeführt, sie fügen einfach die folgenden zwei Zeilen im Abschnitt „Chain FORWARD“ an:

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

Dann passiert kein Wunder. Aber das lässt mich die 2 REJECT-Zeilen bemerken

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

Ich lösche sie und alles funktioniert perfekt! Tatsächlich lösche ich auch die neu hinzugefügten Zeilen und behalte nur eine Zeile „ACCEPT all -- anywhere anywhere“.

verwandte Informationen