Como você configura o Raspbian Stretch como roteador somente sem fio com acesso à Internet?

0

A situação

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

Eu adicionei outro NIC RT5370 como wlan1 e o configurei como um ponto de acesso sem fio usando hostapd.

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

Eu 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 para esta rede.

O problema

Deve ser bem simples na verdade.

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

Eu vi guias em que 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 pingar google.com e 8.8.8.8 com êxito.

Eu posso ver wlan0 e wlan1 depois de verificar ifconfig e eles parecem estar configurados ok.

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

Eu 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 eu continuo ...

Depois de provar que o Stretch Raspbian tem acesso à Internet, eu 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 disso:

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

Eu entendo 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 sucesso máquinas clientes ao myssid via wlan1, mas agora não consigo pingar google.com ou 8.8.8.8 e notei que o wlan0 não está aparecendo no ifconfig e minha tabela de roteamento se parece com isso 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 em ifconfig, o Raspbian Stretch pode pingar google.com e 8.8.8.8, mas os clientes conectados a wlan1 não têm acesso à Internet.

Neste ponto, minha tabela de roteamento é 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 apenas eu pudesse permitir o acesso à Internet de clientes wlan1, tudo isso poderia acabar:)

    
por Rhyknowscerious 31.03.2018 / 04:22

1 resposta

0

Como não há rota do roteador de gateway da Internet para a rede conectada ao wlan1 (192.168.0.0/28), acabei configurando 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 de 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) d também tem que configurar - a) uma reserva DHCP no servidor DHCP (que eu também não tenho acesso) ou b) um endereço IP estático na wlan0 do Raspbian Stretch - se eu quisesse evitar fazer alterações quando o wlan0 dhcp a facilidade expira. Portanto, uma rota estática não funcionará nesse caso.

Enfim, este é o primeiro roteador / firewall funcional que eu vi ou ouvi falar que NÃO usa uma conexão com fio para a WAN OR na LAN.

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

    
por 03.04.2018 / 00:06