A rota do Linux é adicionada entre a LAN estática e o gateway Wi-Fi

2

Eu tenho duas máquinas locais conectadas umas às outras via ethernet com fio e uma dessas máquinas também é conectada a uma rede wifi que fornece acesso à internet.

Uma representação pseudo-gráfica da topologia é a seguinte:

(PC2)----------(PC1)---------(Wifi Gateway)
    192.168.2.x      10.0.0.x

A configuração no PC2 é:

iface eth0 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

... e a configuração no PC1 é:

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

No PC1, adicionei uma rota padrão para o wlan0, pois, de outro modo, não conseguiria acessar a Internet:

route add default gw 10.0.0.1 wlan0

E também tentei configurar o gateway para a rede 192.168.2.x usando:

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1

Mas ainda não consigo acessar a internet do PC2.

Editar

Eu não tenho acesso ao gateway de Wi-Fi.

    
por Hamza 29.08.2012 / 15:15

2 respostas

2

Sua interface eth0 PC1 não deve ter um gateway definido - isso é o mesmo que configurar uma rota padrão e, portanto, com a rota padrão de adição definida como 10.0.0.1, metade dos pacotes irão na direção errada.

Para que o PC1 funcione como um roteador para o PC2, é necessário ativar o encaminhamento de pacotes. Isso pode ser ativado da seguinte maneira:

sudo sysctl -w net.ipvt.ip_forward=1

E para sobreviver à reinicialização, modifique /etc/sysctl.conf e adicione a linha

#net.ipv4.ip_forward=1

e descomente-o (ou adicione-o, se não estiver presente, ou altere-o para 1 , se estiver presente, mas definido como 0 )

Finalmente, você precisará modificar o gateway wifi em 10.0.0.1 e adicionar uma rota estática, dizendo que o gateway para a rede 192.168.2.0/24 é o endereço IP PC1 na faixa 10.0.0.0/24 (imagino é provavelmente 10.0.0.2).

Oh, onde quer que você tenha adicionado

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1
  • você deve removê-lo - a rede 192.168.2.0/24 não é acessada pelo roteador wifi.
por 29.08.2012 / 15:51
2

O que você deseja é compartilhar (usando o mascaramento) a conexão à Internet do PC1.

Você pode encontrar muitos guias on-line para fazer isso, mas aqui está um resumo:

Primeiramente, libere e exclua as regras de firewall existentes:

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

Em seguida, configure o iptables para tradução NAT:

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

Para garantir que as tabelas de IP sejam restauradas na inicialização, execute iptables-save | tee /etc/iptables.sav e edite /etc/rc.local e adicione as seguintes linhas antes da linha "exit 0": iptables-restore < /etc/iptables.sav

Ativar o encaminhamento de IP:

echo 1 > /proc/sys/net/ipv4/ip_forward

No Ubuntu, você também precisa editar /etc/sysctl.conf e descomentar:

 #net.ipv4.ip_forward=1

No PC2, você também deve fazer:

 ip route add default via 192.168.2.1
    
por 29.08.2012 / 15:51