Compartilhamento de conexão com a Internet sem o Network Manager

6

Eu segui estas instruções para configurar uma conexão de internet compartilhada com o iptables. Especificamente, eu:

  1. Adicionada uma interface de rede para minha segunda NIC em / etc / network / interfaces da seguinte forma:

    auto eth1

    iface eth1 inet static

    address 192.168.1.100

    netmask 255.255.255.0

  2. Insira exatamente essas regras:

    sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT

    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    sudo iptables -t nat -F POSTROUTING

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  3. Salvar minhas regras em um arquivo e adicioná-lo ao /etc/rc.local

  4. Enabled IP forwarding alterando o valor de / proc / sys / net / ipv4 / ip_forward para 1

  5. Uncommented a linha net.ipv4.ip_forward=1 em /etc/sysctl.conf

  6. Reiniciado

Agora, quando conecto meu laptop à interface eth1, obtenho um endereço IP e posso fazer ping no gateway, mas não consigo acessar nada além disso. ou seja, não posso fazer ping 8.8.8.8.

Caso seja relevante, minha outra interface é uma conexão PPPoE. Parece assim:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider

auto eth0
iface eth0 inet manual

Eu pensei que talvez o problema fosse que o dnsmasq não estava designando servidores de nomes, então eu adicionei dns-nameservers 8.8.8.8 8.8.8.4 em ambas as interfaces em / etc / network / interfaces. Isso não ajudou, então tentei adicionar os servidores de nomes ao /etc/resolv.conf. Não há ajuda lá. Finalmente, tentei adicioná-los ao /etc/dnsmasq.conf:

no-resolv
server=8.8.8.8
server=8.8.4.4

Isso também não ajudou. No entanto, não tenho certeza se meu problema realmente tem algo a ver com servidores de nomes ou se isso é apenas mais um caso de documentação desatualizada e sem valor.

Consegui fazer isso funcionar com o Network Manager em determinado momento, mas não gostei de como o Network Manager não me permitiu atribuir um intervalo de DHCP. Então, eu gostaria de evitar voltar a isso.

    
por David Kennedy 19.05.2013 / 11:04

1 resposta

2

Corrigido:

sudo iptables -A FORWARD -o ppp0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Obrigado novamente ao g0rdon em #openwrt:)

    
por David Kennedy 19.05.2013 / 22:22