목차

소개

배경 정보

토폴로지

SRv6 컨피그레이션

라우터 R1 컨피그레이션

라우터 R2 컨피그레이션

라우터 R3 컨피그레이션

SRv6 SID의 시그널링 흐름

1. SRv6의 캡슐화를 활성화하기 전의 상태

2. 캡슐화 SRv6 활성화

3. R3 BGP 업데이트를 수신하여 BGP IPv6 유니캐스트 테이블에 설치합니다

4. R3 RIB와 FIB를 설치합니다.

소개

이 문서에서는 BGP IPv6 유니캐스트 세션에 SRv6(Encapsulation Segment Routing over IPv6)를 적용할 때의 컨트롤 플레인 흐름에 대해 설명합니다.

배경 정보

자세한 내용은 Cisco ASR 9000 Series 라우터의 세그먼트 라우팅 컨피그레이션 가이드, IOS XR 릴리스 24.1.x, 24.2.x, 24.3.x, 24.4.x를 참조하십시오.

토폴로지

이 문서에 사용된 토폴로지는 그림 1에 나와 있습니다. SRv6 도메인은 3개의 라우터로 구성되며, 모두 Cisco IOS-XR에서 작동합니다. SRv6 언더레이 인프라는 uSID SRv6와 함께 IS-IS를 사용하여 구현됩니다. 라우터 R1과 R3 간에 BGP IPv6 유니캐스트 피어링이 설정되는 반면 라우터 R2는 BGP에 참여하지 않으며 이 컨피그레이션에서 P-라우터로 작동합니다. R1 및 R3 모두의 루프백 6 인터페이스는 두 BGP IPv6 유니캐스트 피어 간에 교환해야 하는 IPv6 접두사를 나타냅니다.

그림 1. SRv6를 통한 BGP ipv6 유니캐스트 토폴로지 다이어그램

SRv6 컨피그레이션

이 섹션에서는 세 SRv6 라우터 모두의 컨피그레이션을 보여줍니다. 라우터 R2는 BGP에 참여하지 않으므로 SRv6 컨피그레이션만 포함합니다.

라우터 R1 컨피그레이션

라우터 R1은 fc00:bb00:1::/48의 로케이터를 사용하는 SRv6 도메인의 일부입니다. 로컬 접두사 fc00:aa00:1::1/128을 시작하는 BGP IPv6 유니캐스트 라우터로도 작동합니다. 또한 SRv6 인프라를 통해 라우터 R3와 BGP IPv6 유니캐스트 피어링을 설정합니다. 굵게 강조 표시된 컨피그레이션은 이 문서에 설명된 제어 흐름을 디버깅하기 위한 시작점 역할을 하며 전체에서 사용되는 유일한 트리거입니다.

interface Loopback0

ipv4 address 10.0.0.1 255.255.255.255

ipv6 address fc00:bb00:1::1/128

!

interface Loopback6

ipv6 address fc00:aa00:1::1/128

!

interface TenGigE0/0/0/8

ipv6 enable

!

router isis 1

is-type level-1

net 49.0000.0000.0001.00

address-family ipv6 unicast

metric-style wide

segment-routing srv6

locator MAIN

!

!

!

interface TenGigE0/0/0/8

point-to-point

address-family ipv6 unicast

!

!

!

router bgp 1

bgp router-id 10.0.0.1

segment-routing srv6

locator MAIN

!

address-family ipv6 unicast

segment-routing srv6

locator MAIN

alloc mode per-vrf

!

network fc00:aa00:1::1/128

!

neighbor fc00:bb00:3::1

remote-as 1

update-source Loopback0

address-family ipv6 unicast

encapsulation-type srv6

!

!

segment-routing

srv6

encapsulation

source-address fc00:bb00:1::1

!

locators

locator MAIN

micro-segment behavior unode psp-usd

prefix fc00:bb00:1::/48

!

라우터 R2 컨피그레이션

라우터 R2는 SRv6 도메인의 일부이며 로케이터가 fc00:bb00:2::/48입니다. BGP에는 참여하지 않으며 이 토폴로지 내에서 P-라우터로 작동합니다.

interface Loopback0

ipv4 address 10.0.0.2 255.255.255.255

ipv6 address fc00:bb00:2::1/128

!

interface TenGigE0/0/0/0

description TO R1

ipv6 enable

!

interface TenGigE0/0/0/1

description TO R2

ipv6 enable

!

router isis 1

is-type level-1

net 49.0000.0000.0002.00

address-family ipv6 unicast

metric-style wide

segment-routing srv6

locator MAIN

!

!

!

interface TenGigE0/0/0/0

point-to-point

address-family ipv6 unicast

!

!

interface TenGigE0/0/0/1

point-to-point

address-family ipv6 unicast

!

!

!

segment-routing

srv6

encapsulation

source-address fc00:bb00:2::1

!

locators

locator MAIN

micro-segment behavior unode psp-usd

prefix fc00:bb00:2::/48

!

라우터 R3 컨피그레이션

라우터 R3은 fc00:bb00:3::/48의 로케이터를 사용하는 SRv6 도메인의 일부입니다. 라우터 R1과 BGP IPv6 유니캐스트 피어링을 가지며, 둘 다 루프백 6 인터페이스의 IPv6 접두사를 교환합니다.

interface Loopback0

ipv4 address 10.0.0.3 255.255.255.255

ipv6 address fc00:bb00:3::1/128

!

interface Loopback6

ipv6 address fc00:aa00:3::3/128

!

interface TenGigE0/0/0/1

description TO R2

ipv6 enable

!

router isis 1

is-type level-1

net 49.0000.0000.0003.00

address-family ipv6 unicast

metric-style wide

segment-routing srv6

locator MAIN

!

!

!

interface TenGigE0/0/0/1

point-to-point

address-family ipv6 unicast

!

!

!

router bgp 1

bgp router-id 10.0.0.3

segment-routing srv6

locator MAIN

!

address-family ipv6 unicast

segment-routing srv6

locator MAIN

alloc mode per-vrf

!

network fc00:aa00:3::3/128

!

neighbor fc00:bb00:1::1

remote-as 1

update-source Loopback0

address-family ipv6 unicast

encapsulation-type srv6

!

!

segment-routing

srv6

encapsulation

source-address fc00:bb00:3::1

!

locators

locator MAIN

micro-segment behavior unode psp-usd

prefix fc00:bb00:3::/48

!

!

!

!

SRv6 SID의 시그널링 흐름

언더레이 SRv6 인프라에서 각 라우터는 토폴로지 전체에 링크 상태 정보를 제공하며, 각 라우터는 링크 상태 ISIS 프로토콜을 통해 SRv6 로케이터를 광고합니다. R1의 ISIS 데이터베이스는 SRv6 도메인에 참여하는 모든 라우터의 로케이터를 표시합니다.

RP/0/RSP0/CPU0:R1#show isis database verbose R1 | include SRv6 Locator

SRv6 Locator:   MT (IPv6 Unicast) fc00:bb00:1::/48 D:0 Metric: 1 Algorithm: 0

RP/0/RSP0/CPU0:R1#show isis database verbose R2 | include SRv6 Locator

SRv6 Locator:   MT (IPv6 Unicast) fc00:bb00:2::/48 D:0 Metric: 0 Algorithm: 0

RP/0/RSP0/CPU0:R1#show isis database verbose R3 | include SRv6 Locator

SRv6 Locator:   MT (IPv6 Unicast) fc00:bb00:3::/48 D:0 Metric: 1 Algorithm: 0

