Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 오류 메시지

BGP 업데이트 메시지에 대한 오류 처리 이해

BGP 메시지는 메시지 속성 중 하나라도 형식이 잘못된 경우 잘못된 형식으로 간주됩니다. BGP 세션에 참여하는 라우터가 잘못된 형식의 업데이트 메시지를 수신하면 전체 세션이 기본적으로 재설정됩니다. 유효한 경로가 있는 업데이트 메시지도 영향을 받기 때문에 바람직하지 않습니다. 이러한 바람직하지 않은 동작을 방지하려면 BGP 업데이트 메시지에 대한 오류 처리를 수정해야 합니다.

BGP 업데이트 메시지에 대한 오류 처리를 구성하려면 , [edit protocols bgp group group-name], 또는 [edit protocols bgp group group-name neighbor address] 계층 수준에서 [edit protocols bgp]문을 구성 bgp-error-tolerance 합니다.

속성에 속성 유형 필드의 값과 충돌하는 속성 플래그가 포함된 경우, 속성 플래그는 올바른 값으로 재설정되고 업데이트 메시지가 처리됩니다. 속성 플래그의 확장 길이 비트 값은 속성 길이가 1옥텟인지 2옥텟인지를 정의하기 때문에 변경되지 않습니다. 따라서 속성 플래그의 값은 BGP 업데이트 패킷이 구문 분석되는 방식에 영향을 줍니다.

참고:

경로 속성의 속성 플래그 값에 대한 명시적인 사양은 없습니다.

Junos OS 릴리스 24.2R1부터는 BGP 오류 처리가 기본적으로 활성화됩니다. 이 구성 문 아래에서 , malformed-route-limit, malformed-update-log-interval등의 no-malformed-route-limit 하위 옵션을 구성할 수 있습니다. 이 문을 삭제 bgp-error-tolerance 해도 기능은 여전히 활성화된 상태로 유지되며 하위 옵션은 기본값으로 재설정됩니다.

잘못된 형식의 업데이트 메시지는 메시지에 포함된 속성의 값에 따라 사례별로 처리됩니다. 심각도가 내림차순으로 나열된 잘못된 형식의 BGP 업데이트 메시지를 처리하는 세 가지 방법이 있습니다.

  1. Notification message approach- 잘못된 형식의 메시지 오류가 로컬에 기록되고, 오류 코드 업데이트 메시지가 피어 관리에 전송되며, 전체 BGP 세션이 재설정됩니다.

    이 접근 방식은 다음과 같은 경우에 선택됩니다.

    • BGP 업데이트 메시지에는 MP 도달 속성 또는 MP 도달 금지 속성이 포함되어 있습니다.

    • NLRI 필드 또는 BGP 업데이트 메시지는 속성 길이와 속성 길이 필드의 값 간의 불일치로 인해 올바르게 구문 분석할 수 없습니다.

  2. Treat-as-withdraw approach—문이 구성되지 않는 한 keep none 잘못된 형식의 업데이트 메시지 내의 모든 경로는 숨겨진 경로로 처리되며, 이 경우 경로가 삭제됩니다. 문 keep none 이 없는 경우, 숨겨진 잘못된 형식의 경로 수는 제한으로 구성되며, 이를 초과하면 해당 경로가 폐기되고 더 이상 잘못된 형식의 경로가 숨겨지지 않도록 합니다. Junos OS는 잘못된 형식의 경로 제한에 도달하면 새로 수신된 잘못된 형식의 경로를 제거합니다.

  3. Attribute discard approach- 업데이트 메시지에서 잘못된 형식의 속성은 폐기됩니다. 그러나 메시지는 처리됩니다. 삭제할 속성이 경로 선택 또는 설치에 영향을 줄 수 있는 경우에는 이 접근 방식을 사용하지 않는 것이 좋습니다.

    참고:

    업데이트된 메시지에 속성이 두 번 이상 나타나면 첫 번째 항목을 제외한 해당 속성의 모든 발생이 삭제되고 메시지가 처리됩니다.

BGP 업데이트 메시지는 다음 속성에 대해 스캔되며 이러한 속성의 값에 따라 잘못된 형식으로 처리됩니다.

  • The origin attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The AS path attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The AS 4 path attribute—속성 폐기 접근 방식으로 처리됩니다.

  • The aggregator attribute—속성 폐기 접근 방식으로 처리됩니다.

  • The aggregator 4 attribute—속성 폐기 접근 방식으로 처리됩니다.

  • The next-hop attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The multiple exit discriminator attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The local preference attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The atomic aggregate attribute—속성 폐기 접근 방식으로 처리됩니다.

  • The community attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The extended community attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The originator attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The cluster attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The PMSI attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The MP reach attribute—알림 메시지 접근 방식에 의해 처리됩니다.

  • The MP unreach attribute—알림 메시지 접근 방식에 의해 처리됩니다.

  • The attribute set attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • The AIGP attribute—철회로 처리 접근 방식에 의해 처리됩니다.

  • Unknown attribute—BGP 플래그가 선택적 속성임을 나타내지 않는 경우, 이 잘못된 형식의 속성은 알림 메시지 접근 방식에 의해 처리됩니다.

