Como mudar o roteamento genérico para roteamento de origem?

0

Preciso fazer o encaminhamento de origem e antes de entrar em configurações mais complicadas, quero entender como isso funciona, alternando o roteamento genérico (aquele criado magicamente pela configuração de rede) para um roteado de origem.

O objetivo é criar uma tabela de roteamento específica e definir um ip rule para rotear o tráfego do meu IP por meio dessa tabela de roteamento (que, até onde eu entendi, o que acontece com a tabela default ). Isto está em um Debian 8 com uma interface à qual é atribuído o IP 192.168.1.107 .

O problema é que essa clonagem não funciona.

Eu criei uma nova entrada em /etc/iproute2/rt_tables

200 NORMAL

Eu então despejei a tabela de roteamento atual - para uma rede de trabalho

root@debian-testing:~# ip route show table all
default via 192.168.1.1 dev eth0
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.107
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1
broadcast 192.168.1.0 dev eth0  table local  proto kernel  scope link  src 192.168.1.107
local 192.168.1.107 dev eth0  table local  proto kernel  scope host  src 192.168.1.107
broadcast 192.168.1.255 dev eth0  table local  proto kernel  scope link  src 192.168.1.107

Eu movi entradas relacionadas à interface real ( 192.168.1.107 ) para a tabela NORMAL (o que está abaixo é o conteúdo de um arquivo t.txt que será analisado em um momento)

root@debian-testing:~# cat t.txt
local 127.0.0.0/8 dev lo  table local src 127.0.0.1
local 127.0.0.1 dev lo  table local  src 127.0.0.1
local 192.168.1.107 dev eth0  table NORMAL src 192.168.1.107
192.168.1.0/24 dev eth0 src 192.168.1.107 table NORMAL
broadcast 127.0.0.0 dev lo  table local src 127.0.0.1
broadcast 127.255.255.255 dev lo  table local  src 127.0.0.1
broadcast 192.168.1.0 dev eth0  table NORMAL src 192.168.1.107
broadcast 192.168.1.255 dev eth0  table NORMAL src 192.168.1.107
default via 192.168.1.1 dev eth0 table NORMAL

Em seguida, esvaziei todas as entradas de roteamento existentes, carreguei as entradas acima e informei ao sistema que os pacotes de 192.168.1.107 deveriam usar a tabela NORMAL

root@debian-testing:~# ip route flush table all ; while read name; do echo "adding ${name}";ip route add ${name}; done < t.txt ; ip rule add from 192.168.0.107 table NORMAL
adding local 127.0.0.0/8 dev lo  table local src 127.0.0.1
RTNETLINK answers: Invalid argument
adding local 127.0.0.1 dev lo  table local  src 127.0.0.1
adding local 192.168.1.107 dev eth0  table NORMAL src 192.168.1.107
adding 192.168.1.0/24 dev eth0 src 192.168.1.107 table NORMAL
adding broadcast 127.0.0.0 dev lo  table local src 127.0.0.1
adding broadcast 127.255.255.255 dev lo  table local  src 127.0.0.1
adding broadcast 192.168.1.0 dev eth0  table NORMAL src 192.168.1.107
adding broadcast 192.168.1.255 dev eth0  table NORMAL src 192.168.1.107
adding default via 192.168.1.1 dev eth0 table NORMAL

Infelizmente, não consigo mais acessar nem o IP local nem o host externo, mesmo que a tabela de roteamento tenha sido repovoada. O único ping que passa é para 127.0.0.1 .

root@debian-testing:~# ping 8.8.8.8
connect: Network is unreachable
root@debian-testing:~# ping 192.168.1.107
connect: Network is unreachable
root@debian-testing:~# ip route
root@debian-testing:~# ip route show table all
default via 192.168.1.1 dev eth0  table NORMAL 
broadcast 192.168.1.0 dev eth0  table NORMAL  scope link  src 192.168.1.107 
192.168.1.0/24 dev eth0  table NORMAL  scope link  src 192.168.1.107 
local 192.168.1.107 dev eth0  table NORMAL  scope host  src 192.168.1.107 
broadcast 192.168.1.255 dev eth0  table NORMAL  scope link  src 192.168.1.107 
broadcast 127.0.0.0 dev lo  table local  scope link  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  scope link  src 127.0.0.1 

Onde devo procurar corrigir isso? Minha abordagem é correta?

    
por WoJ 27.02.2016 / 22:35

1 resposta

0

Tudo parece correto, exceto que você não está especificando a interface a ser usada na comunicação. Experimente

ping -I 192.168.1.107 -c1 8.8.8.8

e isso deve funcionar.

    
por 28.02.2016 / 12:22