이 SRv6 구현에서는 GRT(Global Routing Table) 트래픽 오버레이를 지원합니다. 전역 BGP IPv6 유니캐스트 오버레이 서비스가 R1 및 R3 모두에서 활성화된 경우 각 라우터는 새 서비스 SID를 생성합니다. 이 서비스 SID는 기본 VRF와 연결되어 있으며 이 시나리오에서 엔드포인트 동작 uDT6을 사용합니다. 두 BGP 피어 간에 SRv6 전달을 활성화하려면 BGP IPv6 유니캐스트 피어 간에 이 서비스 SID를 교환해야 합니다. 다음 섹션에서는 트리거 실행(캡슐화 유형 srv6 활성화)부터 라우터 R3에서 SRv6 전달이 프로그래밍되는 지점까지 BGP 신호 흐름의 단계를 간략하게 설명합니다.

1. SRv6의 캡슐화를 활성화하기 전의 상태

BGP 피어에 대한 IPv6 유니캐스트 SAFI에서 SRv6 캡슐화를 활성화하기 전에 라우터 R1에 서비스 SID가 할당된 BGP IPv6 접두사가 있어야 합니다. R1의 IPv6 유니캐스트 전역 SAFI에서 'segment-routing srv6'이 활성화되어 있을 때 발생합니다. 출력에 로컬 SID fc00:bb00:1:e002:: BGP ipv6 유니캐스트 아래의 모든 접두사에 할당됩니다.

RP/0/RSP0/CPU0:R1#show bgp ipv6 unicast local-sids

BGP router identifier 10.0.0.1, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0800000   RD version: 7

BGP table nexthop route policy:

BGP main routing table version 7

BGP NSR Initial initsync version 7 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Local Sid                                   Alloc mode   Locator

*> fc00:aa00:1::1/128 fc00:bb00:1:e002::                          per-vrf       MAIN

*>ifc00:aa00:3::3/128 NO SRv6 Sid                                 -            -

Processed 2 prefixes, 2 paths

이 서비스 SID는 R1의 sid_mgr 프로세스에 의해 로컬로 프로그래밍되며, 이는 기본 vrf와 연결되어 있고 bgp가 소유한 uDT6로서의 엔드포인트 동작을 가지고 있습니다. 이는 R1이 목적지 주소의 패킷을 수신할 때마다 서비스 SID fc00:bb00:1:e002:: 그리고 마지막 세그먼트입니다. R1은 헤더를 역캡슐화하고 역캡슐화된 패킷을 IPv6 기본 vrf 테이블의 FIB 조회에 제출해야 합니다. 이는 모든 SRv6 엔드포인트 동작을 나열하는 RFC8986에 따른 것입니다. sid_mgr이 서비스 SID fc00:bb00:1:e002::를 생성하는 것을 표시하는 출력을 확인합니다. 이 정보를 RIB와 FIB에 전달합니다.

RP/0/RSP0/CPU0:R1#show segment-routing srv6 sid all

*** Locator: 'MAIN' ***

SID                         Behavior          Context                           Owner               State  RW

--------------------------  ----------------  --------------------------------  ------------------  -----  --

fc00:bb00:1::               uN (PSP/USD)      'default':1                       sidmgr              InUse  Y

fc00:bb00:1:e001::          uA (PSP/USD)      [Te0/0/0/8, Link-Local]:0         isis-1              InUse  Y

fc00:bb00:1:e002::          uDT6              'default'                         bgp-1               InUse  Y

RP/0/RSP0/CPU0:R1#show segment-routing srv6 sid fc00:bb00:1:e002:: internal

*** Locator: 'MAIN' ***

SID                         Behavior          Context                           Owner               State  RW

--------------------------  ----------------  --------------------------------  ------------------  -----  --

fc00:bb00:1:e002::          uDT6              'default'                         bgp-1               InUse  Y

SID Function: 0xe002

SID context: { table-id=0xe0800000 ('default':IPv6/Unicast) }

App data: [0000000000000000]

Locator: 'MAIN'

Allocation type: Dynamic

Owner List:

1) Name: bgp-1, Client-ID: 32, Proto-ID: 8, Node-ID: 0, Locator-ID: 5 ()

Refcount: 1

Flags: 0x0 ()

Chkpt Obj ID: 0x2f60

TI Object:

Type: Entry

Ptr: 0x140160285526000, Producer ID: 0

Flags:

Generic:  0x0 ()

Specific: 0x0 ()

Modified: Fri Jun 27 16:27:05 EST 2025 (2d01h ago)

Created: Jun 27 16:17:40.796 (2d01h ago)

Event history:

SIDMGR-OPCODE-EVENT-CLASS

Total entries : 4

+---------------------------------+----------------------+------+

| Event                           |     Time Stamp       | S, M |

+---------------------------------+----------------------+------+

| object create                   | Jun 27 16:17:40.864  | 1, 0 |

| object delete                   | Jun 27 16:27:04.320  | 1, 1 |

| object modify                   | Jun 27 16:27:04.320  | 0, 1 |

| object refcount decrement       | Jun 27 16:27:04.320  | 0, 1 |

+---------------------------------+----------------------+------+

RP/0/RSP0/CPU0:R1#show route ipv6 fc00:bb00:1:e002:: detail

Routing entry for fc00:bb00:1:e002::/64

Known via "local-srv6 bgp-1", distance 0, metric 0, SRv6 Endpoint uDT6, SRv6 Format f3216

Installed Jun 27 16:27:06.040 for 2d01h

Routing Descriptor Blocks

directly connected

Route metric is 0

Label: None

Tunnel ID: None

Binding Label: None

Extended communities count: 0

NHID: 0x0 (Ref: 0)

Route version is 0x15 (21)

No local label

IP Precedence: Not Set

QoS Group ID: Not Set

Flow-tag: Not Set

Fwd-class: Not Set

Route Priority: RIB_PRIORITY_LOCAL (3) SVD Type RIB_SVD_TYPE_LOCAL

Download Priority 0, Download Version 3140327

No advertising protos.

RP/0/RSP0/CPU0:R1#show cef ipv6 fc00:bb00:1:e002::

fc00:bb00:1:e002::/64, version 3140327, SRv6 Endpoint uDT6, internal 0x1000001 0x0 (ptr 0x7bb98f54) [1], 0x400 (0x7ba7cfa0), 0x0 (0x7a90d290)

Updated Jun 27 16:27:06.043

Prefix Len 64, traffic index 0, precedence n/a, priority 0

gateway array (0x78e92608) reference count 3, flags 0x0, source rib (7), 0 backups

[4 type 3 flags 0x8401 (0x78f35598) ext 0x0 (0x0)]

LW-LDI[type=3, refc=1, ptr=0x7ba7cfa0, sh-ldi=0x78f35598]

gateway array update type-time 1 Jun 26 15:54:48.345

LDI Update time Jun 26 15:54:48.349

LW-LDI-TS Jun 27 16:17:42.533

Accounting: Disabled

via ::/128, 0 dependencies, weight 0, class 0 [flags 0x0]

path-idx 0 NHID 0x0 [0x781b61e8 0x0]

next hop ::/128

Load distribution: 0 (refcount 4)

Hash  OK  Interface                 Address

0     Y   recursive                 Lookup in table

R1은 BGP ipv6 유니캐스트 피어 아래에서 SRv6 캡슐화를 활성화하지 않았으므로, R1은 R1이 로컬로 로컬 SID를 할당했더라도 BGP 업데이트에서 SRv6 TLV가 없는 R3에 접두사를 알립니다.

