Опция quagga ospf max-metric нарушает исходящие маршруты

У нас есть несколько машин, подключенных как к высокоскоростной, так и к низкоскоростной сети; другие машины находятся только в низкоскоростной сети. Я изучаю возможность развертывания OSPF, чтобы каждое соединение могло автоматически выбирать самый быстрый маршрут. Однако я не хочу, чтобы машины сами случайно становились маршрутизаторами, поэтому я использую параметр max-metric router-lsa administrator в /etc/quagga/ospfd.conf.

К сожалению, в дополнение к установке стоимости исходящего соединения на ∞ в целях рекламы, он также, кажется, использует ∞ (ну, 65535) в качестве стоимости канала при вычислении стоимости маршрута на хосте. В результате вместо того, чтобы отдавать предпочтение путям, в которых используется высокоскоростной канал, он обрабатывает их как пути с равной стоимостью. Если я удалю параметр max-metric , то он правильно вычислит, что предпочтительнее высокоскоростное соединение.

Примечание: в настоящий момент я просто экспериментирую с виртуальными машинами и виртуальными сетями, поэтому ссылки фактически эквивалент, и я вручную указываю затраты. Три машины подключены к одной сети с адресами 192.168.50.2-4, две подключены к другой сети с адресами 192.168.51.2-3, и каждая машина также имеет адрес обратной связи 192.168.100.x, по которому они будут обращаться к каждой. разное. Вот мой файл /etc/quagga/ospfd.conf на одной из машин:

hostname ospf
password zebra
enable password zebra

interface eth1
  ip ospf area 0
  ip ospf cost 1000
  ip ospf hello-interval 1
  ip ospf dead-interval 5

interface eth2
  ip ospf area 0
  ip ospf cost 100
  ip ospf hello-interval 1
  ip ospf dead-interval 5

interface lo
  ip ospf area 0 192.168.100.1
  ip ospf cost 100

router ospf
  log-adjacency-changes
  passive-interface lo
  max-metric router-lsa administrative
  auto-cost reference-bandwidth 1000

log stdout

и вот таблица маршрутизации:

node1# show ip ospf route
============ OSPF network routing table ============
N    192.168.50.0/24       [65535] area: 0.0.0.0
                           directly attached to eth1
N    192.168.51.0/24       [65535] area: 0.0.0.0
                           directly attached to eth2
N    192.168.100.1/32      [0] area: 0.0.0.0
                           directly attached to lo
N    192.168.100.2/32      [65535] area: 0.0.0.0
                           via 192.168.50.3, eth1
                           via 192.168.51.3, eth2
N    192.168.100.3/32      [65535] area: 0.0.0.0
                           via 192.168.50.4, eth1

============ OSPF router routing table =============

Как вы можете видеть, для доступа к 192.168.100.2 он стоит 65535 и будет маршрутизироваться через любой интерфейс.

Есть ли способ заставить хост использовать стоимость канала для собственного расчета кратчайшего пути, при этом не допуская использования хоста в качестве транзитного маршрутизатора?

0
задан 15 August 2020 в 14:59
1 ответ

Мне не удалось заставить Quagga делать то, что я хотел (пробовал также с FRR, та же проблема), но обнаружил, что Bird с OSPF v3 работает хорошо. OSPF v3 имеет встроенную функцию для тупиковых маршрутизаторов, вместо того, чтобы полагаться на установку бесконечности стоимости канала. Quagga/FRR не поддерживают RFC 5838, поэтому я не смог попробовать с ними OSPF v3.

0
ответ дан 18 August 2020 в 11:12

Теги

Похожие вопросы