tabela de rotas com eth0 e ppp0 quebradas

1

Eu usei este guia para se conectar ao meu servidor VPN (pptp), que é o único guia que funcionou a partir de muitos tutoriais.

Depois de conectar-se ao servidor VPN, a tabela de rotas aparece abaixo e às vezes são apenas as duas últimas linhas (muito aleatórias, tenho certeza de que há um motivo).

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     255.255.255.255 UGH   0      0        0 ppp0
192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Minha configuração: (os IPs foram alterados no exemplo para simplificar)

  • Computador local (centos) em execução em 192.168.1.20
  • Conecta-se a uma VPN externa (ubuntu) em 35.100.100.35 (internet) com VPN local IP local 192.168.0.1
  • Quando o centos está conectado, a interface ppp0 é adicionada com o IP 192.168.0.2

No entanto, eu preciso de todo o tráfego de 192.168.0.2 para ser encaminhado via 192.168.0.1 (servidor vpn). Atualmente usa internet local.

Eu tentei muitas variações e não consigo acertar.

route add default ppp0 costumava trabalhar, mas com as tabelas de rotas destruídas, não funciona mais.

Como deve ser a tabela de rotas?

    
por Onimusha 06.11.2016 / 05:07

2 respostas

1

Seu problema

Eu recomendaria uma tabela de roteamento separada para isso, pois presumo que o tráfego que chega em 192.168.0.2 tenha um endereço de origem de 35.100.100.35 . O problema que você está tendo é que 35.100.100.35 não está listado em sua tabela de roteamento, portanto, o padrão está sendo usado.

Você pode conseguir algo simples assim:

ip route add 35.0.0.0/8 via 192.168.0.1 dev ppp0

Para que, quando sua máquina tentar responder a um endereço 35 , ela faça isso na interface ppp0 .

A versão mais robusta / elaborada segue.

NOTA: Você deve reinicializar sua máquina para limpar quaisquer alterações temporárias feitas em sua tabela de roteamento.

Regras de roteamento

Uma regra de roteamento simples é ter qualquer tráfego destinado a ou de um IP ou sub-rede específico para usar uma tabela de roteamento diferente:

ip rule add from [interface ip]/[netmask] tab [table number] priority [priority]
ip rule add to [interface ip]/[netmask] tab [table number] priority [priority]

Nesse caso, você está preocupado com a chegada do tráfego em 192.168.0.2 (seu ppp0 IP do dispositivo). Você precisará criar uma nova tabela de roteamento adicionando ao arquivo: /etc/iproute2/rt_tables . A sintaxe é [table number] [table name] . Eu normalmente uso o nome da interface como o nome da tabela, mantenha as coisas simples.

echo "168   ppp0" >> /etc/iproute2/rt_tables 

ip rule add from 192.168.0.2/32 tab 168 priority 101
ip rule add to 192.168.0.2/32 tab 168 priority 101

Isso deve fazer com que todo o tráfego endereçado a 192.168.0.2 corresponda à tabela de roteamento 168 , bem como a qualquer tráfego que responda ao tráfego nessa tabela.

Usando novas tabelas de roteamento

Agora direcionamos o tráfego para essa tabela de roteamento 168 , mas ela estaria vazia. Basta adicionar uma rota padrão a ela agora.

ip route add default via 192.168.0.1 dev ppp0 table 168

Isso adiciona uma rota padrão à tabela 168 , que é simplesmente dizer usar a interface ppp0 .

O que parece

Suas tabelas de roteamento no final provavelmente devem ter esta aparência:

# ip route show
default dev eth0 proto static metric 1024
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20
192.168.0.0/24 dev ppp0 proto kernel scope link src 192.168.0.2

Esta é a sua tabela de roteamento padrão, a tabela normalmente usada para o tráfego. Quanto às rotas aqui: o padrão como você provavelmente definiu originalmente, e as duas segundas são inferidas com base no endereço IP de suas interfaces.

# ip rule show
0:       from all lookup local
101:     from 192.168.0.2 lookup ppp0
101:     from all to 192.168.0.2 lookup ppp0

Isso lista suas regras de roteamento, o formato é "[prioridade]: [regra] pesquisa [tabela]". Este exemplo indica que, normalmente, use a tabela de roteamento local. Se o tráfego for de ou para 192.168.0.2, use a tabela de roteamento denominada ppp0 .

# ip route show table ppp0
default via 192.168.0.1 dev ppp0

Isso mostra a tabela de roteamento denominada ppp0 , que deve enviar todo o tráfego para fora ppp0 .

Resultado final

O resultado final disso é que quando o tráfego está indo para ou do IP da sua interface ppp0 , ele usará a tabela de roteamento chamada ppp0 . A tabela de roteamento ppp0 acabou de enviar todo o tráfego para fora do dispositivo ppp0 .

    
por 08.11.2016 / 23:42
0

route add -net 192.168.0.0/24 gw 192.168.0.1 dev ppp0

    
por 08.11.2016 / 21:43