참고:

BGP 업데이트 메시지에 여러 개의 잘못된 형식의 속성이 포함된 경우 속성 중 하나에 의해 트리거된 가장 심각한 접근 방식이 따릅니다.

다음은 BGP 오류 메시지 출력의 예입니다.

이 예에서는 원본(ORIGIN) 및 로컬 선호(LOCAL_PREF) 잘못된 형식의 속성을 볼 수 있습니다.

예: BGP 업데이트 메시지에 대한 오류 처리 구성

이 예는 BGP 오류 처리를 구성하는 방법을 보여줍니다.

요구 사항

시작하기 전에:

  • 라우터 인터페이스를 구성합니다.

  • 내부 게이트웨이 프로토콜(IGP)을 구성합니다.

  • BGP를 구성합니다.

  • 라우팅 정책을 구성합니다.

개요

라우팅 디바이스가 잘못된 형식의 속성이 포함된 업데이트 메시지를 수신하면 라우터는 세션을 재설정해야 합니다. 이는 RFC 4271, BGP-4(Border Gateway Protocol 4)에 명시되어 있습니다. 세션 재설정은 문제가 되는 속성이 있는 경로뿐만 아니라 세션을 통해 교환되는 다른 유효한 경로에도 영향을 미칩니다. 또한 이 동작은 선택적 전이적 속성의 경우 잠재적인 보안 취약점을 나타낼 수 있습니다. 잘못된 형식의 업데이트 메시지로 인한 라우팅 영향을 최소화하기 위해 인터넷 초안 draft-ietf-idr-error-handling-01.txt, BGP UPDATE 메시지에 대한 수정된 오류 처리 에서는 잘못된 형식의 특성을 가진 BGP 업데이트 메시지를 처리하기 위한 수정 사항을 지정합니다. 새로운 오류 처리를 통해 잘못된 형식의 UPDATE 메시지에 전달된 경로를 제거하는 동시에 설정된 세션을 유지하고 교환된 유효한 경로를 유지할 수 있습니다.

토폴로지

그림 1에서 디바이스 R1은 디바이스 R0과의 내부 BGP 피어링 세션 및 디바이스 R2와의 외부 BGP 피어링 세션을 갖습니다.

그림 1: BGP 오류 처리 예시 토폴로지 Network diagram with routers R0, R1, R2 connected sequentially. R0 to R1 via interface fe-1/2/0, IBGP; R1 to R2 via fe-1/2/1, EBGP. Loopback IPs: R0 192.168.0.3, R1 192.168.0.1, R2 192.168.0.2.

네트워크 불안정을 야기하는 잘못된 형식의 업데이트 메시지로부터 보호하기 위해 디바이스 R1에는 다음과 같이 BGP 오류 처리가 구성되어 있습니다.

기본적으로 메시지 속성 중 하나라도 형식이 잘못된 경우 BGP 메시지는 잘못된 형식으로 간주됩니다. BGP 세션에 참여하는 라우터가 잘못된 형식의 업데이트 메시지를 수신하면 전체 세션이 재설정됩니다. 명령문은 bgp-error-tolerance 다음 BGP 오류 처리가 적용되도록 이 동작을 재정의합니다.

  • 치명적인 오류의 경우, Junos OS는 오류 코드 업데이트 메시지라는 제목의 알림 메시지를 보내고 BGP 세션을 재설정합니다. MP_{UN}REACH 속성의 오류는 치명적인 것으로 간주됩니다. 하나의 BGP 업데이트에 여러 개의 MP_{UN}REACH 속성이 있는 경우에도 치명적인 오류로 간주됩니다. Junos OS는 NLRI 필드 또는 BGP 업데이트를 올바르게 구문 분석할 수 없는 경우 BGP 세션을 재설정합니다. BGP 업데이트 패킷을 구문 분석하지 못하는 것은 속성 길이가 속성 값의 길이와 일치하지 않을 때 발생할 수 있습니다.

  • 일부 치명적이지 않은 오류의 경우, Junos OS는 BGP 구성에 문이 포함되지 않는 한 keep none 잘못된 형식의 BGP 업데이트 메시지에 포함된 모든 경로를 철회된 경로로 처리하고 숨겨진 것으로 설치합니다. Junos OS ORIGIN, AS_PATH, NEXT_HOP, MULTI_EXIT_DISC, LOCAL_PREF, ORIGINATOR, CLUSTER, ATTRSET, PMSI, Community 및 Extended Community 속성과 관련된 케이스에 대해 이 오류 처리 접근 방식을 사용합니다. 또한 필수 잘 알려진 경로 속성이 누락된 경우 Junos OS는 BGP 업데이트를 잘못된 형식으로 처리합니다. 이러한 잘못된 형식의 숨겨진 경로의 메모리 사용을 제한하기 위해 Junos OS는 이러한 잘못된 형식의 숨겨진 경로의 최대 수에 도달한 후 새로운 잘못된 형식의 숨겨진 경로 설치를 중지합니다. 이 예에서는 문을 사용하여 최대 수가 5로 설정됩니다.malformed-route-limit 기본값은 1000입니다. 선택적으로 잘못된 속성으로 인해 숨겨진 경로를 무제한으로 허용할 수 있습니다. 문을 포함하여 이 작업을 수행합니다.no-malformed-route-limit

  • 다른 치명적이지 않은 오류의 경우, Junos OS는 잘못된 형식의 경로 속성을 폐기하고 BGP 업데이트 메시지를 계속 처리합니다. 경로 선택 또는 설치에 영향을 줄 수 있는 경로 속성에 이 접근 방식을 사용하는 것은 안전하지 않습니다. Junos OS ATOMIC_AGGREGATE, AGGREGATOR, AGGREGATOR4 및 AS4PATH 속성과 관련된 사례에 대해 이 오류 처리 방법을 사용합니다.

