Problemas de roteamento na tabela de FIB / roteamento secundária no FreeBSD

1

Eu tenho necessidade de uma tabela de roteamento secundária nesta máquina. Eu tenho tudo configurado principalmente, mas estou tendo um problema em fazer com que a rota padrão funcione na mentira secundária.

Na maioria das informações, posso encontrar tabelas de roteamento secundárias, por exemplo, simples. setfib 1 route add default 10.0.0.1 (onde 10.0.0.1 é o roteador na rede) é usado para definir uma rota padrão para a fibra secundária. Nesses casos, 10.0.0.1 é um roteador externo na rede e é uma rota estática. No meu caso, 10.0.0.1 é a máquina em que estou tentando configurar isso. É também o roteador para toda a rede. Se eu adicionar essa rota, não posso me conectar a fontes externas, já que a tabela de roteamento praticamente faz um loop em si mesma. Por exemplo:

Primeiro, uma rota padrão da rota é adicionada (uma rota para 10.0.0.1/16 já está em vigor)

# setfib 1 route add default 10.0.0.1
add net default: gateway 10.0.0.1 fib 1

O ping do roteador (que é a própria máquina no FIB principal) funciona bem:

# setfib 1 ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.043 ms
^C
--- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.043/0.043/0.043/0.000 ms

Mas fontes externas não podem ser alcançadas - "Tempo para viver excedido":

# setfib 1 ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
36 bytes from this_server.my.domain (10.0.0.1): Time to live exceeded
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 24ce   0 0000  01  01 3f00 10.0.0.1  8.8.8.8

^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

Um traceroute para a fonte externa revela o problema:

# setfib 1 traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 40 byte packets
 1  this_server (10.0.0.1)  0.043 ms  0.036 ms  0.024 ms
 2  this_server (10.0.0.1)  0.033 ms  0.030 ms  0.028 ms
 3  this_server (10.0.0.1)  0.027 ms  0.031 ms  0.032 ms
    ...snip...
64  this_server (10.0.0.1)  0.132 ms  0.138 ms  0.137 ms

A interface pública nesta máquina está em outra porta física. Se eu adicionar manualmente o gateway fornecido pelo ISP, que é atribuído via DHCP, a fibra funciona - embora essa não seja uma solução de longo prazo, pois o gateway pode mudar. Estou ciente de que posso ser capaz de configurar algum tipo de gancho para reatribuir o gateway automaticamente quando fornecido com um novo, mas prefiro fazer isso da maneira correta e limpa.

Eu acho que o que eu estou procurando é como direcionar o tráfego nessa mentira sobre a outra interface, ao invés de um IP? Isso é mesmo uma coisa? Eu sinceramente não sei o suficiente sobre roteamento para realmente saber onde eu estou indo para ir com isso.

Aqui está uma versão abreviada da tabela de roteamento em ambos os fibs (alguns túneis OpenVPN estabelecidos e outras coisas diversas, como um túnel ipv6, são omitidos):

# netstat -r4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            lo0-100.NYCMNY-VFT UGS         em0
10.0.0.0/16        link#1             U           re0

# setfib 1 netstat -r4
Routing tables (fib: 1)

Internet:
Destination        Gateway            Flags     Netif Expire
default            this_server        UGS         re0
10.0.0.0/16        link#1             U           re0

Agradeço qualquer ajuda com isso!

    
por Brett Gmoser 13.08.2018 / 17:33

0 respostas