목차

소개

배경 정보

문제

관찰된 동작

예상 CLI 동작

왜 이런 일이 발생하는가

솔루션

권장 구현 방법

예 1. 잘못된 CLI 사용으로 인해 기본 허용

예 2. 입력 순서에 관계없이 유지되는 일련순서 순서

결론

소개

이 문서에서는 특히 작업(허용 또는 거부) 및 시퀀스 번호 지정의 중요성을 강조하여 컨피그레이션 모드 내에서 경로 맵을 구성하고 표시하는 올바른 방법을 설명합니다.

배경 정보

원래 거부 작업으로 구성된 경로 맵 엔트리가 예기치 않게 허용하도록 변경된 것으로 보이는 관찰된 동작을 해결합니다.

문제

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 기본값으로 인해 예기치 않은 동작이 발생할 수 있습니다. 정확한 라우팅 정책 컨피그레이션을 유지하려면 이러한 뉘앙스를 이해하는 것이 중요합니다.