소개
이 문서에서는 Catalyst 9000 Series 스위치의 EVPN 및 MVPN 주소군에서 BGP Dynamic Neighbor를 위한 EVPN 간소화 CLI에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Catalyst 9300
- Catalyst 9400
- Catalyst 9500
- Catalyst 9600
- Cisco IOS® XE 17.11.1 이상
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
EVPN 구축에는 여러 피어(대개 동일한 서브넷 내)와의 BGP 인접 관계가 포함됩니다. BGP DN(Dynamic Neighbor) 기능을 도입하기 전에 /24 서브넷의 모든 피어와의 BGP 세션을 설정하기 위해 최소 255개의 컨피그레이션 라인이 필요하고 이를 유지 관리해야 합니다. BGP DN을 사용하면 3개의 행만으로 이를 달성할 수 있습니다. 고정 인접 디바이스 컨피그레이션과 동적 인접 디바이스 컨피그레이션의 기능적 차이점은 후자는 다른 BGP 피어와의 연결만 수동적으로 생성한다는 점입니다. 따라서 이 기능은 피어 중 하나에서만 구성할 수 있습니다.
구축이 실현 가능하기 위해서는 필요 없는 경우 서브넷 범위 내에서 여러 피어를 그룹화하는 기능이 매우 바람직하며, 이미 IPv4, IPv6 및 VRF 주소군에 널리 채택되었습니다. 이 기능은 여러 leaf가 동일한 서브넷에 있는 스파인-리프 토폴로지에서 광범위하고 복잡한 컨피그레이션의 쓰기 및 유지 보수를 방지하는 데 도움이 되므로 다른 주소군, 특히 EVPN에 적합합니다.
참고: 이 기능은 새로운 CLI를 도입하지 않습니다. 이전에 지원되지 않았던 주소군 아래에서 'bgp 수신 범위'로 구성된 피어 그룹의 활성화를 허용합니다.
용어
DN |
동적 네이버 |
BGP가 연결 시도를 수신 대기하고 인접 디바이스를 형성하는 수동 모드 |
AF |
주소군 |
어떤 유형 접두사 및 라우팅 정보 BGP가 처리되는지 정의합니다. |
AS |
자동 시스템 |
단일 엔터티 또는 조직에서 모두 관리, 제어 및 감독하는 네트워크 또는 네트워크 컬렉션에 속하는 인터넷 라우팅 가능 IP 접두사 집합입니다 |
EVPN |
이더넷 가상 사설망 |
BGP가 레이어 2 MAC 및 레이어 3 IP 정보를 전송하도록 허용하는 확장은 EVPN이며 에서는 VXLAN 오버레이 네트워크와 관련된 연결 정보를 배포하기 위한 프로토콜로 MP-BGP(Multi-Protocol Border Gateway Protocol)를 사용합니다. |
MVPN |
멀티캐스트 가상 사설망 |
MVPN(Multicast VPN) 기능은 레이어 3 VPN(Virtual Private Network)을 통한 멀티캐스트 지원 기능을 제공합니다 |
VXLAN |
가상 확장 LAN(Local Area Network) |
VXLAN은 VLAN과 STP의 내재적 한계를 극복하기 위해 설계되었습니다. 이는 VLAN과 동일한 이더넷 레이어 2 네트워크 서비스를 제공하되 더 높은 유연성을 제공하는 IETF 표준[RFC 7348]입니다. 기능적으로 레이어 3 언더레이 네트워크에서 가상 오버레이로 실행되는 MAC-in-UDP 캡슐화 프로토콜입니다. |
구성
네트워크 다이어그램
언더레이(OSPF)
오버레이(BGP)
스파인-01
Spine-01#sh run | section r b
router bgp 65001
bgp router-id 172.16.255.1
bgp log-neighbor-changes
bgp listen range 172.16.255.0/29 peer-group DN-GROUP <-- Listen for connections from peers in this subnet
bgp listen block 172.16.255.2 <-- Excluded peer RR from DN subnet range to allow static peer
bgp listen limit 4 <-- Limit the number of peerings allowed
no bgp default ipv4-unicast
neighbor DN-GROUP peer-group
neighbor DN-GROUP remote-as 65001 <-- Peers only allowed in this AS
neighbor DN-GROUP update-source Loopback0
neighbor 172.16.255.2 remote-as 65001 <-- Static Neighbor config
neighbor 172.16.255.2 update-source Loopback0 <-- Static Neighbor config
!
address-family ipv4
exit-address-family
!
address-family ipv4 mvpn
neighbor DN-GROUP activate <--- Dynamic peer group must be activated in MVPN AF
neighbor DN-GROUP send-community both
neighbor DN-GROUP route-reflector-client
neighbor 172.16.255.2 activate <--- Static peering activation in MVPN AF
neighbor 172.16.255.2 send-community extended
exit-address-family
!
address-family l2vpn evpn
neighbor DN-GROUP activate <--- Dynamic peer group must be activated in EVPN AF
neighbor DN-GROUP send-community both
neighbor DN-GROUP route-reflector-client
neighbor 172.16.255.2 activate <-- Static peering activation in EVPN AF
neighbor 172.16.255.2 send-community extended
exit-address-family
참고: 고정 및 동적 인접 디바이스가 동일한 피어 그룹의 일부로 포함될 수 있지만 고정 인접 디바이스는 개별적으로 활성화해야 합니다.
팁: 예기치 않은 피어를 방지하기 위해 필요한 인접 디바이스 수로 피어 수를 제한하는 것이 좋습니다. 서브넷 범위 및 수신 제한을 가능한 한 엄격하게 설정합니다.
리프-01
Leaf-01#show run | sec r bgp
router bgp 65001
bgp router-id 172.16.255.3
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 172.16.255.1 remote-as 65001
neighbor 172.16.255.1 update-source Loopback0
neighbor 172.16.255.2 remote-as 65001
neighbor 172.16.255.2 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family ipv4 mvpn
neighbor 172.16.255.1 activate <-- Route Reflector 1
neighbor 172.16.255.1 send-community both
neighbor 172.16.255.2 activate <-- Route Reflector 2
neighbor 172.16.255.2 send-community both
exit-address-family
!
address-family l2vpn evpn
neighbor 172.16.255.1 activate <-- Route Reflector 2
neighbor 172.16.255.1 send-community both
neighbor 172.16.255.2 activate <-- Route Reflector 2
neighbor 172.16.255.2 send-community both
exit-address-family
참고: 다른 Spine Route Reflector 및 VTEP에 대한 컨피그레이션은 동일하므로 이 섹션에서는 반복하지 않습니다
참고: DN을 사용하는 피어 RR의 경우 정적 컨피그레이션을 사용해야 합니다. 이들은 패시브 모드에 있으며, 서로를 향해 OPEN 메시지를 생성하지 않습니다
선택적 컨피그레이션
대체 AS
AS 번호가 나열된 지정된 서브넷의 피어와 BGP 세션을 설정할 수 있습니다(총 6개의 AS에 대해 최대 5개의 대체 eBGP AS가 지원됨).
Spine-01#show run | section r b
router bgp 65001
bgp listen range 172.16.255.0/29 peer-group DN-GROUP
bgp listen limit 20
neighbor DN-GROUP peer-group
neighbor DN-GROUP remote-as 1 alternate-as 2 3 4 5 6<-- Allow peering with more than one AS
neighbor DN-GROUP update-source Loopback0
참고: 대규모 EVPN 활용 사례의 경우 이 방법이 충분하지 않을 수 있습니다(동적 인접 디바이스 피어 그룹당 최대 1,000개의 원격 AS가 필요할 수 있음). 향후 릴리스에서는 이러한 구축을 수용할 수 있도록 이 한도를 늘려야 합니다.
다음을 확인합니다.
스파인(RR)
BGP 리스너인 Spine이 동적 피어를 구성했는지 확인합니다.
- Spine-02는 동일하게 표시되므로 이 예제 출력에서는 Spine-01만 표시합니다
Spine-01#show ip bgp all summary
For address family: L2VPN E-VPN <-- Address Family type EVPN
BGP router identifier 172.16.255.1, local AS number 65001
BGP table version is 64, main routing table version 64
19 network entries using 7296 bytes of memory
24 path entries using 5568 bytes of memory
13/10 BGP path/bestpath attribute entries using 3848 bytes of memory
13 BGP extended community entries using 1670 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 18382 total bytes of memory
BGP activity 22/3 prefixes, 56/32 paths, scan interval 60 secs
19 networks peaked at 19:07:48 May 10 2023 UTC (00:48:59.007 ago)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
*172.16.255.3 4 65001 286 328 64 0 0 04:05:53 9
*172.16.255.4 4 65001 309 340 64 0 0 04:05:53 13
*172.16.255.5 4 65001 276 315 64 0 0 04:05:43 1
*172.16.255.6 4 65001 276 313 64 0 0 04:05:53 1
* Dynamically created based on a listen range command
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
Dynamically created neighbors: 4, Subnet ranges: 1
BGP peergroup DN-GROUP listen range group members:
172.16.255.0/29 <-- Peering subnet configured
For address family: MVPNv4 Unicast <-- Address Family type MVPN
BGP router identifier 172.16.255.1, local AS number 65001
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
*172.16.255.3 4 65001 286 328 1 0 0 04:05:53 0
*172.16.255.4 4 65001 309 340 1 0 0 04:05:54 0
*172.16.255.5 4 65001 276 315 1 0 0 04:05:43 0
*172.16.255.6 4 65001 276 313 1 0 0 04:05:53 0
* Dynamically created based on a listen range command
Dynamically created neighbors: 4, Subnet ranges: 1
BGP peergroup DN-GROUP listen range group members:
172.16.255.0/29 <-- Peering subnet configured
Total dynamically created neighbors: 4/(4 max), Subnet ranges: 1 <-- 4 total neighbors from the max of 4
참고: per-AF BGP 명령을 사용하여 단일 AF 정보만 볼 수 있습니다.
- show bgp l2vpn evpn summary
- show ip bgp ipv4 mvpn all 요약
Spine-01(RR) TCP 포트를 확인합니다.
- Spine은 패시브이므로 로컬 포트는 항상 고정 BGP 포트 179인 반면 VTEP는 임시 포트를 표시합니다
- 172.16.255.1 > 172.16.255.2는 고정 피어로 정의되지만, 이 RR은 OPEN을 수신하게 되어 사용되는 포트 179도 수신하게 되었습니다
Spine-01#show tcp brief
TCB Local Address Foreign Address (state)
72632453A5C0 172.16.255.1.179 172.16.255.5.15285 ESTAB <-- Dynamic peer (Leaf-03)
7263245C73C0 172.16.255.1.179 172.16.255.6.52693 ESTAB <-- Dynamic peer (Border Leaf)
7263245B3D30 172.16.255.1.179 172.16.255.4.44091 ESTAB <-- Dynamic peer (Leaf-02)
7263272DE460 172.16.254.1.22430 172.16.254.2.639 ESTAB <-- MSDP peer (Spine-02)
7263246DD3A8 172.16.255.1.179 172.16.255.2.21866 ESTAB <-- Static Peer (Spine-02 RR)
7263245BDAC0 172.16.255.1.179 172.16.255.3.31383 ESTAB <-- Dynamic peer (Leaf-01)
문제 해결
DN 피어링
피어 그룹이 L2VPN EVPN 주소군에 추가된 경우, 피어 그룹이 다른 AF에서 활성화된 경우에는 적용되지 않습니다.
- 이 경우 피어 그룹은 MVPN 아래에 있고 EVPN 아래에서 활성화됩니다.
- EVPN 네이버는 하드 클리어(hard clear)가 수행될 때까지 형성되지 않습니다.
Spine-01(config)#router bgp 65001
Spine-01(config-router)#address-family l2vpn evpn
Spine-01(config-router-af)#neighbor DN-GROUP activate
Spine-01(config-router-af)#end
% BGP: Dynamic peergroup DN-GROUP does not reset session by default and requires manual reset if this peer-group is also activated under another address-family
Spine-01#sh bgp l2vpn evpn summary
<--- Neighbor info missing
BGP peergroup DN-GROUP listen range group members:
172.16.255.0/29
Total dynamically created neighbors: 4/(4 max), Subnet ranges: 1
Spine-01#clear ip bgp * <-- Hard clear
%BGP-3-NOTIFICATION_MANY: sent to 5 sessions 6/4 (Administrative Reset) for all peers <-- Resetting all peers
%BGP_SESSION-5-ADJCHANGE: neighbor *172.16.255.3 MVPNv4 Unicast topology base removed from session Neighbor deleted
%BGP-5-ADJCHANGE: neighbor *172.16.255.3 Down User reset
%BGP_SESSION-5-ADJCHANGE: neighbor *172.16.255.4 MVPNv4 Unicast topology base removed from session Neighbor deleted
%BGP-5-ADJCHANGE: neighbor *172.16.255.4 Down User reset
%BGP_SESSION-5-ADJCHANGE: neighbor *172.16.255.5 MVPNv4 Unicast topology base removed from session Neighbor deleted
%BGP-5-ADJCHANGE: neighbor *172.16.255.5 Down User reset
%BGP_SESSION-5-ADJCHANGE: neighbor *172.16.255.6 MVPNv4 Unicast topology base removed from session Neighbor deleted
%BGP-5-ADJCHANGE: neighbor *172.16.255.6 Down User reset
%BGP-5-ADJCHANGE: neighbor 172.16.255.2 Down User reset
%BGP_SESSION-5-ADJCHANGE: neighbor 172.16.255.2 MVPNv4 Unicast topology base removed from session User reset
%BGP-5-ADJCHANGE: neighbor *172.16.255.3 Up <-- Peers coming back up for both MVPN and EVPN
%BGP-5-ADJCHANGE: neighbor *172.16.255.5 Up
%BGP-5-ADJCHANGE: neighbor *172.16.255.4 Up
%BGP-5-ADJCHANGE: neighbor *172.16.255.6 Up
Spine-01#sh bgp l2vpn evpn all summary
BGP router identifier 172.16.255.1, local AS number 65001
BGP table version is 61, main routing table version 61
41 network entries using 15744 bytes of memory
48 path entries using 11136 bytes of memory
25/22 BGP path/bestpath attribute entries using 7400 bytes of memory
20 BGP extended community entries using 2120 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 36400 total bytes of memory
BGP activity 145/104 prefixes, 22148/22100 paths, scan interval 60 secs
41 networks peaked at 21:07:01 May 11 2023 UTC (4d21h ago)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
*172.16.255.3 4 65001 26 12 61 0 0 00:05:03 16 <-- Dynamic Peers now show up in EVPN (* = dynamically created)
*172.16.255.4 4 65001 27 10 61 0 0 00:05:08 19
*172.16.255.5 4 65001 14 12 61 0 0 00:05:05 6
*172.16.255.6 4 65001 17 10 61 0 0 00:05:10 7
* Dynamically created based on a listen range command
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
Dynamically created neighbors: 4, Subnet ranges: 1
BGP peergroup DN-GROUP listen range group members:
172.16.255.0/29
Total dynamically created neighbors: 4/(4 max), Subnet ranges: 1
참고: 컨피그레이션 변경 사항을 적용하려면 네이버에 대해 엄격한 지우기가 필요합니다. 이는 BGP 동적 인접 디바이스를 지원하는 주소 패밀리의 현재 동작과 일치합니다.
DN 디버깅
동적 피어에 문제가 있는 경우 디버그를 사용하여 문제에 대한 자세한 내용을 볼 수 있습니다
Spine-01#debug bgp all range detail
Spine-01#sh debugging
IP routing:
BGP dynamic range debugging is on with detail (Dynamic neighbor details only) <-- Only debug DN type neighbors
Spine-01(config)#router bgp 65001
Spine-01(config-router)# address-family l2vpn evpn
Spine-01(config-router-af)# neighbor DN-GROUP activate
% BGP: Dynamic peergroup DN-GROUP does not reset session by default and requires manual reset if this peer-group is also activated under another address-family
*May 16 18:29:53.744: BGP:DN: Peergroup DN-GROUP is activated for Dynamic Neighbors for L2VPN E-VPN <-- Debug event
Spine-01#clear ip bgp *
*May 16 18:31:34.806: %BGP-3-NOTIFICATION_MANY: sent to 5 sessions 6/4 (Administrative Reset) for all peers
*May 16 18:31:34.806: BGP:DN: free: *172.16.255.3
*May 16 18:31:34.806: BGP:DN: free: *172.16.255.4
*May 16 18:31:34.806: BGP:DN: free: *172.16.255.5
*May 16 18:31:34.807: BGP:DN: free: *172.16.255.6
*May 16 18:31:43.855: BGP:DN: validating TCP SYN from 172.16.255.5: in range 172.16.255.0/29, val =0, peer-group = DN-GROUP <-- Validate a TCP SYN from peer (in DN Range?)
*May 16 18:31:43.856: BGP: 172.16.255.5 passive open to 172.16.255.1
*May 16 18:31:43.856: BGP:DN: passive open ACCEPT - TCP session : tcb=0x7263248098B8,context 0x726317305E20, ctx_group name 172.16.255.0/29, tcb->foreign=172.16.255.5, magic_cookie=0xFEEDFACE <-- Accept BGP OPEN
*May 16 18:31:43.856: BGP:DN: group->prefix_length=24, group->prefix=172.16.255.0
*May 16 18:31:43.856: BGP:DN: 172.16.255.5 get_rc_shim_transport_group: range group =172.16.255.0/29, group address = 0x726317305E20
*May 16 18:31:43.856: BGP:DN: init dynamic neighbor for peergroup DN-GROUP in L2VPN Evpn
*May 16 18:31:43.856: BGP:DN: Created a new neighbor *172.16.255.5 in range 172.16.255.0/29, peer-group DN-GROUP, count= 0 <-- Create this neighborship
*May 16 18:31:43.856: BGP:DN: accepted: nbr *172.16.255.5/7263245A3508 peer-grp: DN-GROUP/726317306460 <-- Peering is completed
참고: 다른 3개의 피어는 디버그 결과가 동일하므로 여기에 표시되지 않습니다.
고정 인접 디바이스
이전에 동적으로 생성된 인접 디바이스는 static로 변환할 수 없습니다.
Spine-01(config-router)#neighbor 172.16.255.3 remote-as 65001
% Cannot configure for dynamically created neighbor
라우터 BGP 모드에서 이 명령을 사용하여 DN 범위의 인접 디바이스를 제외할 수 있습니다. 이렇게 하면 DN 서브넷 범위에서 고정 피어와 동적 피어를 혼합할 수 있습니다
router bgp 65001
bgp listen block 172.16.255.3
관련 정보