Não há necessidade de adicionar rotas no roteador. Eles já estão conectados diretamente lá como uma interface local! Você pode ver isso executando route -n
. Por exemplo:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.25.1 0.0.0.0 UG 0 0 0 wlan0 # def.gw
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0 # zeroconf
192.168.0.0 192.168.25.254 255.255.255.0 UG 0 0 0 wlan0 # route
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 testvpn # interf.
192.168.25.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0 # interf.
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 # interf.
Eu marquei uma rota real adicionada manualmente aqui com # route
. Você notará que essas linhas também são listadas com o G
flag! Os sem essa bandeira são apenas locais, diretamente disponíveis.
A única coisa que você precisa ativar é o encaminhamento IPv4.
sudo sysctl -w net.ipv4.ip_forward=1
e habilitá-lo permanentemente colocando essa linha em um arquivo /etc/sysctl.d/10-routing.conf
(você pode criar um nome):
net.ipv4.ip_forward=1
A partir daqui, você terá que informar aos hosts nas redes sobre essas rotas. Então, em uma máquina no 10.100.0.0/16
, por exemplo, você precisará adicionar as rotas assim:
# On a client somewhere in 10.100.0.0
auto eth0
iface eth0 inet static
address 10.100.0.123
netmask 255.255.0.0
# route 10.0.0.0/16 via 10.100.0.4
up route add -net 10.0.0.0 netmask 255.255.0.0 gw 10.100.0.4
# route 10.101.0.0/16 via 10.101.0.1
up route add -net 10.101.0.0 netmask 255.255.0.0 gw 10.101.0.1
Uma maneira muito melhor de anunciar essas rotas é dizer a elas usando o DHCP ou torná-lo o gateway padrão usando gateway
. Como alternativa, use protocolos de roteamento "reais", como OSPF, RIP, etc.
A propósito, a sintaxe no seu arquivo /etc/network/interfaces
está errada. As entradas up
devem fazer parte de cada interface individual listada, recuada por espaços como a entrada address
.