Como rotear o tráfego IPv4 de uma interface para outra

0

Conectei meu Pi ao meu computador doméstico por meio de um link Ethernet. Meu computador está conectado à Internet por uma conexão sem fio. E gostaria de encaminhar todo o tráfego da Internet do meu Pi pelo meu computador.

Eu configurei uma sub-rede / 30 no link Ethernet e adicionei rotas em ambas, para que elas possam pingar umas nas outras.

Aqui estão minhas configurações.

Meu computador:

# IP addresses
eth0 192.168.1.1/30
wlan0 192.168.0.13/24


# IP routes
default via 192.168.0.254 dev wlan0  proto static  metric 600 
169.254.0.0/16 dev wlan0  scope link  metric 1000 
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.13  metric 600 
192.168.1.0/30 dev eth0  scope link 

Meu Pi:

# IP address
eth0 192.168.1.2/30

# IP routes
default via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0  proto static  metric 1024 
169.254.0.0/16 dev wlan0  scope link  metric 1000 
192.168.1.0/30 dev eth0  scope link 

No meu computador, para direcionar todo o tráfego de eth0 para wlan0, basta adicionar algumas rotas? Ou eu tenho que usar o NAT com iptables ?

EDITAR:

Após a resposta do Henrik, fiz uma pesquisa sobre o mascaramento e encontrei tutorial .

Neste, ele diz para verificar se o suporte ao kernel com mascaramento está ativo, procurando no /proc/net dir, por um kernel 2.2x.
No meu kernel 4.2.x, não encontrei o arquivo que ele mencionou, mas encontrei alguns arquivos *masquerade*.ko . Isso significa que o suporte de mascaramento está no meu kernel?
Se não, existe uma maneira de configurá-lo sem recompilar meu kernel?

No final do tutorial, ele dá algumas regras de firewall para fazer o mascaramento.
O primeiro é:

/sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 67 -d 0/0 68 -p udp  

Isso é apenas para permitir que as solicitações DHCP passem pelo computador "oculto". Mas eu consertei o Ip manualmente no meu PI, então não preciso disso, né?

Então, existem duas regras:

/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 10.1.199.0/24 -j MASQ

Por que há um DENY ?
Para minha sub-rede, é

/sbin/ipchains -A forward -s 192.168.1.0/30 -j MASQ

certo?

EDIT 2:
Eu encontrei um novo tutorial como sugerido por Henrik.
No arquivo /etc/rc.local , adicionei:

iptables -t nat -A POSTROUTING -s 192.168.1.0/30 -o wlan0 -j MASQUERADE

Então agora o mascaramento parece estar funcionando, mas não completamente.
De fato, quando eu tento pingar google.com com o endereço IP (8.8.8.8) está funcionando, mas se eu tentar com o URL não é.

Eu supus que fosse por causa de alguns DNS, então adicionei alguns IPs do DNS no arquivo /etc/resolv.conf . E isso não mudou nada. Então eu tentei ir para DuckDuckgo com o endereço IP no Firefox, e não está funcionando.

Parece que apenas o tráfego ICMP é encaminhado. Eu verifiquei com wireshark o que está vindo de eht0 e o que está vivendo por wlan0 .

    
por Phantom 31.03.2016 / 18:00

1 resposta

0

Você precisa ativar o encaminhamento (pode estar ativado por padrão) e configurar o mascaramento (apenas uma palavra chique para um tipo especial de NAT, mas provavelmente ajudará você a saber o que pesquisar).

    
por 31.03.2016 / 18:08