Eu tenho um roteador doméstico com conexão à Internet. Também tenho um computador que está em um local onde não consigo conectá-lo diretamente ao roteador. Felizmente, tenho dois pis de framboesa com os quais não sabia o que fazer.
Eu executei os seguintes comandos no PI #1 com base na resposta de @User1686 :
# Set static IP for eth0 interface
ip addr add 192.168.1.100/24 dev ppp0
# Set static IP for ppp0 interface
ip addr add 192.168.0.1/24 dev ppp0
# Enable IP forwarding
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
# Route packets to PI #2
ip route add 192.168.2.0/24 via 192.168.0.2 dev ppp0
# Masquerade all outgoing packets with his own IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
E execute os seguintes no PI #2:
# Set static IP for eth0 interface
ip addr add 192.168.2.1/24 dev eth0
# Set static IP for ppp0 interface
ip addr add 192.168.0.2/24 dev ppp0
# Enable IP forwarding
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
# Forward packets to PI #1
ip route add default via 192.168.0.1
ip route add 192.168.1.0/24 via 192.168.0.1 dev ppp0
# Masquerade all outgoing packets with his own IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Também habilitei o IP estático no meu computador para se conectar ao PI nº 2:
# Set static IP
ip addr add 192.168.2.100/24 dev eth0
# Forward packets to PI #2
ip route add default via 192.168.2.1
# Add DNS server
echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
Tive alguns problemas porque não consigo acessar alguns IPs e a Internet do meu computador. Aqui está uma tabela rápida do que eu tentei:
Comando | Pi #1 | Pi #2 | Computador | Qualquer dispositivo no HomeRouter |
---|---|---|---|---|
ping 192.168.0.1 | OK | OK | OK | NÃO |
ping 192.168.0.2 | OK | OK | OK | NÃO |
ping 192.168.1.1 | OK | OK | OK | OK |
ping 192.168.2.1 | OK | OK | OK | NÃO |
ping 192.168.1.100 | OK | OK | OK | OK |
ping 192.168.2.100 | OK | OK | OK | NÃO |
enrolar 8.8.8.8 | OK | OK | OK | OK |
curl google.com | OK | OK | OK | OK |
Com base na resposta de @ User1686 , meu computador agora pode se comunicar com outros dispositivos em meu roteador doméstico, mas agora eles podem se comunicar com meu computador ( ping 192.168.2.100
por exemplo).
Existe uma maneira de rotear pacotes sem editar a configuração do roteador?