소개
이 문서에서는 특히 작업(허용 또는 거부) 및 시퀀스 번호 지정의 중요성을 강조하여 컨피그레이션 모드 내에서 경로 맵을 구성하고 표시하는 올바른 방법을 설명합니다.
배경 정보
원래 거부 작업으로 구성된 경로 맵 엔트리가 예기치 않게 허용하도록 변경된 것으로 보이는 관찰된 동작을 해결합니다.
문제
Cisco IOS® XE에서 작업(permit/deny)과 시퀀스 번호를 명시적으로 지정하지 않고 경로 맵을 입력하면 CLI에서 기본적으로 허용할 작업을 지정합니다. 관리자가 구문을 주의하지 않을 경우 경로 맵의 동작이 실수로 변경될 수 있습니다.
관찰된 동작
이 컨피그레이션이 적용될 때:
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
필요한 출력은 다음과 같습니다.
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
그러나 표시된 대로 시퀀스 또는 작업을 지정하지 않고 route-map TEST1을 다시 입력할 경우
router(config)#route-map TEST1
router(config-route-map)#do sh run | sec TEST1
CLI 출력에 예기치 않게 다음이 표시됩니다.
route-map TEST1 permit 1
match ip address prefix-list PREFIXES
route-map TEST1 permit 10
match ip address prefix-list FIX
이는 원래 구성된 거부 1 항목이 허용 1로 수정되었음을 나타냅니다.
예상 CLI 동작
· 작업(허용 또는 거부)과 시퀀스 번호를 지정하지 않고 router(config)# route-map TEST1 명령을 입력할 때 파서는 기본적으로 '허용'을 의미한다고 가정합니다.
· 하위 모드를 종료하는 즉시 Cisco IOS XE는 첫 번째 시퀀스를 재작성하고 명시적 작업이 제공되지 않았으므로 작업을 거부에서 허용으로 변경합니다. 시퀀스 번호 없이 route-map <name>을 입력하기만 하면 기본적으로 시퀀스 10이 허용됩니다. 이 동작은 신중하게 지정하지 않은 경우 이전 항목을 재정의할 수 있습니다.
즉, 변경 사항은 보이지 않는 프로세스에 의해 트리거되지 않으며 단순히 CLI에서 불완전한 route-map 명령을 기본적으로 처리하는 것입니다.
첫 번째 명령문에서 거부를 유지하려면 다음과 같이 항상 작업과 시퀀스 번호를 모두 포함해야 합니다.
router(config)# route-map TEST1 거부 1.
왜 이런 일이 발생하는가
이는 버그가 아니라 Cisco IOS XE CLI 파서의 의도된 동작입니다. Cisco는 다음 규칙을 준수합니다.
- 시퀀스 번호 없이 route-map을 호출하면 시퀀스 10이 가정됩니다.
- 작업을 지정하지 않으면 허용이 기본값입니다.
- 세부사항 없이 기존 경로 맵을 다시 입력할 경우 IOS는 기본 작업을 재할당하여 이전의 항목을 의도치 않게 수정할 수 있습니다.
솔루션
경로 맵 컨피그레이션의 의도된 동작을 유지하려면 항상 다음 두 가지를 모두 포함해야 합니다.
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
권장 구현 방법
참조용 컨피그레이션 출력은 여기에 설명되어 있습니다. 이 명령 동작은 올바르게 정의된 시퀀스 번호의 중요성과 허용/거부 삽입 순서가 실행 중인 컨피그레이션에서 시퀀스 번호의 오름차순 정렬에 영향을 주지 않는 방법을 반영합니다.
예 1. 잘못된 CLI 사용으로 인해 기본 허용
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
거부 1이 허용 1이 되는 방법에 유의하십시오. 대신 경로 맵의 올바른 구성을 유지하려면 순차 번호와 함께 작업을 포함하십시오.
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
예 2. 입력 순서에 관계없이 유지되는 일련순서 순서
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
deny 문을 먼저 입력했지만 CLI는 컨피그레이션 순서가 아니라 오름차순 시퀀스 번호로 정렬합니다.
결론
Cisco IOS-XE에서 경로 맵을 구성할 때 항상 다음을 정의합니다.
이렇게 하지 않으면 CLI 기본값으로 인해 예기치 않은 동작이 발생할 수 있습니다. 정확한 라우팅 정책 컨피그레이션을 유지하려면 이러한 뉘앙스를 이해하는 것이 중요합니다.