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).
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
.
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).
Tags networking routing linux