Executando o 12.04 como um gateway - integração do resolvconf, dhclient e dnsmasq

1

Eu tenho um servidor de gateway que é configurado originalmente com o Ubuntu Desktop 12.04 - talvez um erro, eu não sei, algo para se ter em mente.

Eu tirei network-manager e agora quero que resolvconf , dhclient e dnsmasq toquem bem juntos.

dhclient obtém o endereço IP eth0 WAN do gateway e o endereço do servidor de nomes DNS do ISP do modem.

dnsmasq precisa servir o DHCP para o resto da rede local na eth1 e age como um cache DNS para a LAN e para a máquina do gateway.

Eu também configuro iptables como um firewall.

Neste momento, o /etc/resolv.conf do gateway mostra apenas o servidor de nomes 127.0.0.1 , que é o correto AFAIK.

No entanto, eu não acho que o dhclient está dando dnsmasq o servidor de nome DNS do ISP nem o dnsmasq está pegando os servidores de nome OpenDNS e Google que eu especifiquei em /etc/network/interfaces - no momento look-ups, ping ou surf, não funcione, a menos que eu edite manualmente /etc/resolv.conf para colocar em um servidor de nome como 8.8.8.8

Então eu removi o pacote resolvconf.

Agora, não estou conseguindo DHCP na minha lan e não consigo fazer pesquisas de DNS no próprio host - posso navegar e fazer ping na rede, mas não 127.0.0.1.

Para onde eu vou daqui? Esta configuração com a configuração para dhclient e dnsmasq , e os mesmos arquivos resolv.conf e hosts funcionaram na minha antiga caixa Debian.

    
por Adam 24.08.2012 / 19:03

1 resposta

1

Eu descobri qual era o problema.

Depois de muito tempo lutando para descobrir o que havia de errado com o resolvconf ou dnsmasq, finalmente decidi verificar novamente o firewall. Como eu não mudei nada nas regras do iptables por 5 anos, não achei que esse seria o problema. Mas eu não conseguia descobrir por que o dnsmasq estava escutando na porta 53, mas não escrevia nenhuma pesquisa de DNS em seus logs. Então tinha que ser o firewall.

Há algum tempo, escrevi uma regra para permitir que tudo isso não fosse da interface externa.

iptables -A INPUT -i !eth0 -j ACCEPT

Isso funcionou bem na antiga máquina que eu tinha porque não estava usando o dnsmasq para pesquisas de DNS no servidor real. Então, o dnsmasq trabalhou alegremente em solicitações recebidas na eth1. Mas na minha nova máquina, comecei a testá-lo com look-ups. Com o Ubuntu 12.04, essa regra não permite "todas as interfaces, exceto a eth0". Eu brinquei com a regra e achei que deveria ser isso:

iptables -A INPUT ! -i eth0 -j ACCEPT

Talvez se eu tivesse colocado a hora do trabalho de volta no início para configurar minha nova máquina com o ufw, eu teria sido instalado e executado no mesmo dia. Coulda woulda shoulda ....

    
por Adam 03.09.2012 / 17:45