RP/0/RSP0/CPU0:R1#show bgp ipv6 unicast

BGP router identifier 10.0.0.1, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0800000   RD version: 7

BGP table nexthop route policy:

BGP main routing table version 7

BGP NSR Initial initsync version 7 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop            Metric LocPrf Weight Path

*> fc00:aa00:1::1/128 ::                       0         32768 i

*>ifc00:aa00:3::3/128 fc00:bb00:3::1           0    100      0 i

Processed 2 prefixes, 2 paths

RP/0/RSP0/CPU0:R1#show bgp ipv6 unicast advertised neighbor fc00:bb00:3::1

fc00:aa00:1::1/128 is advertised to fc00:bb00:3::1

Path info:

neighbor: Local           neighbor router id: 10.0.0.1

valid  local  best

Received Path ID 0, Local Path ID 1, version 4

Attributes after inbound policy was applied:

next hop: ::

MET ORG AS

origin: IGP  metric: 0

aspath:

Attributes after outbound policy was applied:

next hop: fc00:bb00:1::1

MET ORG AS

origin: IGP  metric: 0

aspath:

라우터 R3은 SID 없이 라우터 R1에서 업데이트를 수신합니다. R3은 SRv6 헤더 없이 R1에서 수신한 접두사를 RIB 및 FIB 테이블에 설치합니다.

RP/0/RSP0/CPU0:R3#show bgp ipv6 unicast received-sids

BGP router identifier 10.0.0.3, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0800000   RD version: 44

BGP table nexthop route policy:

BGP main routing table version 44

BGP NSR Initial initsync version 6 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop                            Received Sid

*>ifc00:aa00:1::1/128 fc00:bb00:1::1                      NO SRv6 Sid

*> fc00:aa00:3::3/128 ::                                  NO SRv6 Sid

Processed 2 prefixes, 2 paths

RP/0/RSP0/CPU0:R3#show route ipv6 unicast fc00:aa00:1::1/128 detail

Routing entry for fc00:aa00:1::1/128

Known via "bgp 1", distance 200, metric 0, type internal

Installed Jun  8 17:34:24.126 for 00:12:38

Routing Descriptor Blocks

fc00:bb00:1::1, from fc00:bb00:1::1

Route metric is 0

Label: None

Tunnel ID: None

Binding Label: None

Extended communities count: 0

NHID: 0x0 (Ref: 0)

Path Grouping ID: 1

Route version is 0x1d (29)

No local label

IP Precedence: Not Set

QoS Group ID: Not Set

Flow-tag: Not Set

Fwd-class: Not Set

Route Priority: RIB_PRIORITY_RECURSIVE (12) SVD Type RIB_SVD_TYPE_LOCAL

Download Priority 4, Download Version 162

No advertising protos.

RP/0/RSP0/CPU0:R3#show cef ipv6 fc00:aa00:1::1/128

fc00:aa00:1::1/128, version 162, internal 0x5000001 0x40 (ptr 0x7941f0f4) [1], 0x0 (0x0), 0x0 (0x0)

Updated Jun  8 17:34:24.128

Prefix Len 128, traffic index 0, precedence n/a, priority 4

gateway array (0x78eac518) reference count 1, flags 0x2010, source rib (7), 0 backups

[1 type 3 flags 0x48441 (0x78f4f538) ext 0x0 (0x0)]

LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]

gateway array update type-time 1 Jun  8 17:34:24.129

LDI Update time Jun  8 17:34:24.129

Level 1 - Load distribution: 0

[0] via fc00:bb00:1::1/128, recursive

Accounting: Disabled

via fc00:bb00:1::1/128, 5 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0x7941edb4 0x0]

next hop fc00:bb00:1::1/128 via fc00:bb00:1::/48

Load distribution: 0 (refcount 1)

Hash  OK  Interface                 Address

0     Y   TenGigE0/0/0/1            remote

2. 캡슐화 SRv6 활성화

SRv6 캡슐화를 활성화하면 R1이 특성 유형 40의 피어로 BGP 업데이트 메시지를 보냅니다. 이는 세그먼트 라우팅에서 특정 SID(Segment Routing Identifier)로 BGP 접두사를 광고하는 데 사용됩니다. 라우터 R1은 IPv6 접두사 fc00:bb00:3::1(1단계)에 대한 UPDATE를 관련 SID fc00:bb00:1:e002::와 함께 R3로 전송합니다. 업데이트를 수신하면 라우터 R3은 BGP IPv6 유니캐스트 테이블을 업데이트하고(2단계), 그 후 RIB 및 FIB 테이블을 업데이트합니다(3단계). 그림 2는 BGP 신호 흐름과 해당 단계를 보여줍니다.

그림 2. 캡슐화 srv6 활성화 후의 BGP 신호 흐름

출력은 R3 피어에서 SRv6 캡슐화를 활성화한 직후 BGP 디버그 로그를 표시하여 R1이 R3에 BGP 업데이트 메시지를 전송함을 보여줍니다.

router bgp 1

neighbor fc00:bb00:3::1

address-family ipv6 unicast

encapsulation-type srv6

!

!

!

end

RP/0/RSP0/CPU0:R1(config)#commit

bgp[1100]: [default-upd] (ip6u): Added reference to table TBL:default (2/1) refcount 9

bgp[1100]: [default-upd] (ip6u): Created update group for table TBL:default (2/1), index 0.3 neighbor fc00:bb00:3::1

bgp[1100]: [default-upd] (ip6u): Removed neighbor fc00:bb00:3::1 from update group 0.2 for IPv6 Unicast

bgp[1100]: [default-upd] (ip6u): Removing neighbor fc00:bb00:3::1 from update filter-group 0.2 in IPv6 Unicast sub-group 0.2 in updgrp 0.2

bgp[1100]: [default-upd]: Enqueue Wdw: Nbr:fc00:bb00:3::1(5) Wdw:0 Del:0 Pending:0 RefreshPending:0

bgp[1100]: [default-upd]: Deleting filter-group 0.2 in TBL:default (2/1) refcount 2

bgp[1100]: [default-upd] (ip6u): Deleted update group 0.2

bgp[1100]: [default-upd] (ip6u): Added reference to table TBL:default (2/1) refcount 10

bgp[1100]: [default-upd]: Compute RT set for vrf default neighbor fc00:bb00:3::1 from old filter-group 0.2 rtset 0in subgrp 0.2

bgp[1100]: [default-upd]: Allocating filter-group 0.3in TBL:default (2/1)

bgp[1100]: [default-upd] (ip6u): Added reference to table TBL:default (2/1) refcount 11

bgp[1100]: [default-upd] (ip6u): Adding vrf default neighbor fc00:bb00:3::1 to new filter-group 0.3 in IPv6 Unicast sub-group 0.1 rtset size 0 in updgrp 0.3

bgp[1100]: [default-upd] (ip6u): Added vrf default neighbor fc00:bb00:3::1 to update filter-group 0.3 in IPv6 Unicast sub-group 0.1

bgp[1100]: [default-upd] (ip6u): Added neighbor fc00:bb00:3::1 to update sub-group 0.1 in IPv6 Unicast update-group 0.3 bgp[1100]: [default-upd] (ip6u): Added vrf default neighbor fc00:bb00:3::1 to update group 0.3 for IPv6 Unicast bgp[1100]: [default-upd] (ip6u): Removed reference to Table TBL:default (2/1) refcount 10

bgp[1100]: [default-upd] (ip6u): Started updgrp timer for updgrp 0.3:: delay=0.010, delaytype=0

bgp[1100]: [default-upd] (ip6u): Removed reference to Table TBL:default (2/1) refcount 9

