Eu enfrentei uma dificuldade um pouco estranha com o roteamento baseado em políticas no servidor CentOS-6.6. Eu tenho uma configuração onde eu preciso fazer a rota todos os pacotes originados de 172.25.0.0/16
destinada a 172.24.0.0/16
e alguns XXX.155.106.50
via determinado gateway ( 10.4.20.5
) atrás de um túnel VPN. Eu só estou fazendo o que sempre fiz.
1) Eu defini a tabela zone2
no meu / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
25 zone2
2) Eu adicionei algumas regras, então aqui está o que eu recebo em resposta a ip rule show
:
0: from all lookup local
32762: from all to 172.25.0.0/16 lookup zone2
32763: from 172.25.0.0/16 lookup zone2
32766: from all lookup main
32767: from all lookup default
3) E, finalmente, adicionei algumas rotas à tabela, então, em resposta a ip route show table zone2
, recebo o seguinte:
XXX.155.106.50 via 10.4.20.5 dev tun0
172.25.64.0/24 dev cloudbr0 scope link
172.25.65.0/24 dev cloudbr0 scope link
172.24.0.0/16 via 10.4.20.5 dev tun0
Tudo parece bastante legítimo, certo? Mas, infelizmente, essas regras não parecem estar funcionando, já que o tcpdump mostra todos os pacotes de 172.25.0.0/16
sendo enviados não através do meu túnel, mas diretamente.
O mais engraçado: quando eu faço algo como ping -I 172.25.65.254 XXX.155.106.50
, tudo funciona bem e os pacotes estão sendo encaminhados pelo túnel. Mas se o pacote vem da rede (a propósito, a interface de rede é conectada) - todas essas regras parecem ser ignoradas e os pacotes vão diretamente. : (
Quaisquer pistas & dicas serão muito apreciadas!