Comment filtrer les préfixes non-bogon reçus via BGP à partir d'un Internet Exchange (IXP)?

14

Lorsque vous êtes connecté à un échange de peering Internet (IXP), quelle est la bonne façon de vous assurer que les gens ne vous envoient pas de préfixes qu'ils ne devraient pas annoncer?

En ce qui concerne les bogons, je connais le projet Team Cymru Bogon Reference , mais quand il s'agit de filtrer quoi que ce soit d'autre de mes pairs, je ne sais pas par où commencer. Ma compréhension est que c'est à cela que servent RPKI et similaires?

SimonJGreen
la source
pourquoi ne pas simplement eBGP peer avec eux et les préfixes blackhole dans leur table de routage?

Réponses:

13

Comme les autres l'ont dit, le RPKI serait la voie à suivre, mais il n'est pas encore là. Aux points d'échange, nous mettons généralement une limite de préfixe max à chaque session.

De plus, nous utilisons les règles suivantes:

  1. Aucun itinéraire par défaut

  2. Pas de bogons, plus exactement cette liste:

    route-filter 0.0.0.0/8 orlonger reject;
    route-filter 127.0.0.0/8 orlonger reject;
    route-filter 10.0.0.0/8 orlonger reject;
    route-filter 172.16.0.0/12 orlonger reject;
    route-filter 192.168.0.0/16 orlonger reject;
    route-filter 224.0.0.0/4 orlonger reject;
    route-filter 240.0.0.0/4 orlonger reject;
    route-filter 169.254.0.0/16 orlonger reject;
    route-filter 192.0.2.0/24 orlonger reject;
    route-filter 198.51.100.0/24 orlonger reject;
    route-filter 203.0.113.0/24 orlonger reject;
    route-filter 100.64.0.0/10 orlonger reject;
    
  3. Aucun préfixe supérieur à / 24

  4. Aucun numéro AS privé sur le chemin

  5. Aucun de nos propres préfixes

Pour IPv6, nous faisons de même, seuls les bogons sont différents. J'ai collé notre filtre en dessous. Veuillez noter que la syntaxe peut être un peu étrange, mais cela est dû à la manière Juniper de faire correspondre les préfixes. Pour la syntaxe Cisco, vous pouvez aller ici: Recommandations de filtre BGP IPv6 (L'exemple Juniper sur la page est bogué, veuillez utiliser celui ci-dessous si vous le souhaitez.)

terme relaxant ebgp {
    de {
        famille inet6;
        filtre de route 3ffe :: / 16 orlonger;
        filtre de route 0000 :: / 8 orlonger;
        filtre de route 2001: db8 :: / 32 orlonger;
        route-filter 2001 :: / 32 exacte prochaine politique;
        filtre de route 2001 :: / 32 plus long;
        route-filter 2002 :: / 16 exacte prochaine politique;
        filtre de route 2002 :: / 16 plus long;
        filtre de route fe00 :: / 9 orlonger;
        filtre de route ff00 :: / 8 orlonger;
        filtre-route 2000 :: / 3 préfixe-longueur-plage / 49- / 128;
        filtre de route 0 :: / 0 orlonger;
    }
    puis rejeter;
}
Sebastian Wiesinger
la source
11

