quagga ospf max-metric 選項弄亂了出站路由

quagga ospf max-metric 選項弄亂了出站路由

我們有許多機器連接到高速和低速網路;其他機器僅在低速網路上。我正在研究部署 OSPF,以便每個連接都可以自動選擇最快的路由。但是,我不希望電腦意外地成為路由器本身,因此我使用max-metric router-lsa administrative/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,並將透過任一介面進行路由。

是否有某種方法可以讓主機使用鏈路成本進行自己的最短路徑計算,同時仍防止主機被用作中轉路由器?

答案1

我沒能讓 Quagga 做我想做的事(也嘗試過 FRR,同樣的問題),但我發現 Bird 與 OSPF v3 工作得很好。 OSPF v3 具有內建根路由器的內建功能,而不是依賴將連結成本設定為無限大。 Quagga/FRR 不支援 RFC 5838,因此我無法使用它們來嘗試 OSPF v3。

相關內容