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 alguma investigação, acho que rastreei até um nome do servidor questão. Eu estou usando nameservers do google no meu arquivo dhcpd.conf abaixo, isso funciona sem problemas quando eu me conectar 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;
}
Removendo o option domain-name-servers
line faz com que todos os clientes wlan1
incapaz de resolver nomes de host.
Eu sou capaz de encontrar os servidores de nomes do hotspot atual /etc/resolv.conf
/etc/resolv.conf
nameserver 212.27.40.241
nameserver 212.27.40.240
No meu macbook, se eu entrar manualmente estes nameservers na área de configurações de rede, eu 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 wlan0
mudará conforme eu viajo e terei mais de um dispositivo conectado wlan1
.
Meu objetivo aqui é remover este último passo. Existe alguma maneira de automatizar isso no servidor pi framboesa ? Ou estou me aproximando disso da maneira errada? A melhor solução é sempre usar o DNS padrão do hotspot? Se sim, como eu instruo dhcpd
fazer isso automaticamente?
Algumas informações sobre minha configuração:
- 2 adaptadores físicos wifi
wlan0
se conectar a vários pontos de acessowlan1
para criar uma rede local.isc-dhcp-server
(dhcpd
) para distribuir endereços IPwlan1
hostapd
para criar um ponto de acesso local- Passagem NAT usando
iptables