Pour le moment (jusqu'à ce que RPKI soit plus répandu), nous filtrons généralement les bogons communs et appliquons un filtre de préfixe max pour échanger des pairs. Nous filtrons également certains ASN, dont nous sommes certains qu'ils n'apparaîtront jamais dans la plupart des sessions d'appairage, comme Level3 ou Cogent, ou ne devraient pas être transités sur un échange.

Nous constatons généralement que la plupart des fuites de route courantes ne sont pas dans la plage de 1 à 2 chiffres. C'est très difficile à attraper de toute façon, sauf si vous filtrez tous vos pairs en créant une liste de préfixes / ASN ou filtrez par radb, etc. ) filtre de préfixe max. Vous pouvez ensuite ajuster cela par session selon vos besoins.

Justin Seabrook-Rocha
la source
7

Selon la façon dont vous utilisez l'échange de peering, vous avez plusieurs options différentes:

Tout d'abord, je couvrirai RPKI et je dirai que bien que ce soit quelque chose que vous devez absolument aller de l'avant et déployer, à la fois pour vos propres itinéraires et pour valider d'autres, il est malheureusement si peu utilisé que vous ne pouvez pas vous attendre à ce qu'il en fasse autant. La vraie solution ici est WHOIS - le RaDB de Merit est sans doute le meilleur car il vous permettra de renvoyer les résultats de tous les RIR à la fois. Mais, si vous préférez interroger chaque RIR directement, allez-y.

Maintenant, si vous êtes sur l'échange et que vous obtenez juste une pile de préfixes du serveur de routage de l'IXP, selon les outils dont vous disposez et les capacités de votre routeur, vous avez deux possibilités:

   1. Filtrer par origine AS

Essentiellement, cela consiste à valider l'AS d'origine d'un préfixe par rapport à celui du WHOIS - si l'AS d'origine ne correspond pas à celui du WHOIS, vous supprimez le préfixe et tout autre détail qui pourrait également être annoncé. Il s'agit généralement d'une bonne protection contre les détournements accidentels. La grande majorité des préfixes devraient contenir ces données.

   2. Filtrer par transit AS

Cela va un peu plus loin et filtre les itinéraires avec n'importe quel AS dans le chemin qui n'est pas autorisé dans WHOIS - vous ne pouvez cependant pas le faire pour chaque préfixe, car tout le monde n'aura pas créé d'objets spécifiant qui sont leurs fournisseurs AS de transit autorisés.


D'un autre côté, si vous utilisez l'échange de peering pour regarder directement avec les autres, alors votre vie devient beaucoup plus simple; vous pouvez rechercher les préfixes qu'ils ont dans WHOIS et les autoriser. À mon avis, la bonne pratique consiste à autoriser les pairs à annoncer des détails plus précis jusqu'à une longueur maximale de / 24 tout en définissant également une valeur de préfixe maximal raisonnable (c'est-à-dire proportionnelle au nombre de sous-réseaux qu'ils ont) sur votre homologue afin qu'ils puissent '' t vous inonder d'itinéraires mais peut répondre à un détournement de préfixe.

Si vous recherchez des outils, consultez IRRToolSet et IRR PowerTools

Olipro
la source
5

Vous avez essentiellement répondu à votre propre question. Votre hypothèse selon laquelle utiliser RPKI est la voie à suivre est absolument correcte. Plus précisément, les autorisations de création d'itinéraire sont utilisées pour valider un préfixe vers un AS. De toute évidence, les bogons ne seront pas valides car ils ne sont attribués à personne, de sorte que ce problème prendra soin de lui-même. Beaucoup de ces informations sont disponibles sur la page Wikipédia du RPKI . Une autre bonne ressource est la page RPKI d'ARIN .

Si vous avez besoin d'aide pour la configuration, je vous suggère de créer une autre question demandant une aide spécifique pour la configuration.

Il convient également de noter que RPKI ne fonctionnera pas pour tout, car tout le monde ne l'utilise pas. À un moment donné, il vous suffit de faire confiance aux itinéraires que vous recevez.

bigmstone
la source
0

Demandez à vos pairs quelle macro AS ils annonceront et créez des filtres pour eux en utilisant IRRToolSet ou rpsltool ou irrpt. Encouragez-les à faire publier des informations correctes dans un IRRdb. N'oubliez pas de mettre à jour votre propre aut-numobjet dans votre IRRdb ami le plus proche pour refléter l'adjacence.

RPKI n'est pas la voie à suivre car il ne protège pas contre les fuites de route.

Niels
la source