목차

소개

네트워크 다이어그램

최상의 경로

테이블 버전 유형

초기 테이블 버전 번호

BGP 테이블 버전 변경에 대한 조건

테이블 버전 사용

문제 해결 사용

소개

이 문서에서는 어떤 BGP 접두사의 경로 변경 사항이 어떤 BGP 피어로 전파되는지 추적하기 위해 BGP(Border Gateway Protocol)에서 사용하는 번호인 테이블 버전에 대해 설명합니다. BGP 소프트웨어에서 사용하는 번호입니다. 네트워크 관리자가 문제를 해결하는 데 도움이 되는 show 명령을 입력하면 Table Version 번호를 볼 수 있습니다.

네트워크 다이어그램

이 문서에 사용된 네트워크 다이어그램입니다.

최상의 경로

BGP 접두사에 하나 이상의 경로가 있습니다. BGP 접두사는 서로 다른 BGP 피어 및 소스에서 학습되기 때문입니다.

다음은 다중 경로가 있는 BGP 접두사의 예입니다. 두 개의 경로가 있고, 가장 좋은 경로는 두 번째 경로입니다.

R1#show bgp ipv4 unicast 10.100.1.1

BGP routing table entry for 10.100.1.1/32, version 2

Paths: (2 available, best #2, table default)

Advertised to update-groups:

1

Refresh Epoch 1

5 4

10.1.5.5 from 10.1.5.5 (10.1.5.5)

Origin IGP, localpref 100, valid, external

rx pathid: 0, tx pathid: 0

Refresh Epoch 1

4

10.1.3.4 from 10.1.3.4 (10.100.1.1)

Origin IGP, metric 0, localpref 100, valid, external, best

rx pathid: 0, tx pathid: 0x0

BGP Best Path 알고리즘을 기반으로 한 BGP 최적 경로로 하나의 경로만 선택됩니다. 항상 그렇습니다. 자세한 내용은 BGP 최적 경로 선택 알고리즘 문서를 참조하십시오.

경로는 라우팅 프로토콜에서 BGP로 재배포되는 것과 같은 BGP 피어 또는 소스에서 학습됩니다. 최적 경로가 변경된 경우 BGP는 업데이트 또는 철회 메시지를 전송하여 피어에 알려야 합니다. BGP 접두사의 마지막 경로가 제거되면 철회 메시지가 전송됩니다.

다음은 network 명령에서 접두사를 로컬로 소싱하는 예입니다.

R4#show bgp ipv4 unicast 10.100.1.1

BGP routing table entry for 10.100.1.1/32, version 4

Paths: (1 available, best #1, table default)

Advertised to update-groups:

1

Refresh Epoch 1

Local

0.0.0.0 from 0.0.0.0 (10.1.3.4)

Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best

rx pathid: 0, tx pathid: 0x0

출력에 원본 IGP가 표시됩니다.

다음은 재배포 연결 명령에서 접두사를 로컬로 소싱하는 예입니다.

R4#show bgp ipv4 unicast 10.100.1.1

BGP routing table entry for 10.100.1.1/32, version 7

Paths: (1 available, best #1, table default)

Flag: 0x820

Not advertised to any peer

Refresh Epoch 1

Local

0.0.0.0 from 0.0.0.0 (10.1.3.4)

Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best

rx pathid: 0, tx pathid: 0x0

출력에 원본 불완전이 표시됩니다.

테이블 버전 유형

테이블 버전 번호는 32비트 값이며 다음 네 가지 유형의 테이블 버전이 있습니다.

- BGP 테이블 버전

- RIB(Routing Information Base) 테이블 버전

- 피어 테이블 버전

- 접두사 테이블 버전

이러한 내용은 테이블 버전 사용 섹션에서 자세히 설명합니다.

초기 테이블 버전 번호

BGP에서 접두사에 대해 아직 학습하지 않은 경우 전역 테이블 버전, RIB 테이블 버전 및 피어 테이블 버전은 1이며, 이는 테이블 버전 번호의 시작점입니다.

summary 키워드가 포함된 BGP 명령은 세 개의 테이블 버전 번호를 제공합니다. summary 키워드는 BGP의 모든 주소 패밀리에 대해 제공될 수 있습니다.

R1#show bgp ipv4 unicast summary

BGP router identifier 10.1.3.1, local AS number 1

BGP table version is 1, main routing table version 1

Neighbor     V       AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

10.1.1.2     4        2       4       4        1    0    0 00:01:15        0

10.1.2.3     4        3       4       4        1    0    0 00:01:06        0

10.1.3.4     4        4       4       4        1    0    0 00:01:33        0

BGP 테이블에서 접두사를 보면 Prefix Table Version을 볼 수 있습니다.

R1#show bgp ipv4 unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32, version 2

Paths: (1 available, best #1, table default)

Advertised to update-groups:

1

Refresh Epoch 1

4

10.1.3.4 from 10.1.3.4 (10.1.3.4)

Origin IGP, metric 0, localpref 100, valid, external, best

rx pathid: 0, tx pathid: 0x0

show ip bgp internal 명령을 입력하면 Table Version을 볼 수 있습니다.

R1#show ip bgp internal

Time left for bestpath timer: 964 secs

Consistency-checker not enabled

Update generation pool version 8, messages 0, in pool 0, below 00:00:24.432.

Enhanced Refresh EOR Stalepath-time disabled

Enhanced Refresh max-eor-time disabled

Total number of BGP Accepter process: 50, Spawned count: 0

Total number of neighbors: 4

Total number of sessions : 4

Established            : 4

OpenConfirm            : 0

OpenSent               : 0

Active                 : 0

Connect                : 0

Idle                   : 0

Closing                : 0

Uninitialized          : 0

Address-family IPv4 Unicast, Mode : RW

Table Versions : Current 39 Init 2 RIB 39

Start time : 00:00:18.919    Time elapsed 22:15:38.198

First Peer up in : 00:00:06.830    Exited Read-Only in : 00:01:07.966

Done with Install in : 00:01:07.967    Last Update-done in : 00:01:07.969

0 updates expanded

L3VPN Tunnel Encapsulated Paths : 0

Slow-peer detection is disabled     BGP Nexthop scan:-

penalty: 0, Time since last run: 21:19:42.174,  Next due in: none

Max runtime : 0 ms Latest runtime : 0 ms Scan count: 2

BGP General Scan:-

Max runtime : 1 ms Latest runtime : 0 ms Scan count: 0

BGP future scanner version: 1333

BGP scanner version: 0

Address-family IPv4 Multicast, Mode : RW

Table Versions : Current 1 Init 1 RIB 1

Start time : 00:00:18.919    Time elapsed 22:15:38.199

First Peer up in : never    Exited Read-Only in : 00:00:10.286

Done with Install in : 00:00:10.286    Last Update-done in : never

0 updates expanded

L3VPN Tunnel Encapsulated Paths : 0

Slow-peer detection is disabled     BGP Nexthop scan:-

penalty: 0, Time since last run: never,  Next due in: none

Max runtime : 0 ms Latest runtime : 0 ms Scan count: 0

BGP General Scan:-

Max runtime : 1 ms Latest runtime : 0 ms Scan count: 0

BGP future scanner version: 1334

BGP scanner version: 0

Address-family MVPNv4 Unicast, Mode : RW

Table Versions : Current 1 Init 1 RIB 1

Start time : 00:00:18.919    Time elapsed 22:15:38.200

First Peer up in : never    Exited Read-Only in : 00:00:10.286

Done with Install in : 00:00:10.286    Last Update-done in : never

0 updates expanded

L3VPN Tunnel Encapsulated Paths : 0

Slow-peer detection is disabled     BGP Nexthop scan:-

penalty: 0, Time since last run: never,  Next due in: none

Max runtime : 0 ms Latest runtime : 0 ms Scan count: 0

BGP General Scan:-

Max runtime : 1 ms Latest runtime : 0 ms Scan count: 0

BGP future scanner version: 1334

TX VPN optimization enabled.

BGP 테이블 버전 변경에 대한 조건

BGP 테이블 버전 번호를 변경하려면 최적 경로의 변경과 RIB에 전파된 변경 사항이 있어야 합니다. BGP 접두사에 대한 RIB에 대한 변경은 접두사가 RIB에 BGP 접두사로 있는 경우에만 발생합니다. 다른 라우팅 프로토콜이 접두사를 라우팅에 배치하면 BGP 접두사는 RIB-failure로 표시됩니다. 이 경우 최상의 경로가 변경되더라도 테이블 버전은 변경되지 않습니다.

다음은 BGP 테이블 버전이 변경되지 않는 예입니다. R4에서 학습된 BGP 접두사 10.100.1.1/32은 R1에 구성된 고정 경로에서도 학습됩니다. 따라서 R1은 RIB에 고정 경로를 설치하고 R1의 BGP는 RIB에 접두사를 설치하는 BGP가 아니므로 접두사를 RIB-failure로 표시합니다. 이 접두사에 대한 BGP 경로의 변경은 RIB에 전파되지 않습니다. 따라서 최상의 경로 변경이 있더라도 RIB에 대한 업데이트가 없으므로 BGP 테이블 버전이 충돌되지 않습니다.

R1#show bgp ipv4 unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32, version 8

Paths: (2 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

2

Refresh Epoch 2

4

10.1.3.4 from 10.1.3.4 (10.100.1.1)

Origin IGP, metric 0, localpref 100, valid, external, best

rx pathid: 0, tx pathid: 0x0

Refresh Epoch 2

5 4

10.1.5.5 from 10.1.5.5 (10.1.5.5)

Origin IGP, localpref 100, valid, external

rx pathid: 0, tx pathid: 0

R1#show ip route 10.100.1.1

Routing entry for 10.100.1.1/32

Known via "static", distance 1, metric 0 (connected)

Routing Descriptor Blocks:

* directly connected, via Loopback0

Route metric is 0, traffic share count is 1

테이블 버전 사용

최상의 경로가 BGP 접두사를 변경하면 몇 가지 일이 발생해야 합니다.

- RIB에 알림을 보내야 합니다.

- BGP 피어에 대한 정보를 제공해야 합니다.

- 라우터는 어떤 BGP 피어가 어떤 최적의 경로 변경을 알릴지 추적해야 합니다.

BGP Table Version은 사용된 기본 번호입니다. 이 번호는 특정 주소 패밀리에 대한 BGP 접두사의 최상위 접두사 테이블 버전과 동일합니다. BGP 테이블에 접두사 테이블 버전 3, 6, 8, 10 및 18과 함께 5개의 접두사가 있다고 가정합니다. 그러면 BGP 테이블 버전이 18이 됩니다.

Peer Table Version(피어 테이블 버전)은 어떤 피어가 어떤 접두사에 대해 어떤 변경이 있었는지 알려주어야 하는지를 추적하기 위해 사용됩니다. 각 피어의 Peer Table Version(피어 테이블 버전)은 접두사의 Prefix Table Version(접두사 테이블 버전)에 대해 선택됩니다. 접두사의 Prefix Table Version이 Peer Table Version보다 낮은 경우 BGP는 해당 접두사에 대한 업데이트를 해당 BGP 피어로 전송해야 합니다. 예를 들어, 피어 10.1.1.2에 60의 피어 테이블 버전이 있는 경우 해당 피어는 접두사 테이블 버전이 60 이하인 모든 접두사에 대해 최신 버전입니다. 라우터는 접두사 테이블 버전이 60보다 높은 모든 접두사에 대해 BGP 업데이트를 전송해야 합니다.

라우터가 경로 변경 접두사에 대해 BGP 피어를 업데이트하면 라우터는 이 피어의 피어 테이블 버전을 업데이트합니다. 이 Peer Table Version 값은 이 BGP 피어가 업데이트된 모든 접두사의 가장 높은 Prefix Table Version 값과 일치하도록 조정됩니다. 피어 테이블 버전이 60이고 접두사 테이블 버전 61 및 62의 접두사가 두 개 있다고 가정합니다. 라우터가 이러한 두 접두사에 대한 새 최적 경로를 해당 BGP 피어로 전송하면 피어 테이블 버전이 62로 업데이트됩니다.

Prefix Table Version은 BGP 접두사에 연결된 테이블 버전 번호입니다. 해당 접두사에 대한 최상의 경로가 변경되면 변경됩니다. 하나의 BGP 접두사에 대한 최상의 경로가 변경될 때마다 접두사 테이블 버전이 충돌됩니다. 즉, 사용 가능한 다음 버전 번호와 동일하게 업데이트됩니다. 접두사 10.0.0.0/8에 접두사 테이블 버전 27이 있고 BGP 테이블 버전이 30이라고 가정합니다. 이 경우 접두사 10.0.0.0/8의 최적 경로가 변경되면 해당 접두사 테이블 버전이 31로 충돌됩니다.

RIB 테이블 버전은 BGP 최적 경로 변경 후 RIB를 업데이트해야 하는지 여부를 추적하기 위해 사용됩니다. RIB는 접두사 테이블 버전이 RIB 테이블 버전보다 높은 BGP 접두사에 대해 알려주어야 합니다. 이러한 접두사에는 RIB ADD, DELETE 또는 MODIFY 이벤트가 있습니다.

문제 해결 사용

BGP가 통합된 시기를 확인하려면 show bgp summary 명령을 입력합니다. 피어 BGP 테이블 버전이 BGP 테이블 버전과 동일하면 해당 피어가 통합됩니다. 기본 라우팅 테이블 버전이 BGP 테이블 버전과 같으면 RIB가 통합됩니다.

R1#show bgp ipv4 unicast summary

BGP router identifier 10.1.3.1, local AS number 1

BGP table version is 2, main routing table version 2

1 network entries using 144 bytes of memory

1 path entries using 80 bytes of memory

1/1 BGP path/bestpath attribute entries using 144 bytes of memory

1 BGP AS-PATH entries using 24 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 392 total bytes of memory

BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs

Neighbor     V       AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

10.1.1.2     4        2      69      69        2    0    0 01:00:54        0

10.1.2.3     4        3      69      70        2    0    0 01:00:45        0

10.1.3.4     4        4      72      70        2    0    0 01:01:12        1

BGP 테이블 버전에 여러 변경 사항이 있을 수 있으며, 이는 항상 문제가 있다는 것을 의미하지는 않습니다.

라우터가 인터넷에 연결되어 있고 전체 인터넷 라우팅 테이블이 있다고 가정합니다. 일반적으로 인터넷 BGP 테이블에는 거의 1초마다 몇 가지 변경 사항이 있습니다. 그런 다음 라우터는 일부 접두사에 대해 최상의 경로를 재계산하고 RIB 및 BGP 피어를 업데이트해야 합니다. 이는 예상 동작입니다.

BGP 피어를 지우고(세션이 재설정됨) 라우터가 전체 BGP 테이블을 해당 피어에 광고해야 한다고 가정합니다. 해당 피어의 테이블 버전이 증가할 것으로 예상됩니다. 피어가 BGP 접두사를 다시 수신하면 테이블 버전이 증가합니다. 전송 BGP 피어는 BGP 접두사에 대한 테이블 버전을 증가시키지 않습니다.

이제 DDoS 공격의 실제 사례를 살펴보겠습니다. 테이블 버전은 28로 시작합니다.

R1#show bgp ipv4 unicast summary

BGP router identifier 10.1.3.1, local AS number 1

BGP table version is 28, main routing table version 281

network entries using 144 bytes of memory2 path entries using 160 bytes of memory

2/1 BGP path/bestpath attribute entries using 288 bytes of memory

2 BGP AS-PATH entries using 48 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 640 total bytes of memory

BGP activity 1/0 prefixes, 16/14 paths, scan interval 60 secs

Neighbor     V       AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

10.1.1.2     4       2     117     125       28    0    0 01:43:50        0

10.1.2.3     4       3     117     125       28    0    0 01:43:53        0

10.1.3.4     4       4      10      12       28    0    0 00:04:22        1

10.1.5.5     4       5      55      63       28    0    0 00:45:45        1

R1#show bgp ipv4 unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32, version 28

Paths: (2 available, best #1, table default)

Advertised to update-groups:

1

Refresh Epoch 2

4

10.1.3.4 from 10.1.3.4 (10.100.1.1)   <<< path from R4

Origin IGP, metric 0, localpref 100, valid, external, best

rx pathid: 0, tx pathid: 0x0

Refresh Epoch 2

5 4

10.1.5.5 from 10.1.5.5 (10.1.5.5)   <<< path from R5

Origin IGP, localpref 100, valid, external

rx pathid: 0, tx pathid: 0

피어 10.1.3.4(R4)에서 R1에 대한 BGP 세션에 대해 하드 지우기를 수행합니다. 피어는 접두사 10.100.1.1/32를 R1으로 광고합니다. 10.100.1.1/32는 R4 및 R5에서 학습됩니다. 최상의 경로는 R4의 경로입니다.

BGP 테이블 버전에 어떤 일이 발생하는지 확인하기 위해 debug ip bgp internal이 활성화되었는지 확인합니다. 업데이트가 도착하면 어떤 일이 발생하는지 확인하려면 debug ip bgp 업데이트를 활성화해야 합니다.

R1#debug ip bgp updates

BGP updates debugging is on for address family: IPv4 Unicast

R1#debug ip bgp internal

BGP internal debugging is on

R1#show debugging

IP routing:

BGP internal debugging is on

BGP updates debugging is on for address family: IPv4 Unicast

R1#

%BGP-5-NBR_RESET: Neighbor 10.1.3.4 reset (Peer closed the session)   <<< BGP

session to R4 goes down

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 Changed.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 RIB done.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 Changed.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Resetting counters.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Ignoring dummy policy change.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Resetting counters.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Ignoring dummy policy change.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Changing state from ACTIVE to DOWN

(session not established).

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Removing from group (3 members left).

%BGP-5-ADJCHANGE: neighbor 10.1.3.4 Down Peer closed the session

%BGP_SESSION-5-ADJCHANGE: neighbor 10.1.3.4 IPv4 Unicast topology base removed

from session  Peer

closed the session

BGP: TX IPv4 Unicast Mem global 10.1.3.4 State is DOWN (session not established).

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Attempting to

install.   <<< RIB gets informed

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Built route type:

1024, flags: 200000, tag: 5,

metric: 0 path: 1.

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Path 1, type: DEF,

gw: 10.1.5.5, idb: N/A,

topo_id: 0, src: 1.1.5.5, lbl: 1048577, flags: 0.

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Installing 1 paths,

multipath limit 1 (from 1).

BGP(0): Revise route installing 1 of 1 routes for 10.100.1.1/32 -> 10.1.5.5

(global) to main IP table   <<< The remaining path through R5 gets installed

in the RIB

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Install successful.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 RIB done.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 RIB done.

BGP: TX IPv4 Unicast Tab RIB walk done version 29, added 1 topologies.

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Wkr global 1 Cur Processing.

BGP: TX IPv4 Unicast Top global Appending nets from attr 0x9362CB4.

BGP: TX IPv4 Unicast Wkr global 1 Cur Attr change from 0x0 to 0x9362CB4.

BGP(0): (base) 10.1.1.2 send UPDATE (format) 10.100.1.1/32, next 10.1.1.1,

metric 0, path 5 4   <<< R1 sends update for 10.100.1.1/32 for Table Version 29.

(bestpath is still the one from R5, i.e. the only one R1 has at this moment)

BGP: TX IPv4 Unicast Wkr global 1 Cur Net 10.100.1.1/32 (Pxt 0x9F58FA0:0x0)

Formatted.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Top global Added tail marker with version 29.

BGP: TX IPv4 Unicast Wkr global 1 Cur Reached marker with version 29.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Wkr global 1 Cur Replicating.

BGP: TX IPv4 Unicast Wkr global 1 Cur Done (end of list), processed 1 attr(s),

1/1 net(s), 0 pos.

BGP: TX IPv4 Unicast Grp global 1 Checking EORs again (3/3).

BGP: TX IPv4 Unicast Grp global 1 Start minimum advertisement timer (30 secs).

BGP: TX IPv4 Unicast Wkr global 1 Cur Blocked (minimum advertisement interval).

BGP: TX IPv4 Unicast Wkr global 1 Cur Reached end of list.

BGP: TX IPv4 Unicast Grp global 1 Converged.

BGP: TX IPv4 Unicast Tab Processed 1 walker(s).

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 28.

BGP: TX IPv4 Unicast Top global Collection reached marker 28 after 0 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 29 after 1 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 29 after 0 path

extension(s).

BGP: TX IPv4 Unicast Mem global 10.1.3.4 Policy change while no group and

member is DOWN.

BGP: TX IPv4 Unicast Mem global 10.1.3.4 Changing state from DOWN to WAIT

(pending advertised bit allocation).

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Added to group (now has

4 members).

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Continuing into ACTIVE state.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Refresh Start-of-rib for afi 1,

safi 1.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Full refresh requested.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Refresh has to wait for pathext

prepend.

%BGP-5-ADJCHANGE: neighbor 10.1.3.4 Up    <<< BGP session to R4 is up again.

But, R1 did not learn the prefix 10.100.1.1/32 yet from R4.

BGP: nbr_topo global 10.1.3.4 IPv4 Unicast:base (0x63D50D0:1) rcvd Refresh

Start-of-RIB

BGP: nbr_topo global 10.1.3.4 IPv4 Unicast:base (0x63D50D0:1) refresh_epoch

is 2

BGP: TX IPv4 Unicast Top global Start pathext prepend.

BGP: TX IPv4 Unicast Tab Pathext prepend full table refresh.

BGP: TX IPv4 Unicast Tab Pathext prepend full table refresh.

BGP: TX IPv4 Unicast Top global Inserting initial marker.

BGP: TX IPv4 Unicast Top global Done pathext prepend (1 attrs).

BGP: TX IPv4 Unicast Grp global 1 Starting refresh after prepend completion.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Starting refresh (first member,

1, 0, marker).

BGP: TX IPv4 Unicast Wkr global 1 Ref Start at marker 1.

BGP: TX IPv4 Unicast Wkr global 1 Ref Unblocked

BGP: TX IPv4 Unicast Top global Collection done on marker 1 after 0 path

extension(s).

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Wkr global 1 Ref Processing.

BGP: TX IPv4 Unicast Wkr global 1 Ref Attr change from 0x0 to 0x9362CB4.

BGP(0): (base) 10.1.1.2 send UPDATE (format) 10.100.1.1/32, next 10.1.1.1,

metric 0, path 5 4

BGP: TX IPv4 Unicast Wkr global 1 Ref Net 10.100.1.1/32 (Pxt 0x9F58FA0:0x0)

Formatted.

BGP: TX IPv4 Unicast Wkr global 1 Ref Reached marker with version 29.

BGP: TX IPv4 Unicast Wkr global 1 Ref Replicating (pending member_pos

processing).

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Completed refresh.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Refresh stop.

BGP: TX IPv4 Unicast Grp global 1 Refresh complete.

BGP: TX IPv4 Unicast Wkr global 1 Ref Stop.

BGP: TX IPv4 Unicast Wkr global 1 Ref Blocked (not in list).

BGP: TX IPv4 Unicast Grp global 1 Converged.

BGP: TX IPv4 Unicast Mem global 1 1 10.1.3.4 Send EOR.

BGP: TX IPv4 Unicast Wkr global 1 Ref Suspending / blocked (member marker),

processed 1 attr(s), 1/1 net(s),

1 pos.

BGP: TX IPv4 Unicast Tab Processed 1 walker(s).

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 1.

BGP: TX IPv4 Unicast Top global Collection reached marker 1 after 0 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 29 after 1 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 29 after 0 path

extension(s).

BGP(0): 10.1.3.4 rcvd UPDATE w/ attr: nexthop 10.1.3.4, origin i, metric 0,

merged path4, AS_PATH

BGP(0): 10.1.3.4 rcvd 10.100.1.1/32   <<< R1 received 10.100.1.1/32 from

R4 again

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 Changed.

BGP: nbr_topo global 10.1.3.4 IPv4 Unicast:base (0x63D50D0:1) rcvd Refresh

End-of-RIB

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Attempting to install.

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Built route type:

1024, flags: 200000, tag: 4, metric: 0 path: 1.

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Path 1, type: DEF,

gw: 10.1.3.4, idb: N/A, topo_id: 0, src: 1.1.3.4, lbl: 1048577, flags: 0.

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Installing 1 paths,

multipath limit 1 (from 1).

BGP(0): Revise route installing 1 of 1 routes for 10.100.1.1/32 -> 10.1.3.4

(global) to main IP table

BGP: net global:IPv4 Unicast:base 10.100.1.1/32 RIB-INSTALL Install successful.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 RIB done.

BGP: TX IPv4 Unicast Net global 10.100.1.1/32 RIB done.

BGP: TX IPv4 Unicast Tab RIB walk done version 30, added 1 topologies.

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX Member message pool under period (60 < 600).

BGP: TX IPv4 Unicast Mem global 1 1 10.1.2.3 State is ACTIVE (ready).

BGP: TX IPv4 Unicast Grp global 1 Minimum advertisement timer expired.

BGP: TX IPv4 Unicast Wkr global 1 Cur Unblocked

BGP: TX IPv4 Unicast Tab Executing.

BGP: TX IPv4 Unicast Wkr global 1 Cur Processing.

BGP: TX IPv4 Unicast Top global Appending nets from attr 0x9362D54.

BGP: TX IPv4 Unicast Wkr global 1 Cur Attr change from 0x0 to 0x9362D54.

BGP(0): (base) 10.1.1.2 send UPDATE (format) 10.100.1.1/32, next 10.1.1.1,

metric 0, path 4   <<< R1 sends an update for 10.100.1.1/32 for Table Version

30 (bestpath is again the one from R4)

BGP: TX IPv4 Unicast Wkr global 1 Cur Net 10.100.1.1/32 (Pxt 0x9F58FA0:0x0)

Formatted.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Top global Added tail marker with version 30.

BGP: TX IPv4 Unicast Wkr global 1 Cur Reached marker with version 30.

BGP: TX IPv4 Unicast Top global No attributes with modified nets.

BGP: TX IPv4 Unicast Wkr global 1 Cur Replicating.

BGP: TX IPv4 Unicast Wkr global 1 Cur Done (end of list), processed 1

attr(s), 1/1 net(s), 0 pos.

BGP: TX IPv4 Unicast Grp global 1 Checking EORs again (4/4).

BGP: TX IPv4 Unicast Grp global 1 Start minimum advertisement timer (30 secs).

BGP: TX IPv4 Unicast Wkr global 1 Cur Blocked (minimum advertisement interval).

BGP: TX IPv4 Unicast Wkr global 1 Cur Reached end of list.

BGP: TX IPv4 Unicast Grp global 1 Converged.

BGP: TX IPv4 Unicast Tab Processed 1 walker(s).

BGP: TX IPv4 Unicast Tab Generation completed.

BGP: TX IPv4 Unicast Top global Deleting first marker with version 29.

BGP: TX IPv4 Unicast Top global Collection reached marker 29 after 0 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 30 after 1 path

extension(s).

BGP: TX IPv4 Unicast Top global Collection done on marker 30 after 0 path

extension(s).

BGP: TX IPv4 Unicast Tab RIB walk done version 30, added 0 topologies.

모든 테이블 버전은 현재 30에 있습니다.

R1#show bgp ipv4 unicast summary

BGP router identifier 10.1.3.1, local AS number 1

BGP table version is 30, main routing table version 30

1 network entries using 144 bytes of memory

2 path entries using 160 bytes of memory

2/1 BGP path/bestpath attribute entries using 288 bytes of memory

2 BGP AS-PATH entries using 48 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 640 total bytes of memory

BGP activity 1/0 prefixes, 17/15 paths, scan interval 60 secs

Neighbor     V       AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

10.1.1.2     4        2     127     135       30    0    0 01:52:42        0

10.1.2.3     4        3     126     136       30    0    0 01:52:45        0

10.1.3.4     4        4      12      14       30    0    0 00:06:25        1

10.1.5.5     4        5      64      73       30    0    0 00:54:37        1

R1#show bgp ipv4 unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32, version 30

Paths: (2 available, best #1, table default)

Advertised to update-groups:

1

Refresh Epoch 2

4

10.1.3.4 from 10.1.3.4 (10.100.1.1)

Origin IGP, metric 0, localpref 100, valid, external, best

rx pathid: 0, tx pathid: 0x0

Refresh Epoch 2

5 4

10.1.5.5 from 10.1.5.5 (10.1.5.5)

Origin IGP, localpref 100, valid, external

rx pathid: 0, tx pathid: 0

결국 R1에서는 두 가지 최상의 경로 변경이 있었습니다. 테이블 버전이 2로 충돌했습니다.

첫째, 피어 10.1.3.4이 R1에서 다운되었습니다. R5에서 받은 경로로 가장 좋은 경로가 변경되었습니다. 테이블 버전이 29의 다음 사용 가능한 번호로 증가했습니다. 접두사 테이블 버전도 29로 충돌했습니다. RIB가 이 새로운 최상의 경로로 업데이트되었습니다. RIB의 테이블 버전이 29로 증가했습니다. 그런 다음 R1은 새로운 최적 경로를 위해 BGP 피어 10.1.2에 업데이트를 전송하고 피어 테이블 버전을 29로 업데이트했습니다. 다른 모든 피어도 업데이트되었습니다.

둘째, 피어 10.1.3.4가 다시 작동하면 R1은 R4에서 10.100.1.1/32에 대한 업데이트를 수신하고 최상의 경로를 다시 계산했습니다. R4의 경로가 새로운 최적 경로였으며 테이블 버전 및 접두사 테이블 버전이 30의 다음 사용 가능한 수로 충돌했습니다. 다시 RIB 및 다른 모든 BGP 피어가 업데이트되고 RIB 및 피어 테이블 버전이 30으로 업데이트되었습니다. 테이블 버전은 여기에서 한 번에 한 번씩만 눌렀습니다. 그러나 다른 BGP 접두사가 다른 변경 사항을 거친 경우 이 표 버전은 사용 가능한 다음 번호로 매번 이동하므로 두 개 이상 충돌합니다.

BGP 피어에 대해 clear ip bgp out 명령을 입력하면 해당 라우터는 해당 피어에 BGP 접두사를 재전송합니다. 따라서 수신 BGP 피어의 최적 경로가 변경되지 않습니다. 따라서 해당 피어의 테이블 버전은 변경되지 않습니다.

수신 라우터에서 디버그 ip bgp 업데이트를 실행하면 다음을 확인할 수 있습니다.

BGP(0): 10.1.3.4 rcvd UPDATE w/ attr: nexthop 10.1.3.4, origin i,

metric 0, merged path 4, AS_PATH

BGP(0): 10.1.3.4 rcvd 10.100.1.1/32...duplicate ignored

수신된 업데이트가 중복으로 인식되므로 무시되고 최상의 경로 변경이 발생하지 않습니다.

BGP 테이블에 접두사가 100.000인 라우터가 있고 BGP 테이블 버전이 분당 100.000씩 증가한다고 가정합니다. 이는 예상되지 않으며 동작을 검사해야 합니다. 이러한 동작의 한 가지 이유는 BGP 접두사의 next-hop이 모든 접두사에 대해 매분마다 플래핑되고 있기 때문일 수 있습니다.

BGP Table Version이 빠르게 증가하면 프로세스 BGP 라우터 및 BGP IO가 사용 중이어서 라우터 CPU가 일정하게 증가할 수 있습니다.