Exemple : Configuration des listes de préfixes de stratégie de routage
Dans Junos OS, les listes de préfixes fournissent une méthode pour définir un ensemble de routes. Junos OS fournit d’autres méthodes pour accomplir la même tâche, telles que les filtres de routage. Une liste de préfixes est une liste de préfixes IP qui représentent un ensemble de routes utilisées comme critères de correspondance dans une stratégie appliquée. Une telle liste peut être utile pour représenter une liste de routes client dans votre système autonome (AS). Une liste de préfixes reçoit un nom et est configurée dans la hiérarchie de [edit policy-options]
configuration.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Mis à jour et revalidé à l’aide de Junos OS version 22.1R1.
Présentation
Les listes de préfixes sont similaires à une liste de filtres de route. La différence fonctionnelle entre les filtres de routage et les listes de préfixes est que vous ne pouvez pas spécifier une plage à l’aide d’une liste de préfixes. Vous pouvez simuler une plage à l’aide d’une liste de préfixes en incluant des préfixes supplémentaires dans la liste ou en utilisant deux listes de préfixes, l’une plus courte et l’autre plus longue, en définissant l’une sur accepter et l’autre sur rejeter. Vous pouvez également filtrer une liste de préfixes à l’aide de la condition de prefix-list-filter
correspondance. Vous avez le choix entre longer
, , exact
et orlonger
.
L’avantage d’une liste de préfixes par rapport à une liste de filtres de route est visible lorsque les préfixes sont référencés à plusieurs emplacements différents. Par exemple, une liste de préfixes peut être référencée dans une stratégie d’importation BGP, une stratégie d’exportation, une stratégie RPF, dans des filtres de pare-feu, dans des filtres de bouclage, dans la définition d’une étendue de multidiffusion, etc.
Lorsque votre liste de préfixes change, plutôt que d’essayer de vous souvenir des nombreux préfixes d’emplacements différents sont configurés, vous pouvez mettre à jour la liste de préfixes, en changeant le préfixe une fois au lieu de plusieurs fois. Cela permet de réduire la probabilité d’erreurs de configuration, telles qu’une erreur de frappe de l’adresse d’un emplacement ou l’oubli de mettre à jour un ou plusieurs emplacements.
Les listes de préfixes sont également utiles lors de la gestion d’un grand nombre d’appareils. Vous pouvez écrire les différents filtres et stratégies de la manière la plus générique possible, en référençant des listes de préfixes au lieu d’adresses IP spécifiques. La logique la plus complexe des filtres et des stratégies ne doit être écrite qu’une seule fois, avec un minimum de personnalisations par appareil et par site.
Comme le montre la figure Figure 1, chaque itinérairede l’AS 65000 a des itinéraires clients. L’équipement R1 attribue des itinéraires client au sein du sous-réseau 172.16.1.0/24. Les équipements R2 et R3 attribuent des itinéraires client au sein des sous-réseaux 172.16.2.0/24 et 172.16.3.0/24, respectivement. L’appareil R1 a été désigné comme point central dans l’AS 650 0 0afin de tenir à jour une liste complète des itinéraires des clients. L’appareil R1 possède une liste de préfixes appelée customers
, comme suit :
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; }
Comme vous pouvez le voir, la liste des préfixes ne contient pas de type de correspondance pour chaque route (comme vous le verriez avec un filtre de route). Il s’agit d’un point important lors de l’utilisation d’une liste de préfixes dans une stratégie. Les routes ne correspondent que si elles correspondent exactement à l’un des préfixes de la liste. En d’autres termes, chaque route de la liste doit apparaître dans la table de routage exactement comme elle est configurée dans la liste des préfixes.
Vous référencez la liste de préfixes en tant que critère de correspondance dans une stratégie comme celle-ci :
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
Dans cet exemple, toutes les routes de la liste de préfixes apparaissent dans la customers
table de routage du périphérique R1. Les équipements R2 et R3 exportent vers des routes statiques vers l’équipement R1 vers leurs clients.
Comme mentionné précédemment, vous pouvez utiliser la condition de prefix-list-filter
correspondance avec le exact
type de correspondance , longer
ou orlonger
. Cela permet d’éviter la limitation de la correspondance exacte des listes de préfixes. Par exemple :
user@R1# show policy-options policy-statement customer-routes { term get-routes { from { prefix-list-filter customers orlonger; } then accept; } term others { then reject; } }
L’exemple montre les effets de la condition de correspondance et de la prefix-list
prefix-list-filter
condition de correspondance.
Topologie
Figure 1 montre l’exemple de réseau.
Configuration rapide de l’interface de ligne de commande affiche la configuration de tous les périphériques dans Figure 1.
Cette section #configuration449__policy-prefix-list-st décrit les étapes à suivre sur l’appareil R1.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
Appareil R1
set interfaces ge-0/0/0 unit 0 description to_R2 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 set interfaces ge-0/0/2 unit 0 description to_R4 set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set policy-options prefix-list customers 172.16.1.16/28 set policy-options prefix-list customers 172.16.1.32/28 set policy-options prefix-list customers 172.16.1.48/28 set policy-options prefix-list customers 172.16.1.64/28 set policy-options prefix-list customers 172.16.2.16/28 set policy-options prefix-list customers 172.16.2.32/28 set policy-options prefix-list customers 172.16.2.48/28 set policy-options prefix-list customers 172.16.2.64/28 set policy-options prefix-list customers 172.16.3.16/28 set policy-options prefix-list customers 172.16.3.32/28 set policy-options prefix-list customers 172.16.3.48/28 set policy-options prefix-list customers 172.16.3.64/28 set policy-options policy-statement customer-routes term get-routes from prefix-list customers set policy-options policy-statement customer-routes term get-routes then accept set policy-options policy-statement customer-routes term others then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 65000 set routing-options static route 172.16.1.16/28 discard set routing-options static route 172.16.1.32/28 discard set routing-options static route 172.16.1.48/28 discard set routing-options static route 172.16.1.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols bgp group to_65001 type external set protocols bgp group to_65001 export customer-routes set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Appareil R2
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.2/30 set interfaces ge-0/0/1 unit 0 description to_R3 set interfaces ge-0/0/1 unit 0 family inet address 10.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 65000 set routing-options static route 172.16.2.16/28 discard set routing-options static route 172.16.2.32/28 discard set routing-options static route 172.16.2.48/28 discard set routing-options static route 172.16.2.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 export send-static set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Appareil R3
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.6/30 set interfaces ge-0/0/1 unit 0 description to_R2 set interfaces ge-0/0/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options router-id 192.168.0.3 set routing-options autonomous-system 65000 set routing-options static route 172.16.3.16/28 discard set routing-options static route 172.16.3.32/28 discard set routing-options static route 172.16.3.48/28 discard set routing-options static route 172.16.3.64/28 discard set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int neighbor 192.168.0.1 export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Appareil R4
set interfaces ge-0/0/0 unit 0 description to_R1 set interfaces ge-0/0/0 unit 0 family inet address 10.1.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set routing-options autonomous-system 65001 set protocols bgp group ext type external set protocols bgp group ext peer-as 65000 set protocols bgp group ext neighbor 10.1.0.5
Procédure
Procédure étape par étape
Nous montrons la procédure étape par étape pour configurer R1. Les autres routeurs ont un processus étape par étape similaire. L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans la CLI, reportez-vous Utiliser l’éditeur CLI en mode configuration au Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer R1 :
-
Configurez les interfaces.
[edit] user@R1# set interfaces ge-0/0/0 unit 0 description to_R2 user@R1# set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/30 user@R1# set interfaces ge-0/0/1 unit 0 description to_R3 user@R1# set interfaces ge-0/0/1 unit 0 family inet address 10.0.0.5/30 user@R1# set interfaces ge-0/0/2 unit 0 description to_R4 user@R1# set interfaces ge-0/0/2 unit 0 family inet address 10.1.0.5/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.0.1/32
-
Configurez les appairages internes BGP (IBGP) vers R2 et R3.
[edit] user@R1# set protocols bgp group int type internal user@R1# set protocols bgp group int local-address 192.168.0.1 user@R1# set protocols bgp group int neighbor 192.168.0.2 user@R1# set protocols bgp group int neighbor 192.168.0.3
-
Configurez l’appairage BGP externe (EBGP) vers R4. La configuration de la stratégie d’exportation est affichée à une étape ultérieure.
[edit] user@R1# set protocols bgp group to_65001 type external user@R1# set protocols bgp group to_65001 export customer-routes user@R1# set protocols bgp group to_65001 neighbor 10.1.0.6 peer-as 65001
-
Configurez les appairages OSPF vers R2 et R3. Le protocole OSPF fournit l’apprentissage de l’adresse de bouclage pour chaque appareil, ce qui permet aux appairages IBGP de s’établir.
[edit] user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 user@R1# set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 user@R1# set protocols ospf area 0.0.0.0 interface lo0.0 passive
-
Configurez la liste des préfixes.
[edit] user@R1# set policy-options prefix-list customers 172.16.1.16/28 user@R1# set policy-options prefix-list customers 172.16.1.32/28 user@R1# set policy-options prefix-list customers 172.16.1.48/28 user@R1# set policy-options prefix-list customers 172.16.1.64/28 user@R1# set policy-options prefix-list customers 172.16.2.16/28 user@R1# set policy-options prefix-list customers 172.16.2.32/28 user@R1# set policy-options prefix-list customers 172.16.2.48/28 user@R1# set policy-options prefix-list customers 172.16.2.64/28 user@R1# set policy-options prefix-list customers 172.16.3.16/28 user@R1# set policy-options prefix-list customers 172.16.3.32/28 user@R1# set policy-options prefix-list customers 172.16.3.48/28 user@R1# set policy-options prefix-list customers 172.16.3.64/28
-
Configurez la stratégie de routage qui référence la liste de préfixes comme critère de correspondance.
[edit] user@R1# set policy-options policy-statement customer-routes term get-routes from prefix-list customers user@R1# set policy-options policy-statement customer-routes term get-routes then accept user@R1# set policy-options policy-statement customer-routes term others then reject
-
Configurez la routestatique s pour le 172.16.Réseau 1.0/24. Nous utilisons des routes statiques pour émuler les routes des clients.
[edit] user@R1# set routing-options static route 172.16.1.16/28 discard user@R1# set routing-options static route 172.16.1.32/28 discard user@R1# set routing-options static route 172.16.1.48/28 discard user@R1# set routing-options static route 172.16.1.64/28 discard
-
Configurez le numéro du système autonome (AS) et l’ID du routeur.
[edit] user@R1# set routing-options router-id 192.168.0.1 user@R1# set routing-options autonomous-system 65000
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces
, show protocols
, show policy-options
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
user@R1# show interfaces ge-0/0/0 { unit 0 { description to_R2; family inet { address 10.0.0.1/30; } } } ge-0/0/1 { unit 0 { description to_R3; family inet { address 10.0.0.5/30; } } } ge-0/0/2 { unit 0 { description to_R4; family inet { address 10.1.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group int { type internal; local-address 192.168.0.1; neighbor 192.168.0.2; neighbor 192.168.0.3; } group to_65001 { type external; export customer-routes; neighbor 10.1.0.6 { peer-as 65001; } } } ospf { area 0.0.0.0 { interface ge-0/0/0.0; interface ge-0/0/1.0; interface lo0.0 { passive; } } }
user@R1# show policy-options prefix-list customers { 172.16.1.16/28; 172.16.1.32/28; 172.16.1.48/28; 172.16.1.64/28; 172.16.2.16/28; 172.16.2.32/28; 172.16.2.48/28; 172.16.2.64/28; 172.16.3.16/28; 172.16.3.32/28; 172.16.3.48/28; 172.16.3.64/28; } policy-statement customer-routes { term get-routes { from { prefix-list customers; } then accept; } term others { then reject; } }
user@R1# show routing-options static { route 172.16.1.16/28 discard; route 172.16.1.32/28 discard; route 172.16.1.48/28 discard; route 172.16.1.64/28 discard; } router-id 192.168.0.1; autonomous-system 65000;
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
- Vérification des itinéraires sur R1
- Vérification de l’annonce de l’itinéraire vers R4
- Expérimentation de l’instruction prefix-list-filter
Vérification des itinéraires sur R1
But
Sur R1, vérifiez les routes dans la table de routage.
Action
user@R1> show route terse 172.16/16 inet.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 172.16.1.16/28 S 5 Discard * ? 172.16.1.32/28 S 5 Discard * ? 172.16.1.48/28 S 5 Discard * ? 172.16.1.64/28 S 5 Discard * ? 172.16.2.16/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.32/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.48/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.2.64/28 B 170 100 I unverified >10.0.0.2 * ? 172.16.3.16/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.32/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.48/28 B 170 100 I unverified >10.0.0.6 * ? 172.16.3.64/28 B 170 100 I unverified >10.0.0.6
Sens
L’appareil R1 a appris ses propres routes statiques (S) et les routes BGP des équipements R2 et R3 (B).
Vérification de l’annonce de l’itinéraire vers R4
But
Sur R1, assurez-vous que les itinéraires clients sont annoncés sur R4.
Action
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 30 destinations, 30 routes (30 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I
Sens
Comme prévu, seules les routes de la liste de préfixes client sont annoncées dans R4.
Expérimentation de l’instruction prefix-list-filter
But
Voyez ce qui peut se passer lorsque vous utilisez prefix-list-filter
au lieu de prefix-list
.
Action
-
Sur R3, ajoutez une route statique plus longue que l’une des routes statiques existantes.
[edit routing-options static] user@R3# set route 172.16.3.65/32 discard user@R3# commit
-
Sur R1, désactivez la liste de préfixes et configurez un filtre de liste de préfixes avec le type de
orlonger
correspondance.[edit policy-options policy-statement customer-routes term get-routes] user@R1# deactivate from prefix-list customers user@R1# set from prefix-list-filter customers orlonger user@R1# commit
-
Sur R1, vérifiez quels itinéraires sont annoncés sur R4.
user@R1> show route advertising-protocol bgp 10.1.0.6 inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.1.16/28 Self I * 172.16.1.32/28 Self I * 172.16.1.48/28 Self I * 172.16.1.64/28 Self I * 172.16.2.16/28 Self I * 172.16.2.32/28 Self I * 172.16.2.48/28 Self I * 172.16.2.64/28 Self I * 172.16.3.16/28 Self I * 172.16.3.32/28 Self I * 172.16.3.48/28 Self I * 172.16.3.64/28 Self I * 172.16.3.65/32 Self I
Sens
Comme prévu, R1 annonce maintenant le 172.16.3.65/32 route vers R4, même si 172.16.3.65/32 ne figure pas dans la liste des préfixes.