Eu construí um roteador portátil usando um pi de framboesa. Minha configuração funciona, a menos que eu me conecte a um hotspot que exija algum tipo de login baseado na web.
Depois de algumas investigações, acho que o rastreei até um problema de servidor de nomes . Eu estou usando nameservers do google no meu arquivo dhcpd.conf abaixo, isso funciona sem problemas quando eu me conecto a pontos de acesso que não exigem um login na web inicial (wifi em casa, por exemplo).
/etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.100 192.168.111.200;
option broadcast-address 192.168.111.255;
option routers 192.168.111.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local-network";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
A remoção da linha option domain-name-servers
torna todos os clientes em wlan1
incapazes de resolver nomes de host.
Eu posso encontrar os nameservers do hotspot atual dentro de /etc/resolv.conf
/etc/resolv.conf
nameserver 212.27.40.241
nameserver 212.27.40.240
No meu macbook, se eu inserir manualmente esses nameservers na área de configurações de rede, sou redirecionado para a página de login do hotspot.
Uma vez logado, posso remover essas entradas manuais e ele será revertido para os servidores de nomes fornecidos pelo meu servidor DHCP.
No entanto, essa não é uma solução ideal, pois o ponto de acesso conectado em wlan0
mudará conforme eu viajo e terei mais de um dispositivo conectado a wlan1
.
Meu objetivo aqui é remover essa última etapa. Existe alguma maneira de automatizar este no servidor raspberrypi ? Ou estou me aproximando disso da maneira errada? A melhor solução é sempre usar o DNS padrão do hotspot? Em caso afirmativo, como instruir o dhcpd
a fazer isso automaticamente?
Algumas informações sobre minha configuração:
- 2 adaptadores físicos de wi-fi
-
wlan0
para se conectar a vários pontos de acesso
-
wlan1
para criar uma rede local.
-
isc-dhcp-server
( dhcpd
) para distribuir endereços IP acima de wlan1
-
hostapd
para criar um ponto de acesso local
- Passagem NAT usando
iptables