O tráfego não está sendo encaminhado por meio de NAT

O tráfego não está sendo encaminhado por meio de NAT

Eu tenho um roteador que fornece acesso à Internet usando NAT e uma caixa cliente Linux (A) que está conectada a este roteador na eth0.

Esta caixa Linux também possui uma interface wlan, wlan0; o que eu gostaria é que esta caixa anunciasse uma rede wireless usando esta interface, distribuindo endereços IP, e encaminhando o tráfego desta rede para a outra rede, fornecida pelo roteador gateway.

Até agora, tenho o hostapd e um servidor dhcp funcionando; uma segunda caixa Linux (B) pode se conectar a esta nova rede sem fio e obter um endereço IP. No entanto, B não pode executar ping fora da sub-rede, resolver endereços, etc.

Saída ifconfig de B:

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)

Saída ifconfig de A:

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)

Saída de iptables -t nat -S em A:

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

Saída de iptables -S em 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

Qualquer ideia seria profundamente apreciada!

EDITAR:

rota -n saída de 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

Um traceroute retirado de B:

$ 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  * * *

etc.

EDITAR:

Consigo acessar a Internet com sucesso ao me conectar à nova rede sem fio produzida por A a partir de outro dispositivo, C. B tem duas NICs, ambas sem fio, e wlan2 está conectado a esta nova rede sem fio. Não consigo fazer ping:

saída de 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

EDITAR:

A execução de "route -n" em B produziu a seguinte saída:

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

RESOLUÇÃO: A execução de "sudo route add default gw 192.168.42.1 wlan2" corrigiu os problemas de conectividade. Acontece que o Linux permite apenas que haja um gateway padrão, mesmo se você tiver vários NICs ativos conectados a várias redes. A execução do comando acima produz o seguinte:

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

Responder1

Mais alguns detalhes seriam bons, incluindo fazer uma "rota -n" em cada caixa, bem como um traceroute de "b" para algum lugar externo. Também,

Dito isto, suspeito que o seu problema seja que você não ativou o encaminhamento de pacotes no roteador.

Por favor, execute "cat /proc/sys/net/ipv4/ip_forward" em A - se este valor for "0", isso pode ser [um dos seus] problemas. Você pode corrigir isso temporariamente emitindo o comando "echo 1 > /proc/sys/net/ipv4/ip_forward" - e permanentemente adicionando/alterando a linha apropriada em /etc/sysctl.conf para "net.ipv4.ip_forward = 1 " (Use sysctl -p /etc/sysctl.conf para "recarregar" este arquivo)

informação relacionada