web-dev-qa-db-ja.com

BIRDのOSPFルートコスト

エニーキャストOSPFルーティングBIND冗長セットアップをQuaggaからBIRDに移行しています。

私の難しさの1つは、quaggaで行っているのと同じように、BIRDでコストの異なる複数のルートを取得することです。

Quaggaのように、私は/etc/quagga/ospfd.confでやっています。

interface dummy0
 ip ospf cost 100
!
interface dummy1
 ip ospf cost 500
!
interface dummy2
 ip ospf cost 1000
!
interface dummy3
 ip ospf cost 900
!

コマンドshow ospf stateを使用してbirdcで、/etc/bird.confのインターフェイスでコストを定義したにもかかわらず、構成が重みを与えていないことがわかります。何をすべきか?

protocol ospf {
        tick 2;
        rfc1583compat yes;

        area 0.0.0.0 {

        networks {
            1.1.1.0/22;
            2.2.2.2/32;
            3.3.3.3/32;
            4.4.4.4/32;
            5.5.5.5/32;
        };

                interface "eth0" {

                        cost 1000;
                        password "xxxxxxxxxx" {
                            id 5;
                        };
                        authentication cryptographic; 
                };

                interface "dummy0" {
                        stub;
                        cost 100;
                };
                interface "dummy1" {
                        stub;
                        cost 500;
                };
                interface "dummy2" {
                        stub;
                        cost 1000;
                };
                interface "dummy3" {
                        stub;
                        cost 900;
                };

        };
}
1
Rui F Ribeiro

結局、BIRDの用語でstubnetを参照していたshow ospf stateの出力から学習し、あいまいな質問とBIRDの文法定義で正しい構文と場所を見つけました。

したがって、最後に、この場合にOSPFによってアナウンスされた特定のルートにコストを与えるための構成は、次のように、OSPFエリア定義でネットワークをアナウンスするスタブネットを定義して行われます。

protocol ospf {
     tick 2;
        rfc1583compat yes;

        area 0.0.0.0 {
        #stub;
        networks {
            1.1.1.0/22;
        };
                stubnet 2.2.2.2/32 {
                    cost 100;
                };
                stubnet 3.3.3.3/32 {
                cost 500;   
        };
                stubnet 4.4.4.4/32 {
            cost 1000;
        };
                stubnet 5.5.5.5/32 {
            cost 900;
        };
                interface "eth0" {

                        cost 1000;
                        password "xxxxxxxxxxxxxxxxxxxx" {
                           id 5;
                        };
                        authentication cryptographic; 
                };

                interface "dummy0" {
                        stub;
                };
                interface "dummy1" {
                        stub;
                };
                interface "dummy2" {
                        stub;
                };
                interface "dummy3" {
                        stub;
                };

        };
}

birdcを使用するとわかるように、次のように機能しました。

dns:/etc/bird# birdc
BIRD 1.6.3 ready.
bird> show ospf state
bird> 
area 0.0.0.0
.....................

    router 1.1.1.1
        distance 1000
        network 1.1.1.0/22 metric 1000
        stubnet 4.4.4.4/32 metric 1000
        stubnet 5.5.5.5/32 metric 900
        stubnet 3.3.3.3/32 metric 500
        stubnet 2.2.2.2/32 metric 100

.................

dns:/etc/bird# exit
3
Rui F Ribeiro