이 문서에서는 BGP(Border Gateway Protocol)와 관련된 가장 일반적인 문제를 해결하는 방법을 설명하고 기본 솔루션 및 지침을 제공합니다.
이 문서에 대한 특정 요건이 없습니다. 기본 BGP 프로토콜 지식이 유용합니다. 자세한 내용은 BGP 컨피그레이션 가이드를 참조하십시오.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 제한되지 않지만, 명령은 Cisco IOS® 및 Cisco IOS® XE에 적용할 수 있습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
이 문서에서는 BGP(Border Gateway Protocol)의 가장 일반적인 문제를 해결하기 위한 기본 설명서와 해결 조치, 문제의 근본 원인을 탐지하는 데 유용한 명령/디버그 및 잠재적인 문제를 방지하는 모범 사례를 제공합니다. 모든 가능한 변수와 시나리오는 고려할 수 없으며 Cisco TAC에서 더 심층적인 분석을 요구할 수 있습니다.
이 토폴로지 다이어그램을 이 문서에서 제공하는 출력에 대한 참조로 사용하십시오.

BGP 세션이 오프라인인 경우 show ip bgp all summarycommand.를 실행합니다. 세션의 현재 상태를 제공합니다.
R2#show ip bgp all summary For address family: IPv4 Unicast BGP router identifier 198.51.100.2, local AS number 65537 BGP table version is 19, main routing table version 19 18 network entries using 4464 bytes of memory 18 path entries using 2448 bytes of memory 1/1 BGP path/bestpath attribute entries using 296 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 7208 total bytes of memory BGP activity 18/0 prefixes, 18/0 paths, scan interval 60 secs 18 networks peaked at 11:21:00 Jun 30 2022 CST (00:01:35.450 ago) Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.23.3 4 65537 6 5 19 0 0 00:01:34 18 198.51.100.1 4 65536 0 0 1 0 0 never Idle
첫 번째 요건은 두 피어 간의 연결이므로 포트 179에서 TCP 세션이 설정됩니다. 직접 연결되거나 연결되지 않음), ping을 사용할 수 있습니다. 루프백 인터페이스 간에 피어링이 설정된 경우 루프백 핑에 대한 루프백을 완료해야 합니다. 소스 인터페이스로 특정 루프백 없이 ping 테스트가 수행되는 경우 발신 물리적 인터페이스 IP 주소가 라우터의 루프백 IP 주소 대신 패킷의 소스 IP 주소로 사용됩니다.
Ping에 실패한 경우 다음과 같은 이유를 고려하십시오.
Ping이 성공하면
%BGP-3-NOTIFICATION: sent to neighbor 198.51.100.1 passive 2/2 (peer in wrong AS) 2 bytes 1B39
AS 번호 또는 피어 IP 주소를 수정하려면 양쪽에서 BGP 컨피그레이션을 확인합니다.
%BGP-3-NOTIFICATION: sent to neighbor 198.51.100.1 passive 2/3 (BGP identifier wrong) 4 bytes 0A0A0A0A
show ip bgp all summary 명령을 실행하여 양쪽 끝에서 BGP 식별자를 확인하고 중복된 문제를 해결합니다. 이는 bgp 라우터 컨피그레이션에서 전역 명령 bgp router-id X.X.X.X를 사용하여 수동으로 수행할 수 있습니다. 모범 사례로서, 라우터 ID가 수동으로 고유 번호로 설정되었는지 확인합니다.
대부분의 iBGP 세션은 IGP를 통해 연결할 수 있는 루프백 인터페이스를 통해 구성됩니다. 이 루프백 인터페이스는 소스로 명시적으로 정의해야 합니다. neighbor ip-address update-source interface-id 명령을 실행하여 완료할 수 있습니다.
eBGP 피어가 직접 연결된 인터페이스의 경우 대부분 피어링에 사용됩니다. 이 목적을 달성하기 위해 Cisco IOS/Cisco IOS XE에 대한 확인 표시가 있거나, 세션을 설정하려고 시도하지 않습니다. 직접 연결된 라우터에서 루프백에서 루프백으로 eBGP를 시도하는 경우 neighbor ip-address disable-connected-check 명령을 실행하여 양단의 특정 네이버에 대해 이 확인을 비활성화할 수 있습니다.
그러나 eBGP 피어 간에 여러 홉이 있는 경우 적절한 홉 카운트가 필요합니다. 각 세션을 설정할 수 있도록 인접 디바이스 ip-address ebgp-multihop [hop-count]가 올바른 홉 카운트로 구성되어 있는지 확인하십시오. hop-count를 지정하지 않으면 iBGP 세션의 기본 TTL 값은 255이고 eBGP 세션의 기본 TTL 값은 1입니다.
포트 179를 테스트하는 데 유용한 작업은 한 피어에서 다른 피어로의 수동 텔넷입니다.
R1#telnet 198.51.100.2 179 Trying 198.51.100.2, 179 ... Open [Connection to 198.51.100.2 closed by foreign host]
열기/연결이 닫혔거나 원격 호스트에서 연결이 거부된 경우 패킷이 원격 끝에 도달했음을 나타냅니다. 그런 다음 먼 쪽 끝의 컨트롤 플레인에 문제가 없는지 확인합니다. 그렇지 않으면 Destination Unreachable 메시지가 있는 경우 TCP 포트 179, BGP 패킷을 차단할 수 있는 방화벽 또는 액세스 목록을 확인하거나 경로에 패킷 손실이 있는지 확인합니다.
인증이 문제인 경우 다음과 같은 메시지가 표시됩니다.
%TCP-6-BADAUTH: Invalid MD5 digest from 198.51.100.1(179) to 198.51.100.2(20062) tableid - 0 %TCP-6-BADAUTH: No MD5 digest from 198.51.100.1(179) to 198.51.100.2(20062) tableid - 0
인증 방법, 비밀번호 및 관련 컨피그레이션을 확인하고 추가 트러블슈팅을 하려면 MD5 Authentication Between BGP Peers Configuration Example Guide를 참조하십시오.
TCP 세션이 온라인 상태가 아닌 경우 격리를 위해 다음 명령을 사용합니다.
show tcp brief all
show control-plane host open-ports
debug ip tcp transactions
세션이 간헐적인 경우 show log를 확인하고 몇 가지 시나리오를 찾을 수 있습니다.
%BGP-5-ADJCHANGE: neighbor 198.51.100.2 Down Interface flap
이 실패의 원인은 "Down Interface Flap" 때문입니다. 포트/SFP, 케이블 또는 연결 해제에 물리적 문제가 있는지 확인합니다.
%BGP-3-NOTIFICATION: sent to neighbor 198.51.100.2 4/0 (hold time expired) 0 bytes
이는 일반적이며 보류 타이머가 만료되기 전에 라우터가 keepalive 메시지를 수신/처리하지 않았거나 메시지를 업데이트하지 않았습니다. 디바이스가 알림 메시지를 전송하고 세션을 닫습니다. 이 문제의 가장 일반적인 이유는 다음과 같습니다.
show ip bgp neighbors ip_address 명령을 실행하여 협상된 MSS를 확인할 수 있습니다.
df 세트가 있는 특정 인접 디바이스에 대한 ping 테스트에서는 MTU가 경로를 따라 유효한지 확인할 수 있습니다.
ping 198.51.100.2 size max_seg_size df
MTU 문제가 발견되면 컨피그레이션에 대한 정확한 검토를 완료하여 MTU 값이 네트워크 전체에서 일관되게 유지되도록 해야 합니다.
%BGP-5-ADJCHANGE: neighbor 198.51.100.2 passive Down AFI/SAFI not supported
%BGP-3-NOTIFICATION: received from neighbor 198.51.100.2 active 2/8 (no supported AFI/SAFI) 3 bytes 000000
AFI(Address-Family Identifier)는 MP-BGP(Multi-Protocol BGP)에서 추가하는 기능 확장입니다. 이는 IPv4, IPv6 등과 같은 특정 네트워크 프로토콜에 관한 것이다. 유니캐스트 및 멀티캐스트와 같은 후속 SAFI(주소군 식별자)를 통한 세분화 MBGP는 BGP 경로 속성(PA) MP_REACH_NLRI 및 MP_UNREACH_NLRI를 사용하여 이러한 분리를 수행합니다. 이러한 특성은 BGP 업데이트 메시지 내에서 전달되며 서로 다른 주소 패밀리에 대한 네트워크 연결 정보를 전달하는 데 사용됩니다.
이 메시지는 IANA에서 등록한 AFI/SAFI 번호를 제공합니다.
BGP 및 최적 경로 선택에 대한 자세한 내용은 BGP 최적 경로 선택 알고리즘을 참조하십시오.
라우팅 테이블에 경로를 설치하려면 다음 홉에 연결할 수 있어야 합니다. 그렇지 않으면 접두사가 Loc-RIB BGP 테이블에 있더라도 RIB로 이동하지 않습니다. 루프 방지 규칙으로서 Cisco IOS/Cisco IOS XE에서 iBGP는 AS_PATH만 남기고 eBGP가 다음 홉을 다시 쓰고 AS_PATH를 앞에 두므로 다음 홉 특성이 변경되지 않습니다.
show ip bgp [prefix] 명령을 실행하여 next hop을 검토할 수 있습니다. 다음 hop 및 액세스할 수 없는 단어가 제공되기 때문입니다. 이 예에서는 R1이 eBGP를 통해 R2에 알리고 R3이 R2에서 iBGP 연결을 통해 학습한 접두사입니다.
R3#show ip bgp 192.0.2.1
BGP routing table entry for 192.0.2.1/32, version 0
Paths: (1 available, no best path)
Not advertised to any peer
Refresh Epoch 1
65536
198.51.100.1 (inaccessible) from 10.0.23.2 (10.2.2.2)
Origin incomplete, metric 0, localpref 100, valid, internal
rx pathid: 0, tx pathid: 0
Updated on Jul 1 2022 13:44:19 CST
출력에서 next hop은 R3에서 알 수 없는 R1의 발신 인터페이스입니다. 이 상황을 해결하려면 IGP, 고정 경로를 통해 next-hop을 광고하거나 iBGP 피어에서 neighbor ip-address next-hop-self 명령을 실행하여 직접 연결된 next-hop IP를 수정할 수 있습니다. 다이어그램 예제에서 이 컨피그레이션은 R2에 있어야 합니다. R3에 대한 인접 디바이스(인접 디바이스 10.0.23.3 next-hop-self)
그 결과, 다음 홉이 (clear ip bgp 10.0.23.2 소프트 이후) 직접 연결된 인터페이스(연결 가능)로 변경되고 접두사가 설치됩니다.
R3#show ip bgp 192.0.2.1
BGP routing table entry for 192.0.2.1/32, version 24
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
65536
10.0.23.2 from 10.0.23.2 (10.2.2.2)
Origin incomplete, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Updated on Jul 1 2022 13:46:53 CST
전역 RIB에 경로를 설치할 수 없어 RIB 장애가 발생하는 경우 이러한 문제가 발생합니다. 일반적인 이유는 동일한 접두사가 관리 거리가 더 낮은 다른 라우팅 프로토콜의 RIB에 이미 있지만 RIB 실패의 정확한 이유가 show ip bgp rib-failure 명령에 나타나는 경우입니다.
가장 일반적인 문제는 상호 재배포 시나리오에서 IGP가 eBGP보다 선호될 때입니다. IGP 경로가 BGP로 재배포되는 경우 BGP에서 로컬로 생성한 것으로 간주되며 기본적으로 32,768의 가중치를 수신합니다. BGP 피어에서 수신한 모든 접두사에는 기본적으로 로컬 가중치 0이 할당됩니다. 따라서 동일한 접두사를 비교해야 하는 경우 BGP 최적 경로 선택 프로세스에 따라 가중치가 높은 접두사가 라우팅 테이블에 설치되므로 RIB에 IGP 경로가 설치됩니다.
이 문제의 해결 방법은 라우터 bgp 컨피그레이션에서 BGP 피어에서 수신한 모든 경로에 더 높은 가중치를 설정하는 것입니다.
neighbor ip-address weight 40000
발신자가 업데이트 메시지를 생성하는 속도를 따라잡을 수 없는 피어입니다. 피어가 이 문제를 나타내는 데에는 여러 가지 이유가 있습니다. 피어 중 하나의 높은 CPU, 과도한 트래픽, 링크의 트래픽 손실, 대역폭 리소스 등
BGP는 Cisco IOS 프로세스에 할당된 메모리를 사용하여 네트워크 접두사, 최상의 경로, 정책 및 모든 관련 컨피그레이션이 제대로 작동하도록 유지합니다. 전체 프로세스는 show processes memory sortedcommand를 실행하여 확인할 수 있습니다.
R1#show processes memory sorted
Processor Pool Total: 2121414332 Used: 255911152 Free: 1865503180 reserve P Pool Total: 102404 Used: 88 Free: 102316 lsmpi_io Pool Total: 3149400 Used: 3148568 Free: 832 PID TTY Allocated Freed Holding Getbufs Retbufs Process 0 0 266231616 81418808 160053760 0 0 *Init* 662 0 34427640 51720 34751920 0 0 SBC main process 85 0 9463568 0 8982224 0 0 IOSD ipc task 0 0 34864888 25213216 8513400 8616279 0 *Dead* 504 0 696632 0 738576 0 0 QOS_MODULE_MAIN 518 0 940000 8616 613760 0 0 BGP Router 228 0 856064 345488 510080 0 0 mDNS 82 0 547096 118360 417520 0 0 SAMsgThread 0 0 0 0 395408 0 0 *MallocLite*
프로세서 풀은 사용된 메모리입니다. 2.1GB 정도입니다. 그런 다음 Holding 열을 확인하여 대부분의 하위 프로세스를 확인해야 합니다. 그런 다음 현재 있는 BGP 세션, 수신된 경로 수 및 사용된 컨피그레이션을 확인해야 합니다.
BGP의 메모리 보유를 줄이기 위한 일반적인 단계:
라우터는 BGP가 작동하는 데 서로 다른 프로세스를 사용합니다. BGP 프로세스가 높은 CPU 사용률의 원인인지 확인하려면 show process cpu sorted 명령을 실행합니다.
R3#show processes cpu sorted CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 163 36 1463 24 0.07% 0.00% 0.00% 0 ADJ background 62 28 132 212 0.07% 0.00% 0.00% 0 Exec 2 39 294 132 0.00% 0.00% 0.00% 0 Load Meter 1 0 4 0 0.00% 0.00% 0.00% 0 Chunk Manager 3 27 1429 18 0.00% 0.00% 0.00% 0 BGP Scheduler 4 0 1 0 0.00% 0.00% 0.00% 0 RO Notify Timers 63 4 61 65 0.00% 0.00% 0.00% 0 BGP I/O 83 924 26 35538 0.00% 0.03% 0.04% 0 BGP Scanner 96 142 11651 12 0.00% 0.00% 0.00% 0 Tunnel BGP 7 0 1 0 0.00% 0.00% 0.00% 0 DiscardQ Backgro
다음은 BGP로 인한 높은 CPU 사용률을 극복하기 위한 일반적인 프로세스, 원인 및 일반적인 단계입니다.
| 개정 | 게시 날짜 | 의견 |
|---|---|---|
5.0 |
02-Sep-2026
|
맞춤법/문법 업데이트, 가독성을 위해 별도의 섹션에 삽입된 가로줄, CCW 오류 수정 |
4.0 |
19-Feb-2025
|
재인증 |
3.0 |
25-Sep-2023
|
IOS XE(제거된 대시) 업데이트 및 상표, SEO 및 서식 추가. |
2.0 |
21-Feb-2023
|
재인증. |
1.0 |
04-Aug-2022
|
최초 릴리스 |