Custos de rota do OSPF no BIRD

1

Estou migrando uma configuração redundante do BIND de roteamento OSPF anycast do Quagga para o BIRD.

Uma das minhas dificuldades é obter várias rotas com custos diferentes com o BIRD, da mesma forma como faço em quagga.

Como no Quagga eu estou fazendo em /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
!

Eu posso ver em birdc usando o comando show ospf state que minha configuração não está dando pesos, apesar de ter definido o custo nas interfaces em /etc/bird.conf . O que fazer?

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;
                };

        };
}
    
por Rui F Ribeiro 26.07.2017 / 15:38

1 resposta

3

Acabei aprendendo com a saída de show ospf state que eu estava me referindo a stubnet no jargão do BIRD, e descubro em uma questão obscura, e na definição da gramática do BIRD, a sintaxe e o local certos.

Então, no final, a configuração para dar custos a rotas específicas anunciadas pelo OSPF neste caso é feita definindo uma stubnet anunciando a rede na definição da área OSPF, como em:

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;
                };

        };
}

Como pode ser visto usando birdc , funcionou:

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
    
por 26.07.2017 / 15:38