Der Datenverkehr wird nicht über NAT weitergeleitet.

Der Datenverkehr wird nicht über NAT weitergeleitet.

Ich habe einen Router, der Internetzugang über NAT bereitstellt, und eine Client-Linux-Box (A), die über eth0 mit diesem Router verbunden ist.

Diese Linux-Box verfügt außerdem über eine WLAN-Schnittstelle, wlan0. Ich möchte, dass diese Box über diese Schnittstelle ein drahtloses Netzwerk ankündigt, IP-Adressen vergibt und den Datenverkehr von diesem Netzwerk an das andere Netzwerk weiterleitet, das vom Gateway-Router bereitgestellt wird.

Bisher funktionieren hostapd und ein DHCP-Server bei mir; eine zweite Linux-Box (B) kann sich mit diesem neuen drahtlosen Netzwerk verbinden und eine IP-Adresse erhalten. Allerdings kann B außerhalb des Subnetzes keinen Ping ausführen, keine Adressen auflösen usw.

B's ifconfig-Ausgabe:

wlan2     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:192.168.42.10  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::12fe:edff:fe1b:2bec/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:177 errors:0 dropped:0 overruns:0 frame:0
          TX packets:757 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:26221 (26.2 KB)  TX bytes:132884 (132.8 KB)

A's ifconfig-Ausgabe:

eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:369 errors:0 dropped:0 overruns:0 frame:0
          TX packets:267 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:31272 (30.5 KiB)  TX bytes:33861 (33.0 KiB)

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:192.168.42.1  Bcast:192.168.42.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:79 errors:0 dropped:199 overruns:0 frame:0
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:18114 (17.6 KiB)  TX bytes:6874 (6.7 KiB)

Ausgabe von iptables -t nat -S auf A:

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE

Ausgabe von iptables -S auf A:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT

Ich bin für alle Ideen sehr dankbar!

BEARBEITEN:

route -n Ausgabe von A:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.42.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

Ein von B übernommener Traceroute:

$ sudo traceroute -i wlan2 8.8.8.8
[sudo] password for eab: 
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *

usw.

BEARBEITEN:

Ich kann erfolgreich auf das Internet zugreifen, wenn ich mich von einem anderen Gerät, C, mit dem neuen drahtlosen Netzwerk verbinde, das von A erstellt wurde. B hat zwei Netzwerkkarten, beide drahtlos, und wlan2 ist mit diesem neuen drahtlosen Netzwerk verbunden. Ich kann keinen Ping senden:

Ausgabe von B:

$ ping -I wlan2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.42.10 wlan2: 56(84) bytes of data.
From 192.168.42.10 icmp_seq=1 Destination Host Unreachable
From 192.168.42.10 icmp_seq=2 Destination Host Unreachable
From 192.168.42.10 icmp_seq=3 Destination Host Unreachable

BEARBEITEN:

Das Ausführen von „route -n“ auf B erzeugte die folgende Ausgabe:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.42.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan2

LÖSUNG: Durch Ausführen von „sudo route add default gw 192.168.42.1 wlan2“ wurden die Verbindungsprobleme behoben. Es stellte sich heraus, dass Linux nur ein Standard-Gateway zulässt, selbst wenn Sie mehrere aktive Netzwerkkarten mit mehreren Netzwerken verbunden haben. Das Ausführen des obigen Befehls führt zu folgendem Ergebnis:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.42.1    0.0.0.0         UG    0      0        0 wlan2
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.42.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan2

Antwort1

Ein paar weitere Details wären gut, einschließlich der Ausführung von "route -n" auf jeder Box sowie eines Traceroute von "b" zu einem externen Ort. Außerdem:

Allerdings vermute ich, dass Ihr Problem darin besteht, dass Sie die Paketweiterleitung auf dem Router nicht aktiviert haben.

Bitte führen Sie "cat /proc/sys/net/ipv4/ip_forward" auf A aus - wenn dieser Wert "0" ist, könnte das [eines Ihrer] Probleme sein. Sie können dies vorübergehend beheben, indem Sie den Befehl "echo 1 > /proc/sys/net/ipv4/ip_forward" eingeben - und dauerhaft, indem Sie die entsprechende Zeile in /etc/sysctl.conf zu "net.ipv4.ip_forward = 1" hinzufügen/ändern (Verwenden Sie sysctl -p /etc/sysctl.conf, um diese Datei "neu zu laden")

verwandte Informationen