Como encaminhar pacotes entre duas interfaces?

5

Meu laptop (use o Ubuntu 13.10) está conectado à internet usando uma conexão com fio em eth0 com ip 192.168.42.13 e também atua como wifi hotspot at wlan0 com o ip 192.168.1.1 (usei a base aérea -ng para configurar o ap). Agora eu tenho um dispositivo Android que precisa se conectar a esse wifi. Eu vejo que meu android é capaz de se conectar ao hotspot e receber as seguintes configurações de rede do servidor dhcp que eu configurei. (Eu usei uma chamada de ferramenta Net Info II da PlayStore para ver os detalhes abaixo no meu android).

# My android network settings (connected to the wlan0 of my laptop):
ip address: 192.168.1.10
subnetmask: 255.255.255.0
gateway   : 192.168.1.254
ap-mac    : xx:xx:xx:xx:xx:xx

# My pc's eth0 configuration
ip address: 192.168.42.13
submetmask: 255.255.255.0
gateway   : 192.168.42.129
iface mac : yy:yy:yy:yy:yy:yy

# My pc's wlan0 (hotspot interface) configuration
ip address: 192.168.1.1
subnetmask: 255.255.255.0
gateway   : 192.168.1.1
iface mac : zz:zz:zz:zz:zz:zz

Este tópico aqui fala sobre um problema semelhante problema. Vejo que preciso encaminhar pacotes entre eth0 e wlan0 network para conectar os dispositivos do meu dispositivo sem fio à Internet. Agora Como faço para encaminhar os pacotes que recebo de wlan0 to eth0 e eth0 to wlan0 para conectar meu dispositivo à internet?

    
por vikkyhacks 05.12.2013 / 10:46

1 resposta

5

Primeiro, você precisa ativar o encaminhamento de IP no seu sistema. Para fazer isso apenas desta vez, use

sysctl -w net.ipv4.ip_forward=1

ou

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

como root. Se você quiser torná-lo permanente, edite

/etc/sysctl.conf

e adicione uma linha contendo

net.ipv4.ip_forward = 1

Isso será aplicado na reinicialização ou quando você executar

sysctl -p /etc/sysctl.conf

Uma vez feito isso, você provavelmente precisará de conexões NAT, pois é improvável que seu roteador saiba que a rede 192.168.1.0/24 está acessível através do 192.168.42.13. Se 192.168.42.13 é estático, você pode usar

iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.42.13

caso contrário use

iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j MASQUERADE

Verifique no Ubuntu IptablesHowTo como salvar essas regras ao reinicializar.

    
por 05.12.2013 / 11:22