Bonjour,

Je ne vois pas ce que le passage à Bird 2 apporte dans ce cas.  Tu veux
juste redistribuer certaines routes du kernel vers OSPF, mais il te faut
un moyen de les identifier.

Tu peux matcher sur tous les attributs génériques de routes décrits ici :

  https://bird.network.cz/?get_doc&v=16&f=bird-5.html#ss5.5 (bird 1.6)
  https://bird.network.cz/?get_doc&v=20&f=bird-5.html#ss5.5 (bird 2.0)

+ ceux du protocole kernel (faut scroller un peu) :

  https://bird.network.cz/?get_doc&v=16&f=bird-6.html#ss6.6


Le plus simple est probablement d'utiliser krt_source qui correspond au
"proto" de iproute2 (cf. /etc/iproute2/rt_protos), ça ressemble à ça :

- ajouter une route dans ton automatisation : "ip route replace XXX/X via YYY 
proto 142"
  (j'utilise "replace" au lieu de "add" pour écraser une éventuelle route
  existante, à toi de voir ce que tu préfères dans ce cas)

- importer ces routes dans le proto kernel : soit "import all" soit plus
  précis "import where krt_source = 142"

- exporter ces routes dans le proto OSPF : "export where krt_source = 142"

Si tu exportais vers BGP, ce serait une bonne idée de mettre une
communauté pour que tous tes routeurs sachent d'où vient la route, ça
ressemblerait à ça :

    filter kernel_import {
        if krt_source = 142 then {
            bgp_community.add((ton_AS, 142));
            accept;
        }
        reject;
    }

    protocol kernel {
        ...
        import filter kernel_import;
    }

    filter bgp_export {
         ...
         if filter(bgp_community, [(ton_AS, 142)]).len > 0 then accept;
         reject;
    }

    protocol bgp {
        ...
        export filter bgp_export;
    }


On fait un truc du genre pour le blackhole, il suffit d'ajouter une route
/32 dans le kernel (avec le bon proto) pour qu'elle soit propagée en BGP à
tous les transitaires avec la communauté de blackhole qui va bien.  C'est
la même conf que Gitoyen dispo ici :

  
https://code.ffdn.org/gitoyen/bird-config/blob/master/etc/local/bird/common/bgp-filters.conf#L134

Baptiste

