cRPD의 Multi토폴로지 라우팅
cRPD의 멀티토폴로지
cRPD는 BGP 다중 RIB 기능을 활성화하여 Linux FIB(포워딩 플레인의 경로)를 사용하는 라우팅 정책에 따라 MTR(Multitopology Routing)을 지원할 수 있습니다. 애플리케이션은 다양한 유형의 트래픽에 대해 cRPD의 Linux FIB에서 라우팅 정책에 따라 필요한 라우팅 테이블을 선택할 수 있습니다. 각 트래픽 유형은 해당 토폴로지에 대한 새 라우팅 테이블을 생성하는 데 사용되는 토폴로지로 정의됩니다. 각 토폴로지는 통합 컨트롤 플레인을 사용하여 해당 토폴로지와 관련된 트래픽에 대한 라우팅 결정을 내립니다. 또한 각 토폴로지에는 별도의 포워딩 테이블이 있으며, 사실상 각 토폴로지에 대한 전용 포워딩 플레인이 있습니다.
서비스 프로바이더와 엔터프라이즈는 MTR(Multi토폴로지 Routing)을 사용하여 네트워크 전반의 트래픽 플로우를 엔지니어링할 수 있습니다. MTR은 직접 및 정적 경로, IS-IS, OSPF 및 BGP와 함께 사용할 수 있습니다. 여러 트래픽 유형을 전달하는 네트워크에서는 링크 특성에 따라 여러 링크를 통해 서로 다른 유형의 애플리케이션 트래픽을 전송해야 하는 경우가 많습니다. 커뮤니티는 경로를 multi토폴로지로 내보낼 때 BGP에 사용됩니다. OSPFv3는 MTR을 지원하지 않습니다. MTR은 IGP 경로를 발견하고 정적 및 OSPF를 사용하여 사용자 지정 토폴로지에 대해 BGP 경로를 확인할 수 있습니다.
필요에 따라 동일한 네트워크 링크를 공유하도록 별도의 토폴로지를 구성할 수 있습니다. MTR은 컨트롤 플레인(라우팅) 및 포워딩 플레인 필터의 조합을 사용합니다.
MTR은 생성한 토폴로지에 대한 라우팅 테이블에서 확인된 항목을 기반으로 포워딩 테이블을 생성하는 기능을 제공합니다. MTR 및 포워딩은 마스터 라우팅 인스턴스에서만 사용할 수 있습니다. Multi토폴로지 경로를 저장하기 위한 전용 RIB가 생성됩니다. BGP multipath는 토폴로지에서 활성화되지 않습니다.
라우팅 토폴로지가 아래에 routing-options구성되면 각 토폴로지에 대한 새 라우팅 테이블이 생성됩니다. 각 라우팅 프로토콜은 토폴로지 이름, 인스턴스 이름 및 테이블 목적을 기반으로 라우팅 테이블을 생성합니다.
예: cRPD에서 BGP를 사용하여 Multi토폴로지 라우팅 구성
이 예는 cRPD에서 BGP를 사용하여 커뮤니티 기반 다중 토폴로지를 구성하고 네트워크 경로에서 MTR(Multi토폴로지 Routing)을 사용하여 트래픽을 유니캐스트하는 방법을 보여줍니다.
요구 사항
이 예에는 다음 소프트웨어 릴리스가 필요합니다.
-
cRPD 19.4R1 이상.
개요
BGP에 대한 Multi토폴로지 라우팅 지원은 BGP 경로의 community 값을 기반으로 합니다. 이 구성은 토폴로지와 하나 이상의 커뮤니티 값 간의 연결을 결정하고 토폴로지 라우팅 테이블을 채웁니다. 일치하는 커뮤니티 값을 가진 도착하는 BGP 업데이트는 연결된 토폴로지 라우팅 테이블에 복제됩니다.
BGP inet family로 토폴로지를 구성하고 토폴로지 RIB(라우팅 테이블이라고도 함)로 BGP 가져오기 일치 경로를 확인합니다. 각 토폴로지의 경우, 라우팅 소프트웨어가 내부 ribgroup 및 해당 보조 테이블 가져오기 정책을 설정할 수 있도록 커뮤니티 개체 목록이 제공되어야 합니다.
구성
BGP를 위한 멀티토폴로지 라우팅 구성:
CLI 빠른 구성
set routing-options topologies family inet topology red table-id 40
set routing-options topologies family inet topology blue table-id 41
set routing-options topologies family inet topology green table-id 42
set routing-options router-id 10.2.2.2
set routing-options autonomous-system 65500
set routing-options rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2
set routing-options rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2
set routing-options rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2
set protocols bgp group ibgp-app-rr-ser type internal
set protocols bgp group ibgp-app-rr-ser traceoptions file bgp size 100m
set protocols bgp group ibgp-app-rr-ser traceoptions flag update
set protocols bgp group ibgp-app-rr-ser traceoptions flag state
set protocols bgp group ibgp-app-rr-ser local-address 10.77.1.1
set protocols bgp group ibgp-app-rr-ser family inet unicast add-path send path-count 6
set protocols bgp family inet unicast topology red community 1:1
set protocols bgp family inet unicast topology green community 1:2
set protocols bgp family inet unicast topology blue community 1:3
Multi토폴로지 라우팅을 통한 BGP 구성
단계별 절차
-
여러 토폴로지를 구성합니다.
[edit routing-options topologies] user@crpd# set family inet topology red table-id 40 user@crpd# set family inet topology blue table-id 41 user@crpd# set family inet topology green table-id 42 -
정적 경로를 구성합니다.
[edit routing-options] user@crpd# set router-id 10.2.2.2 user@crpd# set autonomous-system 65500 user@crpd# set rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2 user@crpd# set rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2 user@crpd# set rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2 -
일치하는 경로를 토폴로지 라우팅 테이블로 가져오도록 BGP 그룹 매개 변수를 구성합니다. BGP는 대상 커뮤니티 식별자를 사용하여 학습한 경로를 적절한 라우팅 테이블에 설치합니다.
[edit protocols bgp] user@crpd# set group ibgp-app-rr-ser type internal user@crpd# set group ibgp-app-rr-ser traceoptions file bgp size 100m user@crpd# set group ibgp-app-rr-ser traceoptions flag update user@crpd# set group ibgp-app-rr-ser traceoptions flag state user@crpd# set group ibgp-app-rr-ser local-address 10.77.1.1 user@crpd# set group ibgp-app-rr-ser family inet unicast add-path send path-count 6 user@crpd# set family inet unicast topology red community 1:1 user@crpd# set family inet unicast topology green community 1:2 user@crpd# set family inet unicast topology blue community 1:3
결과
구성 모드에서 및 show routing-options 명령을 입력하여 show protocols bgp 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
show routing-options
topologies {
family inet {
topology red {
table-id 40;
}
topology blue {
table-id 41;
}
topology green {
table-id 42;
}
}
}
rib :red.inet.0 {
static {
route 10.1.1.1/32 next-hop 10.15.0.2;
}
}
rib :green.inet.0 {
static {
route 10.1.1.1/32 next-hop 10.13.0.2;
}
}
rib :blue.inet.0 {
static {
route 10.1.1.1/32 next-hop 10.17.0.2;
}
}
user@crpd# show protocols bgp
family inet {
unicast {
topology red {
community 1:1;
}
topology green {
community 1:2;
}
topology blue {
community 1:3;
}
}
group ibgp-app-rr-ser {
type internal;
traceoptions {
file bgp size 100m;
flag update;
}
local-address 10.77.1.1;
family inet {
unicast {
add-path {
send {
path-count 6;
}
}
}
}
}
}
디바이스 구성이 완료되면 구성 모드에서 명령을 입력합니다 commit .
확인
BGP 경로 확인
목적
BGP 일치 경로를 확인하려면,
행동
운영 모드에서 명령을 입력합니다.show route protocol bgp all table
user@crpd> show route protocol bgp all table
:red.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden)
+ = Active Route, - = Last Active, * = Both
10.99.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.15.0.2 via ens4f1
10.99.9.2/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.15.0.2 via ens4f1
10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.15.0.2 via ens4f1
:green.inet.0: 10 destinations, 10 routes (8 active, 0 holddown, 2 hidden)
+ = Active Route, - = Last Active, * = Both
10.9.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.13.0.2 via ens4f1
10.9.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.13.0.2 via ens4f1
:blue.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden)
+ = Active Route, - = Last Active, * = Both
10.99.9.3/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.17.0.2 via ens4f1
10.99.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.17.0.2 via ens4f1
10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 10.17.0.2 via ens4f1
운영 모드에서 명령을 입력합니다.show route protocol bgp all table inet.0
user@crpd> show route protocol bgp all table inet.0
inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.99.9.1/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 1.15.0.2 via ens4f1
10.99.9.2/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 1.15.0.2 via ens4f1
10.99.9.3/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 1.15.0.2 via ens4f1
10.99.9.4/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 1.15.0.2 via ens4f1
10.99.9.5/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118
AS path: I, validation-state: unverified
> to 1.15.0.2 via ens4f1
의미
라우팅 테이블에 설치된 BGP 매칭 경로를 볼 수 있으며, 커뮤니티 대상이 없는 경로가 라우팅 테이블에서만 inet.0 사용 가능한 경우 확인할 수 있습니다.