bgp[1100]: [default-upd] (ip6u): Starting updgen walk for updgrp 0.3:: targetver=27:  tblver=27, labelver=27, minfwdver=27, ackdfwdver=27, standbyver=0

bgp[1100]: [default-upd] (ip6u): Computing updates for update sub-group 0.1 (Regular)

bgp[1100]: [default-upd] (ip6u): bgp_srv6_execute_sid_alloc_mode_policy: Use default SRv6 alloc mode per-vrf as policy NOT in use/configured for net  and table TBL:default (2/1)

bgp[1100]: [default-upd]: table-attr walk for table TBL:default (2/1), resume version 0, subgrp version 0, target version 27

bgp[1100]: [default-upd] (ip6u): process UPDATE for: tbl=TBL:default (2/1), afi=5: ug=0.3, (Regular), pelem (Regular), sg=0.1, ugfl=0x00104183: bgpctxfl=0x00, tblctxfl=0x10000021, ltblctxfl=0x10000021, sendlab=0: net=fc00:aa00:1::1/128, nver=24: PELEM=0x7f4566d78f60 (lpathid=1, ver=24, fl=0x00000001): PATH=0x7f4566ee3eb8 (::/128,::,0, 0x20000000010401a3)::: allowbe=0, isbe=0, allowspurwdr=0, pelem-send=1, pelem-wdr=0, netExtflag=21000000

bgp[1100]: [default-upd] (ip6u): Ran 'internal' policy '(null)', result 'TRUE', ptr 0x7f4584005f30, use (nil)

bgp[1100]: [default-upd] (ip6u):     : tbl=TBL:default (2/1), afi=5: ug=0.3, sg=0.1, ugfl=0x00104183: net=fc00:aa00:1::1/128, PELEM=0x7f4566d78f60(lpathid=1, fl=0x00000001), PATH=0x7f4566ee3eb8(::/128,::,0, 0x20000000010401a3), reflected=0, bmsgfl=0x00000000, wdr=0::: netlab=0/0, pathlab=1048577, updlab=

bgp[1100]: [default-upd] (ip6u):     <NH&LABEL-SEL>: tbl=TBL:default (2/1), afi=5: ug=0.3, sg=0.1, ugfl=0x00104183+0x00001022: net=fc00:aa00:1::1/128, netlab=0/0, PELEM=0x7f4566d78f60(lpathid=1, fl=0x00000001), PATH=0x7f4566ee3eb8(::/128,::,0, 0x20000000010401a3), pathlab=1048577, reflected=0, bmsgfl=0x00000000::: pelemwdr=0, isnhself=1, enforcenhself=0, nhselectdone=0, nhcfgeval=1, updnh=0x00000000, nhlen=16, nhif=0x00000000, nh3rdp=0

bgp[1100]: [default-upd] (ip6u):     <nh&label-sel>::: labselectdo=1, labselectdone=0, updlab=1048577(0x00100001)

bgp[1100]: [default-upd]: Comm-lib: Assigned ID (0x1d000008) for elem-type PREFIX_SID SRV6_L3SVC

bgp[1100]: [default-upd]: Comm-lib: Assigned ID (0x900000c) for elem-type Attribute

bgp[1100]: [default-upd] (ip6u): Permit UPDATE to filter-group 0.3 (Regular, pelem Regular) for fc00:aa00:1::1/128 (changedfl=0x0/0x0), path

bgp[1100]: [default-upd] (ip6u): Sending UPDATE message(0x0x7f4589fd4ba4) to sub-group 0.1 (Regular, pelem Regular) for fc00:aa00:1::1/128 (changedfl=0x0/0x0) -  creating new message with bmsgflags=0x00000000, attributes: nexthop ::, originator 0.0.0.0

bgp[1100]: [default-upd] (ip6u): origin i, path , metric 0, localpref 100, Prefix-SID attribute 0x05002200 0x01001e00 0xfc00bb00 0x0001e002 0x00000000 0x00000000 0x00003e00 0x01000620 0x10100000 0x0000

bgp[1100]: [default-upd] (ip6u): Created msg elem 0x0x7f4589e3afc8 (pointing to message 0x0x7f4589fd4ba4), for filtergroup 0.3

bgp[1100]: [default-upd] (ip6u): process UPDATE for: tbl=TBL:default (2/1), afi=5: ug=0.3, (Regular), pelem (Regular), sg=0.1, ugfl=0x00104183: bgpctxfl=0x00, tblctxfl=0x10000021, ltblctxfl=0x10000021, sendlab=0: net=fc00:aa00:3::3/128, nver=27: PELEM=0x7f4566d78d30 (lpathid=1, ver=27, fl=0x00000001): PATH=0x7f4566ee3d98 (fc00:bb00:3::1/128,fc00:bb00:3::1,0, 0x2000000001060005)::: allowbe=0, isbe=0, allowspurwdr=0, pelem-send=1, pelem-wdr=0, netExtflag=20000000

bgp[1100]: [default-upd] (ip6u): No unreachable (not advertising to sender: fc00:bb00:3::1) sent to sub-group 0.1 (Regular) with fc00:aa00:3::3/128 - already withdrawn

bgp[1100]: [default-upd] (ip6u): Generated 1 updates for update sub-group 0.1 (average size = 126 bytes, maximum size = 126 bytes)

bgp[1100]: [default-upd] (ip6u): Updates replicated to neighbor fc00:bb00:3::1

bgp[1100]: [default-iowt]: fc00:bb00:3::1 send UPDATE length (incl. header) 126

bgp[1100]: [default-iowt]: Send message dump for fc00:bb00:3::1:

bgp[1100]: [default-iowt]: ffff ffff ffff ffff ffff ffff ffff ffff

bgp[1100]: [default-iowt]: 007e 0200 0000 6790 0e00 2600 0201 10fc

bgp[1100]: [default-iowt]: 00bb 0000 0100 0000 0000 0000 0000 0100

bgp[1100]: [default-iowt]: 80fc 00aa 0000 0100 0000 0000 0000 0000

bgp[1100]: [default-iowt]: 0140 0101 0040 0200 8004 0400 0000 0040

bgp[1100]: [default-iowt]: 0504 0000 0064 c028 2505 0022 0001 001e

bgp[1100]: [default-iowt]: 00fc 00bb 0000 01e0 0200 0000 0000 0000

bgp[1100]: [default-iowt]: 0000 003e 0001 0006 2010 1000 0000

bgp[1100]: [default-iowt]: bgp_io_nbr_add_version: New ver: nbr=fc00:bb00:3::1, io_wr_txsn=58992, acksn=58866: ver=27 <58992>, osver=2

bgp[1100]: [default-iowt]: bgp_io_nbr_derive_acked_version: nbr=fc00:bb00:3::1, io_wr_txsn=58992, acksn=58866, osver=2

bgp[1100]: [default-iowt]: fc00:bb00:3::1 (afi:4) advancedpeer_acked_version to 10refresh peer acked version to 0

bgp[1100]: [default-iowt]: fc00:bb00:3::1 (afi:5) received ack for version 27

bgp[1100]: [default-iowt]: bgp_write_list_tonet: IO_SENDMSG: nbr=fc00:bb00:3::1, fd=530: total=1, send-attempt=1 (size 126), sent-successful=1: res=0  allmsg_adv_count = 1 msg 0x7f4589fd4ba4 bmsg_nbr_count  0

bgp[1100]: [default-iowt] (ip6u): Deleting msg elem 0x0x7f4589e3afc8 (message 0x0x7f4589fd4ba4), for filtergroup 0.3

