Inleiding
In dit document wordt de juiste methode beschreven voor het configureren en weergeven van een routekaart in de configuratiemodus, waarbij met name het belang wordt benadrukt van het opgeven van de actie (toestaan of weigeren) en het volgnummer.
Achtergrondinformatie
Het richt zich op een waargenomen gedrag waarbij een routekaartvermelding die oorspronkelijk is geconfigureerd met een weigeringsactie lijkt te zijn gewijzigd om onverwacht toe te staan.
Probleem
Als in Cisco IOS® XE een routekaart wordt ingevoerd zonder expliciet een actie (toestaan/weigeren) en volgnummer op te geven, wordt in de CLI de actie standaard toegestaan. Dit kan onbedoeld het gedrag van de routekaart veranderen als beheerders niet voorzichtig zijn met syntaxis.
waargenomen gedrag
Wanneer deze configuratie wordt toegepast:
router(config)#route-map TEST1 deny 1
router(config-route-map)#match ip address prefix-list PREFIXES
router(config-route-map)#exit
router(config)#route-map TEST1 permit 10
router(config-route-map)#match ip address prefix-list FIX
router(config-route-map)#exit
De verwachte output is:
router(config)#do sh run | sec TEST1
route-map TEST1 deny 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
Bij het opnieuw invoeren van routekaart TEST1 zonder de volgorde of actie op te geven zoals weergegeven:
router(config)#route-map TEST1
router(config-route-map)#do sh run | sec TEST1
De CLI-uitvoer toont onverwacht:
route-map TEST1 permit 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
Dit geeft aan dat de oorspronkelijk geconfigureerde deny 1-vermelding is gewijzigd om 1 toe te staan.
Verwacht CLI-gedrag
· Wanneer u de opdrachtrouter (config)# routekaart TEST1 invoert zonder een actie (toestaan of weigeren) en een volgnummer op te geven, gaat de parser ervan uit dat u standaard 'toestaan' bedoelde.
· Zodra u die submodus afsluit, herschrijft Cisco IOS XE de eerste reeks en wijzigt de actie van weigeren in toestaan omdat er geen expliciete actie is opgegeven. Door routekaart <naam> zonder volgnummer in te voeren, wordt standaard reeks 10 als machtiging ingevoerd. Dit gedrag kan soms eerdere vermeldingen overschrijven als het niet zorgvuldig wordt gespecificeerd.
Met andere woorden, de wijziging wordt niet veroorzaakt door een onzichtbaar proces — het is gewoon de standaard CLI-afhandeling van een onvolledige routekaartopdracht.
Om de weigering in de eerste instructie te behouden, moet u altijd zowel de actie als het volgnummer opnemen, bijvoorbeeld:
router(config)# routekaart TEST1 deny 1.
Waarom dit gebeurt
Dit is geen bug, maar een beoogd gedrag van de Cisco IOS XE CLI-parser. Het houdt zich aan deze regels:
- Als een routekaart wordt aangeroepen zonder een volgnummer, wordt volgnummer 10 verondersteld.
- Als er geen actie is opgegeven, is toestemming de standaardinstelling.
- Als u een bestaande routekaart opnieuw invoert zonder details, kan IOS standaardacties opnieuw toewijzen, waarbij eerdere vermeldingen onbedoeld worden gewijzigd.
Oplossing
Om het beoogde gedrag van uw routekaartconfiguratie te behouden, moet u altijd beide opnemen:
- de actie (toestaan of weigeren)
- en het volgnummer
router(config)#route-map TEST1 deny 1 >>>>>>>>>>>>>>> This ensures IOS-XE does not override the entry with default values.
router(config-route-map)#do sh run | sec route-map TES
route-map TEST1 deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST1 permit 10
match ip address prefix-list ALL-VPN-FIX
Aanbevolen methode om te implementeren
De configuratie-uitgangen ter referentie worden hier vermeld. Het opdrachtgedrag weerspiegelt het belang van correct gedefinieerde volgnummers en hoe de volgorde van invoeging van permit/deny geen invloed heeft op de oplopende rangschikking van volgnummers in de actieve configuratie.
Voorbeeld 1. Onjuist CLI-gebruik leiden naar standaardvergunning
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#$dress prefix-list ALL-PREFIXES
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#route-map TEST permit 10
ASR1002-1(config-route-map)#$dress prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
ASR1002-1(config)#do sh run | sec TEST
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config)#exit
ASR1002-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1002-1(config)#route-map TEST
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST permit 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
ASR1002-1(config-route-map)#exit
Merk op hoe ontkennen 1 wordt vergunning 1. Voeg in plaats daarvan de actie samen met het volgnummer toe om de juiste configuratie van routekaart te behouden:
ASR1002-1(config)#route-map TEST deny 1
ASR1002-1(config-route-map)#do sh run | sec route-map TES
route-map TEST deny 1
match ip address prefix-list ALL-PREFIXES
route-map TEST permit 10
match ip address prefix-list ALL-VPN-FIX
Voorbeeld 2. Volgorde gehandhaafd ongeacht volgorde van binnenkomst
ASR1001-1(config)#route-map test deny 50
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1(config)#route-map test permit 40
ASR1001-1(config-route-map)#^Z
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
ASR1001-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ASR1001-1#show running-config | sec route-map
route-map test permit 40
route-map test deny 50
Hoewel de weigeringsinstructie eerst is ingevoerd, sorteert de CLI op oplopend volgnummer, niet op configuratievolgorde.
Conclusie
Wanneer u routekaarten configureert in Cisco IOS-XE, definieert u altijd:
- het volgnummer
- en de actie
Als u dit niet doet, kan dit leiden tot onverwacht gedrag als gevolg van CLI-standaardinstellingen. Het begrijpen van deze nuances is essentieel voor het handhaven van nauwkeurige routeringsbeleidsconfiguraties.