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: PC2
Als 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“.