bgp[1100]: [default-iowt] (ip6u): Deleting message 0x0x7f4589fd4ba4, from subgroup 0.1

bgp[1100]: [default-iowt]: Keepalive timer started for fc00:bb00:3::1(loc 10): last 529293 this 529308

bgp[1100]: [default-iowt]: bgp write for afi 4 for neighbor fc00:bb00:3::1 (fd 530)

bgp[1100]: [default-iowt]: bgp write for afi 5 for neighbor fc00:bb00:3::1 (fd 530)

bgp[1100]: [default-iowt]: bgp_io_nbr_derive_acked_version: nbr=fc00:bb00:3::1, io_wr_txsn=58992, acksn=58866, osver=1

bgp[1100]: [default-iowt]: fc00:bb00:3::1 (afi:4) advancedpeer_acked_version to 10refresh peer acked version to 0

bgp[1100]: [default-iowt]: fc00:bb00:3::1 (afi:5) advancedpeer_acked_version to 27refresh peer acked version to 0

bgp[1100]: [default-iowt]: bgp_io_write_nbr_ver_timer_process: nbr_ver_timer handler: Walk complete: nbrcount=1, synctrigger=1

출력에 R1의 BGP 추적 항목이 표시됩니다.

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:7799: trying to find update group for nbr fc00:bb00:3::1, afi IPv6 Unicast

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:6752: created update group for table TBL:default (2/1), index 0.3, nbr fc00:bb00:3::1, flags 0x104183

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:2039: Filter-group op (Filter-group Rm Nbr) Tbl/Nbr(Afi:IPv6 Unicast:Nbr:fc00:bb00:3::1) fgrp idx 0.2 subgrp idx 0.2 updgrp 0.2 rtset 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:1501: Filter-group op (Delete) Tbl/Nbr(TBL:default (2/1)) fgrp idx 0.2 subgrp idx 0.2 updgrp 0.0 rtset 2

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:6798: Delete update group for table TBL:default (2/1), index 0.2

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:2181: Filter-group op (Filter-group Compute Nbr RT) Tbl/Nbr(fc00:bb00:3::1) fgrp idx 0.2 subgrp idx 0.2 updgrp 0.3 rtset 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:1411: Filter-group op (Alloc) Tbl/Nbr(TBL:default (2/1)) fgrp idx 0.3 subgrp idx 0.1 updgrp 0.0 rtset 3

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:2725: Filter-group op (Filter-group Add Nbr new) Tbl/Nbr(Afi:IPv6 Unicast:Vrf:default:Nbr:fc00:bb00:3::1) fgrp idx 0.3 subgrp idx 0.1 updgrp 0.3 rtset 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:2751: created filtergrp 3 for vrf default nbr fc00:bb00:3::1, afi 5, subgrp version 0, refresh 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:4473: Created subgrp:1(0x840070a0) refr:0 for nbr fc00:bb00:3::1 (vrf default), afi 5  version 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:6935: added vrf default nbr fc00:bb00:3::1 to update group 0.3, afi IPv6 Unicast, flags 0x104183

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:3088: TBL:default (2/1) free subgrp SG:2 subgrp:0x84007440

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:1316: Update gen Start bit operation Filtergrp delete-timer fgrp idx/size 2

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:11342: Updgen - TBL:default (2/1) UG: 0.3 SG: 0.1 msg: 1

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:11344: Updgen - pfx: [tot]  adv/wdn/sup/skp/be[2] 1/0/0/1/0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:11351: Updgen - fpx: wdn/skp[0/0] ver: 0 -> 27 res ver: 0 -> 27

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:4009: Updgen - UG: 3 FG: 3 afi:5 msg: 1 ver -> 27

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t32561 [UPD]:4011: pfx: adv/wdn/sup/skp 1/0/0/1

default-bgp/spkr-tr2-common 0/RSP0/CPU0 t32558 [COMMON]:638: vrf default nbr fc00:bb00:3::1, set peer ack version to 27, afi 5, loc 2

default-bgp/spkr-tr2-gen 0/RSP0/CPU0 t32501 [GEN]:617: vrf default nbr 2000:0:0:1::1, old state 1, new state 3, fd type 2, fd 0

디코딩된 BGP UPDATE 메시지는 서비스 SID fc00:bb00:1:e002::를 포함하는 특성 유형 40 및 TLV 유형 5를 보여줍니다.

.

전체 디코딩된 BGP UPDATE 메시지는 다음과 같습니다.

Message #1 - 126 bytes

FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF

00 7E 02 00  00 00 67 90  0E 00 26 00  02 01 10 FC

00 BB 00 00  01 00 00 00  00 00 00 00  00 00 01 00

80 FC 00 AA  00 00 01 00  00 00 00 00  00 00 00 00

01 40 01 01  00 40 02 00  80 04 04 00  00 00 00 40

05 04 00 00  00 64 C0 28  25 05 00 22  00 01 00 1E

00 FC 00 BB  00 00 01 E0  02 00 00 00  00 00 00 00

00 00 00 3E  00 01 00 06  20 10 10 00  00 00

BGP Marker: 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

BGP Length: 0x007E - 126 bytes

BGP Type: 0x02 - UPDATE

UPDATE

UNFEASIBLE ROUTES LENGTH: 0x0000 - 0 bytes

TOTAL PATH ATTRIBUTES LENGTH: 0x0067 - 103 bytes

Attribute

ATTRIBUTE FLAG: 0x90

ATTRIBUTE FLAG binary: 10010000

Bit 0, the Optional bit, is 1 so this is an optional attribute

Bit 1, the Transitive bit, is 0 so this is a non-transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 1 so the length field is 2 bytes

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x0E - 14

ATTRIBUTE LENGTH: 0x0026 - 38 bytes

ATTRIBUTE CONTENT: 0x00020110FC00BB000001000000000000000000010080FC00AA00000100000000000000000001

AFI: 2 (0x0002)

Sub AFI: 1 (0x01)

NEXTHOP Length: 16 (0x10) bytes

NEXTHOP: FC00:BB00:0001:0000:0000:0000:0000:0001

Numb of SNPAs: 0 (0x00)

NLRI Length:  128 bits (0x80)

MP_REACH_NLRI:  FC00:AA00:0001:0000:0000:0000:0000:0001/128 (0xFC00AA00000100000000000000000001)

Attribute

ATTRIBUTE FLAG: 0x40

ATTRIBUTE FLAG binary: 01000000

Bit 0, the Optional bit, is 0 so this is a well-known attribute

Bit 1, the Transitive bit, is 1 so this is a transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 0 so the length field is 1 byte

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x01 - 1

ATTRIBUTE LENGTH: 0x01 - 1 bytes

ATTRIBUTE CONTENT: 0x00 - IGP

Attribute

ATTRIBUTE FLAG: 0x40

ATTRIBUTE FLAG binary: 01000000

Bit 0, the Optional bit, is 0 so this is a well-known attribute

Bit 1, the Transitive bit, is 1 so this is a transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 0 so the length field is 1 byte

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x02 - 2

ATTRIBUTE LENGTH: 0x00 - 0 bytes

Attribute

ATTRIBUTE FLAG: 0x80

ATTRIBUTE FLAG binary: 10000000

Bit 0, the Optional bit, is 1 so this is an optional attribute

Bit 1, the Transitive bit, is 0 so this is a non-transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 0 so the length field is 1 byte

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x04 - 4

ATTRIBUTE LENGTH: 0x04 - 4 bytes

