Проблемы с маршрутизацией на вторичной FIB/ таблице маршрутизации на FreeBSD

У меня есть потребность во вторичной таблице маршрутизации на этой машине. У меня все в основном настроено, но у меня проблема с настройкой маршрута по умолчанию на вторичном фибе.

В большинстве информации я могу найти о вторичных таблицах маршрутизации, например, простой. setfib 1 route add default 10.0.0.1 (где 10.0.0.1 - маршрутизатор в сети) используется для установки маршрута по умолчанию для вторичного фиба. В этих случаях 10.0.0.1 является внешним маршрутизатором в сети и является статическим маршрутом. В моем случае 10.0.0.1 - это машина, на которой я пытаюсь это настроить. Это также маршрутизатор для всей сети. Если я добавлю этот маршрут, я не смогу подключиться к внешним источникам, поскольку таблица маршрутизации в значительной степени зацикливается на самой себе. Например:

Сначала добавляется маршрут по умолчанию (маршрут к 10.0.0.1/16 уже существует)

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

Проверка связи с маршрутизатором (который является самой машиной на основном FIB) работает нормально:

# 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

Но внешние источники не могут быть достигнуты - "Время жизни превышено":

# 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

Трассировка маршрута к внешнему источнику выявляет проблему:

# 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

Публичный интерфейс на этом компьютере находится на другом физическом порту. Если я вручную добавлю шлюз, предоставленный провайдером, который назначен через DHCP, то фиб сработает - хотя это не долгосрочное решение, поскольку шлюз может измениться. Я знаю, что, возможно, мне удастся установить какой-то тип перехвата для автоматического переназначения шлюза при наличии нового, но я бы предпочел сделать это чисто и правильно.

Я думаю, что я ищу, как маршрутизировать трафик по этому волокну через другой интерфейс, а не через IP? Это даже вещь? Честно говоря, я не знаю достаточно о маршрутизации, чтобы действительно знать, куда я собираюсь идти с этим.

Вот сокращенная версия таблицы маршрутизации на обоих FIB (некоторые установленные туннели OpenVPN и другие разные вещи, такие как туннель ipv6, опущены):

# 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

Я ценю любую помощь в этом!

0 ответов

Правильно, вы добавляете себя в качестве маршрута по умолчанию, и это не будет работать. Вам необходимо изменить шлюз на другой хост в сети 10.0.0.0, который будет обрабатывать маршрутизацию для вас.

Измените команду route command на:

setfib 1 route add default <router on 10.0.0.0 network>

Затем, когда вы делаете setfib 1 ping 8.8.8.8он будет перенаправлен на маршрутизатор, который, как ожидается, будет обрабатывать его пересылку.

Другие вопросы по тегам