잘못된 형식의 패킷 문제 해결을 용이하게 하기 위해 Junos OS는 잘못된 형식의 경로 속성 코드, 플래그, 길이, 피어 및 패밀리에 대한 정보, 잘못된 형식의 BGP 업데이트의 첫 번째 접두사를 나열하는 오류를 기록합니다. 짧은 시간에 상당한 수의 잘못된 형식의 패킷이 수신되는 경우 잘못된 형식의 패킷을 로깅하면 Junos OS 성능이 느려질 수 있습니다. 성능에 미치는 영향을 제한하기 위해 Junos OS는 알고리즘을 구현하여 잘못된 형식의 업데이트를 로깅하고, 일정 간격 동안 로깅을 억제하며, 요약을 로깅합니다. 로깅 억제 타이머가 만료되면 소프트웨어는 간격 동안 수신된 잘못된 형식의 속성의 총 수를 로깅합니다. 이 예에서 타이머는 문을 사용하여 10초로 설정됩니다. malformed-update-log-interval 기본값은 300초(5분)입니다.

CLI 빠른 구성그림 1의 모든 디바이스에 대한 구성을 보여줍니다.

절차 섹션에서는 디바이스 R1의 단계를 설명합니다.

구성

CLI 빠른 구성

이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.

디바이스 R0

디바이스 R1

디바이스 R2

절차

단계별 절차

다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 Junos OS CLI 사용자 가이드구성 모드에서 CLI 편집기 사용을 참조하십시오.

BGP 오류 처리를 구성하려면 다음을 수행합니다.

  1. 라우터 인터페이스를 구성합니다.

  2. OSPF 또는 IS-IS와 같은 내부 게이트웨이 프로토콜(IGP)을 구성합니다.

  3. AS(Autonomous System) 번호 및 라우터 ID를 구성합니다.

  4. 라우팅 정책 구성합니다.

  5. EBGP 세션을 구성합니다.

  6. IBGP 세션을 구성합니다.

  7. BGP 오류 허용 능력을 활성화합니다.

  8. (선택 사항) 로그 간격을 구성합니다.

  9. (선택 사항) 저장할 숨겨진 경로 수에 대한 제한을 구성합니다.

결과

구성 모드에서 , show protocols, show policy-optionsshow routing-options, show interfaces명령을 입력하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.

디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .

검증

구성이 제대로 작동하고 있는지 확인합니다.

BGP 인접 세션 확인하기

목적

BGP 오류 허용 기능이 활성화되었는지 확인하고 잘못된 형식의 경로 속성과 관련된 카운터를 표시합니다.

작업
의미

잘못된 형식의 속성 필드는 오류 허용 범위가 활성화되어 있음을 보여줍니다. 로그 간격 및 경로 제한 필드에는 구성된 값이 표시됩니다.

속성 카운터는 EBGP 연결에서 디바이스 R2로부터 몇 가지 잘못된 형식의 속성이 수신되었음을 보여줍니다.

숨겨진 경로 확인하기

목적

숨겨진 경로에 대한 정보를 보고 숨겨진 경로가 숨겨진 이유를 알아보십시오.

작업
의미

잘못된 형식의 숨겨진 경로는 AS 경로 필드에서 MalformedAttr로 표시됩니다.

명령을 실행 clear bgp neighbor 10.10.10.2 malformed-route 하여 숨겨진 경로를 제거할 수 있습니다.

숨겨진 경로의 소스 확인

목적

숨겨진 경로에 대한 정보를 보고 숨겨진 경로가 숨겨진 이유를 알아보십시오.

작업
의미

Junos OS는 명령 출력의 AS 경로 필드에 MalformedAttr을 표시합니다.show route receive-protocol bgp 10.10.10.2 detail hidden

명령을 실행 clear bgp neighbor 10.10.10.2 malformed-route 하여 숨겨진 경로를 제거할 수 있습니다.