ATTRIBUTE CONTENT: 0x00000000 - 0

Attribute

ATTRIBUTE FLAG: 0x40

ATTRIBUTE FLAG binary: 01000000

Bit 0, the Optional bit, is 0 so this is a well-known attribute

Bit 1, the Transitive bit, is 1 so this is a transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 0 so the length field is 1 byte

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x05 - 5

ATTRIBUTE LENGTH: 0x04 - 4 bytes

ATTRIBUTE CONTENT: 0x00000064 - 100

Attribute

ATTRIBUTE FLAG: 0xC0

ATTRIBUTE FLAG binary: 11000000

Bit 0, the Optional bit, is 1 so this is an optional attribute

Bit 1, the Transitive bit, is 1 so this is a transitive attribute

Bit 2, the Partial bit, is not set

Bit 3, the Extended Length Bit, is 0 so the length field is 1 byte

The lower-order four bits of the Attribute Flag are unused and are set to 0000

ATTRIBUTE TYPE: 0x28 - 40

ATTRIBUTE LENGTH: 0x25 - 37 bytes

ATTRIBUTE CONTENT: 0x0500220001001E00FC00BB000001E002000000000000000000003E00010006201010000000

BGP Prefix-SID:

Type:  5 (0x05) - SRv6 L3 Service

Length:  34 - 0x0022

Value:  0x0001001E00FC00BB000001E002000000000000000000003E00010006201010000000

Reserved:  0x00

Sub Type:  1 (0x01)

Sub Length:  30 (0x001E)

SRv6 SID = FC00:BB00:0001:E002:0000:0000:0000:0000

SID Flags:  0 (0x00)

Endpoint Behavior:  62 (0x003E)

Reserved2 :  0 (0x00)

SRv6 SID Optional Type:  1 (0x01)

SRv6 SID Optional Len:  6 (0x0006)

SRv6 SID Optional Value:  35253360001024 (0x201010000000)

NLRI

NLRI LENGTH: UPDATE Length - 23 - TOTAL PATH ATTRIBUTES LENGTH - UNFEASIBLE ROUTES LENGTH

NLRI LENGTH: 126 - 23 - 103 - 0

NLRI LENGTH: 0 bytes

3. R3 BGP 업데이트를 수신하여 BGP IPv6 유니캐스트 테이블에 설치합니다

라우터 R3은 R1에서 BGP 업데이트를 수신합니다. 이는 R3에서 BGP 디버깅을 활성화하여 관찰할 수 있습니다. 수신된 BGP 업데이트 패킷은 디버그 출력에 표시된 것처럼 R1에서 보낸 패킷과 일치해야 합니다.

bgp[1100]: [default-rtr]: UPDATE from fc00:bb00:1::1 contains nh fc00:bb00:1::1/128, gw_afi 5, flags 0x0, nlri_afi 5

bgp[1100]: [default-rtr]: NH-Validate-Create: addr=fc00:bb00:1::1/128, len=16, nlriafi=5, nbr=fc00:bb00:1::1, gwafi=5, gwlen=32, gwaddrlen=128::: nhout=0x0x7fc41b5fdcb0, validity=1, attrwdrflags=0x00000000

bgp[1100]: [default-rtr]: --bgp4_rcv_attributes--: END: nbr=fc00:bb00:1::1:: msg=0x0x7fc420108bdc/126, updlen=107, attrbl=0x0x7fc420108bf3/103, ipv4reachlen=0, msginpath=0x0x7fc3e2d54830, asloopcheck=1, attrwdrfl=0x00000000:: samecluster=0, local_as_prepended=0, attr_wdr_flags 0x00000000, myascount=0:: myconfedascount=0::rcvdata=0x0x7fc420108c5a/0, errptr=0x0x7fc420108c32/40

bgp[1100]: [default-rtr]: Comm-lib: Assigned ID (0x1d0000ac) for elem-type PREFIX_SID SRV6_L3SVC

bgp[1100]: [default-rtr]: Comm-lib: Assigned ID (0x90000de) for elem-type Attribute

bgp[1100]: [default-rtr] (ip6u): Received UPDATE from fc00:bb00:1::1 with attributes:

bgp[1100]: [default-rtr] (ip6u): nexthop fc00:bb00:1::1/128, origin i, localpref 100, metric 0

bgp[1100]: [default-rtr] (ip6u): Received prefix fc00:aa00:1::1/128 (path ID: none) from fc00:bb00:1::1

bgp[1100]: [default-rtr] (ip6u): Handling OCRIB attrs while relacing path 0x7fc3e1be61d8. Old oc attr (nil), new oc attr (nil)

bgp[1100]: [default-rtr]: bgp_bmp_table_path_update_cb: Operation: 0x1, Inbound Post-Policy Route Mon is not enabled (0) (or) not primary active - return

bgp[1100]: [default-rtr] (ip6u): Done modify path (old tlv size=0 new tlv size=0) for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000000: usedpath=0x0x7fc3e1be61d8(fc00:bb00:1::1/128,fc00:bb00:1::1,0,0x2000000000060005), rcvdpath=0x0x7fc3e2d52b20: needmove=0, pcount=1 IdenticalPath=0, TLVPresent=0

bgp[1100]: [default-rtr]: bgp_set_path_metric:8712 afi 5 net fc00:aa00:1::1/128 path 0x7fc3e1be61d8 nh fc00:bb00:1::1/128 (0x7fc41b5fdcb0) metric 21

bgp[1100]: [default-rtr] (ip6u): bestpath: (full bp 1) start for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000200: lastpath=0x0x7fc3e1be61d8(fc00:bb00:1::1/128,fc00:bb00:1::1,0,0x2000000000060005): PELEM=0x0x7fc3e1a82930(lpathid=1, ver=2000371, fl=0x00000801, path=0x0x7fc3e1be61d8)

bgp[1100]: [default-rtr] (ip6u): bestpath: (full 1) calculated for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000200, pelemver=2000371, pelemfl=0x00000881: oldbest=0x0x7fc3e1be61d8(fc00:bb00:1::1/128,fc00:bb00:1::1,0,0x2000000001060005), newbest=0x0x7fc3e1be61d8(fc00:bb00:1::1/128,fc00:bb00:1::1,0,0x2000000001060005), lastpath=0x0x7fc3e1be61d8(fc00:bb00:1::1/128,fc00:bb00:1::1,0,0x2000000001060005), bumpv=1

bgp[1100]: [default-rtr] (ip6u): bestpath: change for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000200: oldbest=0x0x7fc3e1be61d8: PELEM=0x0x7fc3e1a82930(lpathid=1, ver=2000371, fl=0x00000901, path=0x0x7fc3e1be61d8)

bgp[1100]: [default-rtr] (ip6u): bestpath: update flags for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000200: oldtblattr=0x0x7fc41b5eccc0, oldnh=0x0x7fc41b5fdcb0: PELEM=0x0x7fc3e1a82930(lpathid=1, ver=2000371, fl=0x00000901, path=0x0x7fc3e1be61d8)

bgp[1100]: [default-rtr] (ip6u): bestpath: modified path: net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00003001+0x20000200: PELEM=0x0x7fc3e1a82930(lpathid=1, ver=2000371, fl=0x00001901, path=0x0x7fc3e1be61d8)

bgp[1100]: [default-rtr] (ip6u): bgp_srv6_get_alloc_mode_locator_from_policy: Use default SRv6 alloc mode as policy NOT in use/configured for net  and table TBL:default (2/1)

