A situação

A situação

A situação

O Raspbian Stretch está conectado sem fio a uma sub-rede privada 10.0.0.0/16 via wlan0 (modelo RT5370). Sem modificações adicionais, o Raspbian Stretch tem acesso à Internet e o DNS está funcionando. PS: Não tenho acesso físico ao roteador que se conecta à Internet - apenas wireless.

Adicionei outra NIC RT5370 como wlan1 e configurei-a como um ponto de acesso sem fio usando hostapd.

Como não conheço o intervalo de endereços do servidor DHCP do roteador, não quero adicionar um endereço estático ao wlan0.

Configurei um endereço IPv4 estático em wlan1 192.168.0.1/28 (16 endereços de host) e configurei o dnsmasq para ser o servidor DHCP desta rede.

O problema

Deve ser bem simples, na verdade.

O Raspbian Stretch pode 1) acessar a Internet ou 2) atuar como um WAP para conectar clientes. O problema é que os dois recursos não funcionarão ao mesmo tempo.

Já vi guias onde a conexão com a Internet é estabelecida via cobre em vez de ondas de rádio, mas não vejo por que faz alguma diferença se a interface conectada à Internet for sem fio em vez de com fio. De qualquer forma...

O que eu tentei

Em uma nova reinicialização, posso executar ping em google.com e 8.8.8.8 com êxito.

Posso ver wlan0 e wlan1 após a verificação ifconfige eles parecem estar configurados corretamente.

Aqui está a saída de route.

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
default     192.168.0.1 0.0.0.0         UG    304    0     0 wlan1
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Não sei por que parece que dois gateways padrão estão aqui quando uma única rota padrão parece mais apropriada, mas a Internet funciona, então continuo...

Depois de provar que o Raspbian Stretch tem acesso à Internet, tento:

root@computer:/# hostapd /etc/hostapd/hostapd.conf

E veja isto:

Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: driver initialization failed.
wlan1: interface state UNINITIALIZED->DISABLED
wlan1: AP-DISABLED
hostapd_free_hapd_data: Interface wlan1 wasn't started

Agora, curiosamente, depois de fazer isso:

root@computer:/# killall wpa_supplicant
root@computer:/# hostapd /etc/hostapd/hostapd.conf &

Eu entendi isso:

Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan1 with hwaddress aa:bb:cc:11:22:33 and ssid "myssid"
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED

Isso me permite conectar com êxito máquinas clientes ao myssid via wlan1, mas agora não consigo executar ping em google.com ou 8.8.8.8 e notei que wlan0 não está aparecendo no ifconfig e minha tabela de roteamento está assim agora:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Para recuperar o wlan0, eu faço:

root@computer:/# service dhcpcd restart
root@computer:/# sysctl daemon-reload

Agora wlan0 e wlan1 estão aparecendo no ifconfig, o Raspbian Stretch pode executar ping em google.com e 8.8.8.8, mas os clientes conectados ao wlan1 não têm acesso à Internet.

Neste ponto, minha tabela de roteamento está assim:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     304    0     0 wlan1

Se eu pudesse permitir o acesso à Internet dos clientes wlan1, tudo poderia acabar :)

Responder1

Como não há rota do roteador do gateway da Internet para a rede conectada ao wlan1 (192.168.0.0/28), acabei configurando o NAT dinâmico com sobrecarga de PAT entre wlan0 e wlan1.

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Missão cumprida!

Se eu tivesse acesso ao roteador do gateway da Internet, provavelmente poderia adicionar uma rota estática do endereço wlan0 do Raspbian Stretch à rede 192.168.0.0/28, mas 1) não tenho acesso a esse roteador e 2) também teria para configurar - a) uma reserva DHCP no servidor DHCP (ao qual também não tenho acesso) ou b) um endereço IP estático no wlan0 do Raspbian Stretch - se eu quisesse evitar fazer alterações quando a facilidade wlan0 dhcp expirar. Portanto, uma rota estática não funcionará neste caso.

De qualquer forma, este é o primeiro roteador/firewall funcional que vi ou ouvi falar que funcionaNÃOuse uma conexão com fio à WANOUa LAN.

As pessoas poderiam usar isso totalmente em uma rede WiFi gratuita e aberta em vez de usar um proxy VPN ou SOCKS (se você souber o suficiente sobre iptables para proteger sua conexão).

informação relacionada