소개
이 문서에서는 잘못된 LPTS(Local Packet Transport Services) 엔트리로 인해 세션이 활성 상태로 중단되었을 때 eBGP(External Border Gateway Protocol)의 문제를 해결하는 방법에 대해 설명합니다.
기고자: William Xu, Cisco TAC 엔지니어
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 ASR9000(Aggregation Services Router) 플랫폼을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 네트워크가 가동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
문제
eBGP를 구성할 때 다음과 같은 경우 세션이 무한정 활성 상태로 유지될 수 있습니다.
- 구성된 update-source 명령이 없습니다
- 토폴로지가 변경되어 트래픽이 다른 경로를 사용하게 됩니다
이 문제가 발생할 때 다음과 같은 증상이 나타납니다.
- IP 주소에 연결할 수 있음
- 두 BGP 피어 모두 활성 상태로 유지
- 패킷 캡처에서는 라우터가 많은 TCP 재설정을 전송하는 것을 보여줍니다
- show tcp trace error는 BGP 세션에 대한 이 오류를 나타냅니다.
Feb 18 09:32:15.393 tcp/error 0/RSP0/CPU0 t9 Lpts set the drop flag for 179 -> 5368, drop packet (pak 0xb1cf80f3) and send a RST
요약하면, 문제의 근본 원인은 LPTS 항목이 라우팅 및 포워딩 변경에 의해 업데이트되지 않기 때문입니다. 이는 토폴로지가 변경된 후에도 오래된 상태가 유지됨을 의미합니다.
BGP에 대한 몇 가지 개선 사항이 있습니다. 이 두 시나리오에서는 이 문제에 대한 자세한 내용을 다룹니다.
참고: iBGP(Internal Border Gateway Protocol)는 업데이트 소스가 항상 사용되므로 일반적으로 이 문제에 도달하지 않습니다.
시나리오 1 - 토폴로지가 변경된 멀티홉 EBGP
ASR9K-1과 ASR9K-3 간에 멀티홉 eBGP 세션을 구축할 수 있습니다. 피어 IP 주소는 물리적 인터페이스에서 172.123.1.1 및 172.123.2.2입니다. 구성된 update-source 명령이 없습니다. 현재 토폴로지에서는 세션이 활성 상태로 유지됩니다. 두 라우터가 모두 서브넷 172.123.3.0/24의 인터페이스를 이그레스 인터페이스로 사용하므로 이는 예상된 결과입니다.
ASR9K-1과 ASR9K-3 간의 직접 링크를 종료할 수 있습니다. 그런 다음 피어 주소는 멀티홉 링크인 ASR9K-2를 통해 연결할 수 있으므로 ping에 성공합니다. 소스 IP 주소가 양쪽 끝에서 일치하지만 BGP 세션은 여전히 활성 상태입니다.
BGP 인접 디바이스가 구성되면 CEF(Cisco Express Forwarding) 테이블에 따라 LPTS 항목이 생성됩니다. ASR9K-1의 경우 IP 주소 172.123.2.2는 172.123.3.0/24 서브넷을 통해 연결할 수 있습니다. 따라서 LPTS의 관련 항목을 사용할 수 있습니다. BGP 인접 디바이스가 포트 179를 로컬 IP 주소 172.123.3.1과 연결하도록 허용합니다. 로컬 포트 26036에서 TCP 세션을 시작하려고 시도하므로 다른 항목이 표시됩니다.
ASR9K-1:
========
ASR9K-1#show lpts ifib entry brief | inc "BGP"
...
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,179 172.123.2.2
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,26036 172.123.2.2,179
이 출력은 ASR9K-3에서 동일합니다.
ASR9K-3:
========
ASR9K-3#show lpts ifib entry brief | inc "BGP"
...
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,11126 172.123.1.1,179
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,179 172.123.1.1
ASR9K-1과 ASR9K-3 간의 링크가 다운되면 피어는 새 로컬 소스 IP 주소를 사용하여 ASR9K-2 경로를 통해 연결할 수 있습니다. 그러나 토폴로지 변경은 LPTS 업데이트를 트리거하지 않습니다. 포트 179의 원래 항목은 원래 로컬 IP 주소와 함께 유지됩니다. 그러면 라우터가 새 로컬 IP 주소에 대한 인그레스 TCP 요청을 허용하지 않습니다. 따라서 양쪽 끝의 BGP 세션은 활성 상태로 유지됩니다.
시나리오 2 - 업데이트 소스 주소가 변경된 eBGP
ASR9K-1과 ASR9K-3 간에 eBGP 세션을 구축할 수 있습니다. IP 주소는 172.123.3.1 및 172.123.3.2입니다. 새 계획에 따라 IP 주소를 172.123.3.111 및 172.123.3.222로 변경했습니다. eBGP를 먼저 구성한 다음 인터페이스에서 IP 주소를 업데이트하면 EBGP 세션이 활성 상태로 고정됩니다.
그 원인은 시나리오 1과 같습니다. eBGP 세션을 구성하면 LPTS 항목은 해당 시점의 로컬 이그레스 인터페이스에 따라 생성됩니다.
ASR9K-1:
========
ASR9K-1#show lpts ifib entry brief | inc "BGP"
...
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,179 172.123.3.222
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,24067 172.123.3.222,179
ASR9K-3:
========
ASR9K-3#show lpts ifib entry brief | inc "BGP"
...
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,45091 172.123.3.111,179
BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,179 172.123.3.111
로컬 IP 주소는 나중에 변경되었지만 LPTS 항목은 업데이트되지 않습니다. TCP 요청이 차단되고 세션은 계속 활성 상태로 유지됩니다.
솔루션
이 문제를 해결하려면 LPTS에 대한 업데이트를 트리거해야 합니다. 다음 옵션을 사용하여 문제를 해결할 수 있습니다.
- Shut/No BGP 네이버 종료
- BGP 인접 디바이스 재구성
- 프로세스 BGP 다시 시작
- 이 문제를 방지할 수 있도록 양쪽에서 update-source를 구성합니다.
XR 릴리스의 개선 사항
최근 IOS XR 릴리스에서는 몇 가지 개선 사항이 있습니다.
CSCuz51103 - BGP 세션이 활성 상태에서 중단되었습니다.
이 향상된 기능은 XR 릴리스 6.1.1에서 도입되었습니다. 이 릴리스에서는 BGP가 세션 재설정을 시도할 때 LPTS가 해당 엔트리를 새 로컬 IP 주소로 업데이트합니다. 업데이트 시간은 양쪽 끝의 보류 시간 컨피그레이션에 따라 달라집니다. 세션이 시작되기를 기다릴 수도 있습니다.
이러한 개선 사항에서도 수동 모드를 구성한 경우 BGP 세션이 활성 상태로 고정될 수 있습니다. 그 이유는 명백합니다. BGP가 세션을 다시 설정하려고 시도하지 않으면 로컬 IP 주소를 확인하지 않습니다. 따라서 LPTS 항목은 업데이트되지 않습니다.
XR 릴리스 6.2.1에서 이러한 상황에 대한 또 다른 개선 사항이 있습니다.
CSCvb15128 - 라우터에 수동 BGP 모드가 구성되어 있는 동안 BGP 세션이 액티브에서 중단되었습니다.
관련 정보