bgp[1100]: [default-rtr] (ip6u): bestpath: complete for net=fc00:aa00:1::1/128, nver=2000371, nfl=0x00007001+0x20000200: pselect=0x0, bumpv=1(1:1,0,0,0)

bgp[1100]: [default-rtr]: Received UPDATE from fc00:bb00:1::1 (length incl. header = 126)

bgp[1100]: [default-rtr]: Receive message dump for fc00:bb00:1::1:

bgp[1100]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff

bgp[1100]: [default-rtr]: 007e 0200 0000 6790 0e00 2600 0201 10fc

bgp[1100]: [default-rtr]: 00bb 0000 0100 0000 0000 0000 0000 0100

bgp[1100]: [default-rtr]: 80fc 00aa 0000 0100 0000 0000 0000 0000

bgp[1100]: [default-rtr]: 0140 0101 0040 0200 8004 0400 0000 0040

bgp[1100]: [default-rtr]: 0504 0000 0064 c028 2505 0022 0001 001e

bgp[1100]: [default-rtr]: 00fc 00bb 0000 01e0 0200 0000 0000 0000

bgp[1100]: [default-rtr]: 0000 003e 0001 0006 2010 1000 0000

bgp[1100]: [default-rtr]: Enabling read from: fc00:bb00:1::1 readset: 1 msgcount: 0

bgp[1100]: [default-iowt]: bgp write for afi 4 for neighbor fc00:bb00:1::1 (fd 516)

bgp[1100]: [default-iowt]: bgp write for afi 5 for neighbor fc00:bb00:1::1 (fd 516)

bgp[1100]: [default-impt] (ip6u): START import walk from 2000371 to 2000372 skip_walk 1

bgp[1100]: [default-rib2] (ip6u): RIB thread triggered for versioned walk: current version 2000371, acked version 2000371, target version 2000371

bgp[1100]: [default-rib2] (ip6u): RNH rib opaque update for (IPv6 Unicast)

bgp[1100]: [default-rib2] (ip6u): RIB thread triggered for RNH walk for nh table(IPv6 Unicast): current version 2000371, target version 2000372

bgp[1100]: [default-lbl] (ip6u): Label update triggered: current version 2000371, target version 2000372, mpls component is up

bgp[1100]: [default-lbl]: Table: TBL:default (2/1) bgp_label_srv6_sid_config_release: label_sid_need_eval:0 loc trigger:0 srv6 enabled:1 label disabled:1 dual mode:0 label alloc mode:2 sid alloc mode:0 sid release:0

bgp[1100]: [default-lbl]: uSID WLIB allocation is (LIB Default)

bgp[1100]: [default-lbl]: Table: TBL:default (2/1) bgp_label_thread_walk_type: rd:0x7fc3e1efbf30(ALLzero:0:0) rd_flags:0x1 SRv6 eval/en/cnt:1/1/1 locator:MAIN Label up/dis/cnt: 1/1/0 dual mode:0 ibgp_nhself_count:0 policy_set_nhself:0

bgp[1100]: [default-lbl] (ip6u): rd:0x7fc3e1efbf30 sid_walk:1 label_walk:0

bgp[1100]: [default-lbl]: uSID WLIB allocation is (LIB Default)

bgp[1100]: [default-upd] (vpn4u): Started updgrp timer for updgrp 0.1:: delay=0.010, delaytype=0

bgp[1100]: [default-lbl] (ip6u): SRv6 SID process for net: TBL:default (2/1)fc00:aa00:1::1/128(SID N) extflags 20000000 Default locator Y UP/exh/oor/rclm MAIN/N/N/N mode 0 clear handle 0

bgp[1100]: [default-lbl] (ip6u): SRv6 SID process for net: TBL:default (2/1)fc00:aa00:1::1/128 point 1 sid_mode 0 clear_handle 0

bgp[1100]: [default-lbl]: uSID WLIB allocation is (LIB Default)

bgp[1100]: [default-lbl] (ip6u): Label update run from 2000371 target label version 2000372, rib version 2000371, bgp table version 2000372,best-external allocs 0

bgp[1100]: [default-lbl] (ip6u): Wake up rib thread, label version 2000372, rib version 2000371, bgp table version 2000372,

bgp[1100]: [default-rib2] (ip6u): RIB thread triggered for versioned walk: current version 2000371, acked version 2000371, target version 2000372

bgp[1100]: [default-rib2] (ip6u): RNH rib opaque update for (IPv6 Unicast)

bgp[1100]: [default-rib2] (ip6u): RIB thread triggered for RNH walk for nh table(IPv6 Unicast): current version 2000371, target version 2000372

bgp[1100]: [default-rib2] (ip6u): Rib Batch-buf Route ADD: table=TBL:default (2/1), tableid=0xe0800000, net=fc00:aa00:1::1/128, netfl=0x00003001: label=1048577, dist=200, attrkey=0x00000000, pathcount=1: batchres=1, succ=1, send=0 locator prefix No, 0

bgp[1100]: [default-rib2] (ip6u): Revise route batch: installing fc00:aa00:1::1/128 with next hop fc00:bb00:1::1(tbl-id=0xe0800000, ifh=0x0), pathribflags: 0x9800000008, #ext-comms=0, to IP-RIB table[0xe0800000]

bgp[1100]: [default-rib2] (ip6u): [0]: Rib Batch-buf Path ADD: table=TBL:default (2/1), net=fc00:aa00:1::1/128: nh=fc00:bb00:1::1, nhifh=0x00000000, nhtableid=0xe0800000: rlabel=1048577, metric=0, bsid=0, numecomms=0: pelemfl=0x00001001, pathfl=0x2000000001060005,pathribfl=0x9800000008, nhresplenmin=0 (constraint=1):: batchres=1, succ=1, sendbatch=0

bgp[1100]: [default-rib2] (ip6u): Sending convergence info for IPv6 Unicast - not converged, version: 0, last received version 0

bgp[1100]: [default-upd] (ip6u): Started updgrp timer for updgrp 0.1:: delay=0.010, delaytype=0

bgp[1100]: [default-rib2] (ip6u): vrf default: RIB update run to 2000372: installed 0, modified 1, skipped 0, removed 0 IPv6 Unicast prefixes, installed 0 attributes, removed 0 attributes.

bgp[1100]: [default-rib2] (ip6u): RIB thread finished versioned walk: table version 2000372, acked table version 2000372

bgp[1100]: [default-upd] (vpn4u): Starting updgen walk for updgrp 0.1:: targetver=463:  tblver=463, labelver=463, minfwdver=463, ackdfwdver=463, standbyver=0

bgp[1100]: [default-upd] (ip6u): Starting updgen walk for updgrp 0.1:: targetver=2000372:  tblver=2000372, labelver=2000372, minfwdver=2000372, ackdfwdver=2000372, standbyver=0

bgp[1100]: [default-upd] (ip6u): Computing updates for update sub-group 0.1 (Regular)

bgp[1100]: [default-upd] (ip6u): bgp_srv6_execute_sid_alloc_mode_policy: Use default SRv6 alloc mode per-vrf as policy NOT in use/configured for net  and table TBL:default (2/1)

bgp[1100]: [default-upd]: table-attr walk for table TBL:default (2/1), resume version 0, subgrp version 2000371, target version 2000372