On 16-01-20, Duchet Rémy wrote:
> L'objectif c'est justement que Bird apprenne les routes via autre chose que 
> "STATIC".  Aujourd'hui c'est un script qui modifie un simple fichier, via de 
> l'automatisation. Et c'est STATIC => OSPF . 
> Mais dans ce sens pour ajouter une route dans la table STATIC, ça demande le 
> "configure" pour que la route soit active pour Bird. Et donc le changement de 
> la table STATIC provoque la propagation de l'intégralité de la table OSPF à 
> tous les autres devices. 
> 
> Pour la partie BGP je n'ai pas de soucis, d'autant que c'est un de nos RS.
> Par contre, dans la 2.0.7 Ipv4 et IPv6 c'est le même process. Et c'est les 
> TABLE qui semblent séparer les versions, du coup toute la config change. 
> 
> Cordialement,
> 
> Rémy 
> 
> -----Original Message-----
> From: Alarig Le Lay <[email protected]> 
> Sent: jeudi, 16 janvier 2020 17:49
> To: Duchet Rémy <[email protected]>
> Cc: [email protected]
> Subject: Re: [FRnOG] [TECH] OSPF Bird et configure
> 
> What ?!
> 
> bird> show route
> Table master4:
> 0.0.0.0/0            unicast [kernel_ipv4 09:46:49.133] (10)
>         via 85.166.184.1 on enp2s0
> 45.91.126.32/28      unicast [ospf_ipv4 09:47:05.225] E1 (150/20) 
> [45.91.126.96]
>         via 45.91.126.96 on enp3s0.50
> 79.170.80.128/25     unicast [ospf_ipv4 10:10:59.225] E2 (150/10/64) 
> [4faa50fa] [45.91.126.236]
>         via 45.91.126.236 on tinc0
> […]
> bird> show route protocol kernel_ipv4
> Table master4:
> 0.0.0.0/0            unicast [kernel_ipv4 09:46:49.133] (10)
>         via 85.166.184.1 on enp2s0
> 85.166.184.0/22      unicast [kernel_ipv4 09:46:49.133] (10)
>         dev enp2s0
> bird> show route protocol kernel_ipv6
> Table master6:
> ::/0                 unicast [kernel_ipv6 09:46:49.133] (10)
>         via fe80::5e5e:abff:fe43:1ece on enp2s0
> 2001:4640:a14f::/48  unreachable [kernel_ipv6 09:46:49.133] (10)
> 
> J’ai bien des routes OSPF et bird ne les apprend pas via le kernel. Je ne 
> vois pas comment ça pourrait marcher s’il le faisait d’ailleurs.
> 
> Et en version BGP (avec une full) c’est pareil :
> 
> bird> show route
> 128.0.128.0/20     via 89.234.186.33 on vmbr12 [ibgp_asbr01_ipv4 2020-01-04] 
> * (100/?) [AS25513i]
>                    via 89.234.186.33 on vmbr12 [ibgp_asbr02_ipv4 2020-01-11 
> from 89.234.186.34] (100/?) [AS25513i]
> 208.0.208.0/24     via 89.234.186.34 on vmbr12 [ibgp_asbr02_ipv4 2020-01-11] 
> * (100/20) [AS46559i]
>                    via 89.234.186.34 on vmbr12 [ibgp_asbr01_ipv4 2020-01-11 
> from 89.234.186.33] (100/20) [AS46559i]
> 40.0.40.0/24       via 89.234.186.34 on vmbr12 [ibgp_asbr02_ipv4 2020-01-11] 
> * (100/20) [AS4249i]
>                    via 89.234.186.34 on vmbr12 [ibgp_asbr01_ipv4 2020-01-11 
> from 89.234.186.33] (100/20) [AS4249i] […]
> bird> show route protocol kernel1
> 89.234.186.114/32  dev tap109i0 [kernel1 2019-09-29] * (10)
> 89.234.186.115/32  dev tap106i0 [kernel1 2019-09-29] * (10)
> 80.67.190.218/32   dev tap140i0 [kernel1 2019-09-29] * (10)
> […]
> 
> Et ça correspond bien aux routes que j’exporte :
> 
> bird> show route export ibgp_asbr01_ipv4
> 89.234.186.114/32  dev tap109i0 [kernel1 2019-09-29] * (10)
> 89.234.186.115/32  dev tap106i0 [kernel1 2019-09-29] * (10)
> 80.67.190.218/32   dev tap140i0 [kernel1 2019-09-29] * (10)
> 89.234.186.112/32  dev tap101i0 [kernel1 2019-09-29] * (10) […]
> 
> Et là, c’est du 1.6 (merci debian…)
> 
> On jeu. 16 janv. 16:28:36 2020, Duchet Rémy wrote:
> > En fait les routes BGP apparaissaient dans le kernel avec les routes OSPF.
> > En lisant le mail, je viens de relire la config de Bird.
> > Je viens de me rendre compte que j'avais un export all sous le protocol 
> > kernel qui me polluait.
> > 
> > Du coup, je regarde pour upgrader en 2.0.7, pour loader les routes (dans 
> > l'idée linux => kernel => annonce bgp) et ainsi supprimer l'OSPF.
> > Mais bien évidement la migration 1.6 => 2 se fait dans la ré-écriture 
> > complète de la conf.
> > 
> > Merci à tous pour les réponses.
> > 
> > Rémy
> > 
> > -----Original Message-----
> > From: [email protected] <[email protected]> On Behalf Of 
> > Alarig Le Lay
> > Sent: jeudi, 16 janvier 2020 09:41
> > To: Duchet Rémy <[email protected]>
> > Cc: [email protected]
> > Subject: Re: [FRnOG] [TECH] OSPF Bird et configure
> > 
> > Non, tu connais seulement les routes qui sont insérées « à la main » (ou 
> > via un autre soft).
> > Sinon bird apprendrait ses propres routes et bonjour la boucle infinie.
> > 
> > On jeu. 16 janv. 08:08:22 2020, Duchet Rémy wrote:
> > > Bonjour,
> > >
> > > Sur cette même instance Bird, on a déjà du BGP pour agréger 
> > > plusieurs full view.
> > > Du coup, le kernel connaissant déjà toutes les routes BGP, ça va 
> > > faire mal de chercher à voir si une route OSPF est déjà dans la table..
> > >
> > > Mais oui, une des pistes est de basculer sur du "tout" BGP. Mais la 
> > > problèmatique sera identique si on doit faire du configure pour 
> > > ajouter des routes.
> > >
> > > Cordialement,
> > >
> > > Rémy
> > >
> > > -----Original Message-----
> > > From: [email protected] <[email protected]> On Behalf Of 
> > > Alarig Le Lay
> > > Sent: mercredi, 15 janvier 2020 20:24
> > > To: [email protected]
> > > Subject: Re: [FRnOG] [TECH] OSPF Bird et configure
> > >
> > > Bonsoir,
> > >
> > > On mer. 15 janv. 17:01:28 2020, Duchet Rémy wrote:
> > > > Bonsoir la liste,
> > > >
> > > >
> > > >
> > > > S’il y a des utilisateurs de Bird sur la liste (je suis sur que 
> > > > oui) connaissez-vous un moyen de rajouter une route (autrement 
> > > > qu’en
> > > > STATIC) sur le serveur Bird, pour que ce dernier l’annonce (OSPF 
> > > > ou
> > > > BGP) sans avoir à faire un « configure » à chaque changement ?
> > > >
> > > > Nous avons quelques routes OSPF que nous annonçons (+ 8000) et à 
> > > > chaque « configure » Bird renvoie toute la table (on lui fait 
> > > > relire un fichier de conf), du coup ça flood pas mal nos 
> > > > équipements (toutes les minutes)..
> > >
> > > Pourquoi tu n’apprends pas les routes depuis le kernel ?
> > >
> > > BTW, 8k routes dans un OSPF, soit tu as un très gros réseau, mais dans ce 
> > > cas y’a peu de chances que tu utilises bird, soit faut passer à BGP.
> > >
> > > --
> > > Alarig
> > >
> > >
> > > ---------------------------
> > > Liste de diffusion du FRnOG
> > > http://www.frnog.org/
> > 
> > 
> > ---------------------------
> > Liste de diffusion du FRnOG
> > http://www.frnog.org/
> 
> ---------------------------
> Liste de diffusion du FRnOG
> http://www.frnog.org/

Attachment: signature.asc
Description: PGP signature

Répondre à