bgp[1100]: [default-upd] (ip6u): process UPDATE for: tbl=TBL:default (2/1), afi=5: ug=0.1, (Regular), pelem (Regular), sg=0.1, ugfl=0x00104183: bgpctxfl=0x00, tblctxfl=0x10000021, ltblctxfl=0x10000021, sendlab=0: net=fc00:aa00:1::1/128, nver=2000372: PELEM=0x7fc3e1a82930 (lpathid=1, ver=2000372, fl=0x00001001): PATH=0x7fc3e1be61d8 (fc00:bb00:1::1/128,fc00:bb00:1::1,0, 0x2000000001060005)::: allowbe=0, isbe=0, allowspurwdr=0, pelem-send=1, pelem-wdr=0, netExtflag=20000000

bgp[1100]: [default-upd] (ip6u): No unreachable (not advertising to sender: fc00:bb00:1::1) sent to sub-group 0.1 (Regular) with fc00:aa00:1::1/128 - already withdrawn

라우터 R3은 R1의 업데이트 처리에 해당하는 BGP 추적을 생성하며, 이는 결국 R3가 BGP IPv6 유니캐스트 테이블을 업데이트하는 결과를 낳습니다. BGP 특성 유형 40을 포함하는 이 업데이트에서는 R1의 관련 BGP IPv6 유니캐스트 접두사와 함께 수신된 SID를 설치합니다.

RP/0/RSP0/CPU0:R3#show bgp trace

default-bgp/spkr-tr2-imp 0/RSP0/CPU0 t16100 [IMPORT]:6661: Skipping Import walk: import ver 2000371 -> 2000372: afi 5 forced 0

default-bgp/spkr-tr2-rib 0/RSP0/CPU0 t30391 [RIB]:17177: RIB walk for afi IPv6 Unicast: target version 2000371, min_fwdtable_version 2000371, import_version 2000372,  label_version 2000371, table_version 2000372

default-bgp/spkr-tr2-label 0/RSP0/CPU0 t16061 [LABEL]:8505: label walk afi:IPv6 Unicast, lbl ver 2000371 -> 2000372, be 0, skp 0  upd 0

default-bgp/spkr-tr2-label 0/RSP0/CPU0 t16061 [LABEL]:8510: label walk afi:IPv6 Unicast, lbl ver 2000371 -> 2000372, be 0, skp 0  upd 1

default-bgp/spkr-tr2-rib 0/RSP0/CPU0 t30391 [RIB]:17177: RIB walk for afi IPv6 Unicast: target version 2000372, min_fwdtable_version 2000371, import_version 2000372,  label_version 2000372, table_version 2000372

default-bgp/spkr-tr2-rib 0/RSP0/CPU0 t30391 [RIB]:14681: send converge to RIB, afi IPv6 Unicast, tableid 0xe0800000, converged 0, send_version 0, last_recv_version 0

default-bgp/spkr-tr2-rib 0/RSP0/CPU0 t30391 [RIB]:15892: RIB(default:v6u): ver 2000371 -> 2000372 :pfx inst/upd/skip/rem 0/1/0/0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t16101 [UPD]:11342: Updgen - TBL:default (2/1) UG: 0.1 SG: 0.1 msg: 0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t16101 [UPD]:11344: Updgen - pfx: [tot]  adv/wdn/sup/skp/be[1] 0/0/0/1/0

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t16101 [UPD]:11351: Updgen - fpx: wdn/skp[0/0] ver: 2000371 -> 2000372 res ver: 0 -> 2000372

default-bgp/spkr-tr2-common 0/RSP0/CPU0 t16101 [COMMON]:3628: vrf default nbr fc00:bb00:1::1, set peer ack version to 2000372, afi 5, loc 4

default-bgp/spkr-tr2-upd 0/RSP0/CPU0 t16101 [UPD]:11663: Updgen - Skip EoR for Tbl:(TBL:default (2/1)) subgrp:(1) UG:(1) end 2000372

RP/0/RSP0/CPU0:R3#show bgp ipv6 unicast received-sids

BGP router identifier 10.0.0.3, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0800000   RD version: 46

BGP table nexthop route policy:

BGP main routing table version 46

BGP NSR Initial initsync version 6 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop                            Received Sid

*>ifc00:aa00:1::1/128 fc00:bb00:1::1                      fc00:bb00:1:e002::

*> fc00:aa00:3::3/128 ::                                  NO SRv6 Sid

Processed 2 prefixes, 2 paths

4. R3 RIB와 FIB를 설치합니다.

결국 R3는 RIB와 FIB를 설치하여 신호 처리 과정을 완료합니다. 그런 다음 R3는 SID 목록 fc00:bb00:1:e002:::을 사용하여 SRv6 헤드엔드로 작동합니다. 이 인그레스 R1은 H.Encaps(RFC 8986, 섹션 5.1)로 약칭되는 SR 정책에서 캡슐화를 통한 SRv6 헤드엔드의 역할을 합니다. 이 동작은 패킷을 IPv6 헤더에 캡슐화하여 세그먼트 목록을 적용하고 필요한 경우 SRH를 추가합니다. 이 경우 세그먼트가 하나뿐이므로 SRH를 추가할 필요가 없습니다. 패킷은 목적지 주소 fc00:bb00:1:e002::(동작 SRv6 엔드포인트 UDT6가 있는 R1의 서비스 SID)와 함께 전송됩니다.

RP/0/RSP0/CPU0:R3#show route ipv6 fc00:aa00:1::1/128 detail

Routing entry for fc00:aa00:1::1/128

Known via "bgp 1", distance 200, metric 0, type internal

Installed Jun  8 17:52:31.546 for 00:53:55

Routing Descriptor Blocks

fc00:bb00:1::1, from fc00:bb00:1::1

Route metric is 0

Label: None

Tunnel ID: None

Binding Label: None

Extended communities count: 0

NHID: 0x0 (Ref: 0)

Path Grouping ID: 1

SRv6 Headend: H.Encaps.Red [f3216], SID-list {fc00:bb00:1:e002::}

Route version is 0x1f (31)

No local label

IP Precedence: Not Set

QoS Group ID: Not Set

Flow-tag: Not Set

Fwd-class: Not Set

Route Priority: RIB_PRIORITY_RECURSIVE (12) SVD Type RIB_SVD_TYPE_LOCAL

Download Priority 4, Download Version 166

No advertising protos.

RP/0/RSP0/CPU0:R3#show cef ipv6 fc00:aa00:1::1/128

fc00:aa00:1::1/128, version 166, SRv6 Headend, internal 0x5000001 0x40 (ptr 0x7941f0f4) [1], 0x0 (0x0), 0x0 (0x7ad58368)

Updated Jun  8 17:52:31.551

Prefix Len 128, traffic index 0, precedence n/a, priority 4

gateway array (0x78eac428) reference count 1, flags 0x2010, source rib (7), 0 backups

[1 type 3 flags 0x48441 (0x78f4f4d8) ext 0x0 (0x0)]

LW-LDI[type=0, refc=0, ptr=0x0, sh-ldi=0x0]

gateway array update type-time 1 Jun  8 17:52:31.551

LDI Update time Jun  8 17:52:31.551

Level 1 - Load distribution: 0

[0] via fc00:bb00:1::/128, recursive

Accounting: Disabled

via fc00:bb00:1::/128, 5 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0x7941edb4 0x0]

next hop fc00:bb00:1::/128 via fc00:bb00:1::/48

SRv6 H.Encaps.Red SID-list {fc00:bb00:1:e002::}

Load distribution: 0 (refcount 1)

Hash  OK  Interface                 Address

0     Y   TenGigE0/0/0/1            remote

그림 4는 라우터 R3(fc00:aa00:3::3)이 R1(fc00:aa00:1::1)을 ping할 때의 패킷 형식을 보여줍니다.

그림 4. BGP IPv6 Unicast over SRv6의 경로를 따른 패킷 처리