허브 앤 스포크 VPN
허브 앤 스포크 VPN 토폴로지 구성: 하나의 인터페이스
하나의 인터페이스 구성을 사용하여 허브 또는 허브에서 기본 경로를 보급합니다.
그림 1 은 허브 CE(CE1)와 허브 PE(PE1) 사이에 하나의 인터페이스만 있는 레이어 3 VPN 허브 앤 스포크 애플리케이션을 보여줍니다. 이는 허브 앤 스포크 토폴로지를 구성하는 권장 방식입니다.
이 구성에서 기본 경로는 허브에서 스포크로 보급됩니다. 스포크 CE 라우터 간에 보다 구체적인 스포크 CE 경로가 교환되어야 하는 경우 허브 CE와 허브 PE 사이에 두 개의 인터페이스가 필요합니다. 허브 및 스포크 VPN 토폴로지 구성을 참조하십시오. 2개의 인터페이스 예에 대해 두 개의 인터페이스 .
이 구성 예에서 스포크 경로 배포는 다음과 같습니다.
스포크 CE2는 PE2를 스포크하기 위해 경로를 보급합니다.
스포크 PE2는 CE2의 경로를 VPN 라우팅 및 포워딩(VRF) 테이블에 설치합니다.
스포크 PE2는 VRF 내보내기 정책을 확인하고, 경로 대상 커뮤니티를 추가하며, PE1을 허브로 하는 경로를 발표합니다.
허브 PE1은 VRF 가져오기 정책을 확인하고 가져오기 정책과 일치하는 경로를 테이블 bgp.l3vpn.0에 설치합니다.
허브 PE1은 테이블 bgp.l3vpn.0에서 허브 VRF 테이블에 경로를 설치합니다.
허브 PE1은 허브 VRF 테이블에서 허브 CE1까지 경로를 발표합니다.
이 구성 예에서 기본 경로 배포는 다음과 같습니다.
허브 CE1은 허브 PE1에 대한 기본 경로를 발표합니다.
허브 PE1은 허브 VRF 테이블에 기본 경로를 설치합니다.
허브 PE1은 VRF 내보내기 정책을 확인하고, 경로 대상 커뮤니티를 추가하며, 스포크 PE2 및 PE3의 기본 경로를 발표합니다.
스포크 PE2 및 PE3는 VRF 가져오기 정책을 확인하고 기본 경로를 테이블 bgp.l3vpn.0에 설치합니다.
스포크 PE2 및 PE3는 테이블 bgp.l3vpn.0에서 스포크 VRF 테이블에 경로를 설치합니다.
스포크 PE2 및 PE3는 스포크 VRF 테이블에서 스포크 CE2 및 CE3까지 기본 경로를 발표합니다.
다음 섹션은 그림 1에 설명된 토폴로지를 기반으로 한 인터페이스로 허브 앤 스포크 토폴로지를 구성하는 방법을 설명합니다.
허브 CE1 구성
허브 CE1을 다음과 같이 구성합니다.
[edit routing-options] static { route 0.0.0.0/0 discard; } autonomous-system 100; [edit protocols] bgp { group hub { type external; export default; peer-as 200; neighbor 10.49.4.1; } } [edit policy-options] policy-statement default { term 1 { from { protocol static; route-filter 0.0.0.0/0 exact; } then accept; } term 2 { then reject; } }
허브 PE1 구성
허브 PE1을 다음과 같이 구성합니다.
[edit] routing-instances { hub { instance-type vrf; interface t3-0/0/0; route-distinguisher 10.255.14.176:2; vrf-target { import target:200:100; export target:200:101; } protocols { bgp { group hub { type external; peer-as 100; as-override; neighbor 10.49.4.2; } } } } }
P 라우터 구성
다음과 같이 P 라우터를 구성합니다.
[edit] interfaces { t3-0/1/1 { unit 0 { family inet { address 10.49.2.1/30; } family mpls; } } t3-0/1/3 { unit 0 { family inet { address 10.49.0.2/30; } family mpls; } } t1-0/2/0 { unit 0 { family inet { address 10.49.1.2/30; } family mpls; } } } [edit] protocols { ospf { area 0.0.0.0 { interface t3-0/1/3.0; interface t1-0/2/0.0; interface t3-0/1/1.0; interface lo0.0 { passive; } } } ldp { interface t3-0/1/1.0; interface t3-0/1/3.0; interface t1-0/2/0.0; } }
스포크 PE2 구성
다음과 같이 스포크 PE2를 구성합니다.
[edit] interfaces { t3-0/0/0 { unit 0 { family inet { address 10.49.0.1/30; } family mpls; } } t1-0/1/2 { unit 0 { family inet { address 10.49.3.1/30; } } } } [edit protocols] bgp { group ibgp { type internal; local-address 10.255.14.182; peer-as 200; neighbor 10.255.14.176 { family inet-vpn { unicast; } } } } ospf { area 0.0.0.0 { interface t3-0/0/0.0; interface lo0.0 { passive; } } } ldp { interface t3-0/0/0.0; } [edit] routing-instances { spoke { instance-type vrf; interface t1-0/1/2.0; route-distinguisher 10.255.14.182:20; vrf-target { import target:200:101; export target:200:100; } protocols { bgp { group spoke { type external; peer-as 100; as-override; neighbor 10.49.3.2; } } } } }
스포크 PE3 구성
다음과 같이 스포크 PE3을 구성합니다.
[edit] interfaces { t3-0/0/0 { unit 0 { family inet { address 10.49.6.1/30; } } } t3-0/0/1 { unit 0 { family inet { address 10.49.2.2/30; } family mpls; } } } [edit protocols} bgp { group ibgp { type internal; local-address 10.255.14.178; peer-as 200; neighbor 10.255.14.176 { family inet-vpn { unicast; } } } } ospf { area 0.0.0.0 { interface t3-0/0/1.0; interface lo0.0 { passive; } } } ldp { interface t3-0/0/1.0; } [edit] routing-instances { spoke { instance-type vrf; interface t3-0/0/0.0; route-distinguisher 10.255.14.178:30; vrf-target { import target:200:101; export target:200:100; } protocols { bgp { group spoke { type external; peer-as 100; as-override; neighbor 10.49.6.2; } } } } }
스포크 CE2 구성
다음과 같이 스포크 CE2를 구성합니다.
[edit routing-options] autonomous-system 100; {edit protocols] bgp { group spoke { type external; export loopback; peer-as 200; neighbor 10.49.3.1; } }
스포크 CE3 구성
다음과 같이 스포크 CE3을 구성합니다.
[edit routing-options] autonomous-system 100; [edit protocols] bgp { group spoke { type external; export loopback; peer-as 200; neighbor 10.49.6.1; } }
이 구성 예에서 트래픽 포워딩은 스포크 CE2와 허브 CE1 사이의 다음과 같습니다.
스포크 CE2는 스포크 PE2에서 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 전달합니다.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0
스포크 PE2는 스포크 VRF 테이블에서 경로 조회를 수행하고 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 허브 PE2(P 라우터를 통해 PE2는 두 개의 레이블을 푸시)로 전달합니다.
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top)
허브 PE1은 VPN 레이블
100336
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop
허브 PE1은 트래픽을 인터페이스
t3-0/0/0.0
밖으로 허브 CE1로 전달합니다.
이 구성 예에서 트래픽 포워딩은 허브 CE1과 스포크 CE2 사이의 다음과 같습니다.
허브 CE1은 BGP를 통해 학습된 경로를 사용하여 트래픽을 허브 PE1로 전달합니다.
10.49.10.250/32 *[BGP/170] 02:28:46, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0
허브 PE1은 허브 VRF 테이블에서 경로 조회를 수행하고 트래픽을 스포크 PE2로 전달합니다(P 라우터를 통해 PE1은 두 개의 레이블을 푸시함).
10.49.10.250/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.182 AS path: 100 I > via t1-0/1/0.0, Push 100352, Push 100208(top)
스포크 PE2는 VPN 레이블
100352
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.100352 *[VPN/170] 02:31:39 > to 10.49.3.2 via t1-0/1/2.0, Pop
스포크 PE2는 트래픽을 인터페이스
t1-0/1/2.0
밖으로 스포크 CE2로 전달합니다.
이 구성 예에서 트래픽 포워딩은 스포크 CE2와 스포크 CE3 사이의 다음과 같습니다.
스포크 CE2는 스포크 PE2에서 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 전달합니다.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0
스포크 PE2는 스포크 VRF 테이블에서 경로를 조회하고 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 허브 PE1(P 라우터를 통해 PE2는 두 개의 레이블을 푸시)으로 전달합니다.
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top)
허브 PE1은 VPN 레이블
100336
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop
허브 PE1은 인터페이스
t3-0/0/0.0
에서 허브 CE1로 트래픽을 전달합니다.허브 CE1은 BGP를 통해 학습된 라우터를 사용하여 트래픽을 허브 PE1로 전달합니다.
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0
허브 PE1은 허브 VRF 테이블에서 경로 조회를 수행하고 트래픽을 스포크 PE3로 전달합니다(P 라우터를 통해 PE1은 두 개의 레이블을 푸시함).
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top)
스포크 PE3은 VPN 레이블
100128
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop
스포크 PE3는 트래픽을 인터페이스
t3-0/0/0.0
밖으로 스포크 CE3로 전달합니다.
허브 VRF 라우팅 테이블 IP 포워딩 조회가 필요한 허브 PE에서 송신 기능이 필요한 경우 허브 PE 라우터에서 송신 기능 활성화를 참조하십시오.
허브 PE 라우터에서 송신 기능 활성화
이 예는 허브 앤 스포크 VPN 토폴로지 구성과 함께 제공됩니다. 이 예는 그림 1에 표시된 토폴로지도 사용합니다.
허브 VRF 라우팅 테이블 IP 포워딩 조회가 필요한 허브 PE에서 송신 기능이 필요한 경우, 허브 앤 스포크 VPN 토폴로지 구성 에 자세히 설명된 구성: 하나의 인터페이스가 작동하지 않습니다. 허브 라우팅 인스턴스에 문을 적용하면 vrf-table-label
원격 스포크 PE의 트래픽이 허브 PE로 전달되고 IP 조회가 수행되게 합니다. 특정 스포크 경로가 허브 VRF 테이블에 있으므로 허브 CE를 통과하지 않고 트래픽이 스포크 PE로 전달됩니다.
허브 PE는 VPN 레이블 1028을 사용하여 기본 경로를 다음과 같이 보급합니다.
hub.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden) * 0.0.0.0/0 (1 entry, 1 announced) BGP group ibgp type Internal Route Distinguisher: 10.255.14.176:2 VPN Label: 1028 Nexthop: Self Localpref: 100 AS path: 100 I Communities: target:200:101
들어오는 트래픽은 VPN 레이블 1028을 사용하여 전달됩니다. mpls.0 테이블은 테이블 hub.inet.0에서 IP 조회가 필요하다는 것을 보여줍니다.
1028 *[VPN/0] 00:00:27 to table hub.inet.0, Pop
그러나 허브 VRF 테이블 hub.inet.0에는 특정 스포크 경로가 포함되어 있습니다.
10.49.10.250/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.182 AS path: 100 I > via t1-0/1/0.0, Push 100352, Push 100208(top) 10.49.10.253/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top)
이 때문에 트래픽은 허브 CE를 통과하지 않고 스포크 PES로 직접 전달됩니다. 이를 방지하기 위해 허브 PE1에서 다운스트림 트래픽에 대한 보조 라우팅 인스턴스를 구성해야 합니다.
허브 PE1 구성
허브 PE1을 다음과 같이 구성합니다.
[edit] routing-instances { hub { instance-type vrf; interface t3-0/0/0.0; route-distinguisher 10.255.14.176:2; vrf-target { import target:200:100; export target:200:101; } no-vrf-advertise; routing-options { auto-export; } protocols { bgp { group hub { type external; peer-as 100; as-override; neighbor 10.49.4.2; } } } } hub-downstream { instance-type vrf; route-guisher 10.255.14.176:3; vrf-target target:200:101; vrf-table-label; routing-options { auto-export; } } }
no-vrf-advertise
문이 계층 수준에서 사용되는 [edit routing-instances hub]
경우 라우팅 테이블 그룹 또는 VRF 내보내기 정책이 필요하지 않습니다. 문은 no-vrf-advertise
기본 라우팅 인스턴스hub
에서 VPN 경로를 보급하지 않는 허브 PE를 구성합니다. 이러한 경로는 대신 보조 라우팅 인스턴스hub_downstream
에서 보급됩니다. 문에 대한 자세한 내용은 Junos OS 라우팅 프로토콜 라이브러리를 no-vrf-advertise
참조하십시오.
계층 수준의 문 [edit routing-instances hub-downstream routing-options]
은 auto-export
각 라우팅 인스턴스에 대해 정의된 경로 대상을 보고 허브 인스턴스에서 허브 다운스트림 인스턴스로 내보낸 경로를 식별합니다. 문 사용과 Junos OS 대한 자세한 내용은 Junos OS 라우팅 프로토콜 라이브러리를 auto-export
참조하십시오. 내보내기 정책의 더 많은 예는 자동 경로 내보내기를 사용하여 중복 VPN 구성을 참조하십시오.
허브 PE에서 이러한 구성을 통해 스포크 투 스포크 CE 트래픽은 허브 CE를 거치고 허브 PE에서 송신 기능(예: 필터링)을 활성화할 수 있습니다.
이 구성 예에서 트래픽 포워딩은 스포크 CE2와 스포크 CE3 사이의 다음과 같습니다.
스포크 CE2는 스포크 PE2에서 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 전달합니다.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0
스포크 PE2는 스포크 VRF 테이블에서 경로를 조회하고 BGP를 통해 학습된 기본 경로를 사용하여 트래픽을 허브 PE1(P 라우터를 통해 PE2는 두 개의 레이블을 푸시)으로 전달합니다.
spoke.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[BGP/170] 00:00:09, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/0.0, Push 1029, Push 100224(top)
허브 PE1은 VPN 레이블
1029
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.mpls.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 1029 *[VPN/0] 00:11:49 to table hub_downstream.inet.0, Pop
VPN 레이블
1029
은 다음과 같이 광고됩니다.명령문은
vrf-table-label
허브 PE1 구성의[edit routing-instances hub_downsteam]
계층 수준에 적용됩니다.명령문은
no-vrf-advertise
계층 수준에 적용[edit routing-instances hub]
되어 라우터가 보조 테이블에서 경로를 보급하도록 지시합니다.
따라서 IP 조회는 hub.inet.0 테이블이 아닌 hub_downstream.inet.0 테이블에서 수행됩니다.
허브 PE의
show route advertising-protocol
명령을 스포크 PE에 실행하여 VPN 레이블1029
광고를 확인합니다.user@host> show route advertising-protocol hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) * 0.0.0.0/0 (1 entry, 1 announced) BGP group ibgp type Internal Route Distinguisher: 10.255.14.176:3 VPN Label: 1029 Nexthop: Self Localpref: 100 AS path: 100 I Communities: target:200:101
허브 PE1은 테이블에서 IP 조회를
hub_downstream.inet.0
수행하고 트래픽 아웃 인터페이스t3-0/0/0.0
를 허브 CE1로 전달합니다.hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 0.0.0.0/0 (1 entry, 1 announced) *BGP Preference: 170/-101 Next-hop reference count: 4 Source: 10.49.4.2 Next hop: 10.49.4.2 via t3-0/0/0.0, selected State: <Secondary Active Ext> Peer AS: 100 Age: 3:03 Task: BGP_100.10.49.4.2+1707 Announcement bits (2): 0-KRT 2-BGP.0.0.0.0+179 AS path: 100 I Communities: target:200:101 Localpref: 100 Router ID: 10.49.10.251 Primary Routing Table hub.inet.0
기본 라우팅 테이블 은
hub.inet.0
(는) 계층 수준에서 문과auto-export
허브 PE1 구성의 계층 수준에서 명령문[edit routing-instances hub]
[edit routing-instances hub-downstream routing-options]
의no-vrf-advertise
결과로 이 경로가 테이블에서hub.inet.0
이 hub_downstream.inet.0 테이블로 내보내되었음을 나타냅니다.허브 CE1은 BGP를 통해 학습된 라우터를 사용하여 트래픽을 허브 PE1로 다시 전달합니다.
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0
허브 PE1은 허브 VRF 테이블에서 경로 조회를 수행하고 트래픽을 스포크 PE3로 전달합니다(P 라우터를 통해 PE1은 두 개의 레이블을 푸시함).
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top)
스포크 PE3은 VPN 레이블
100128
에 대한 mpls.0 테이블에서 경로 조회를 수행합니다.100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop
스포크 PE3는 트래픽 아웃 인터페이스
t3-0/0/0.0
를 스포크 CE3로 전달합니다.
허브 앤 스포크 VPN 토폴로지 구성: 두 개의 인터페이스
2 인터페이스 구성을 사용하여 스포크에서 스포크로 경로를 전파합니다.
이 섹션 예제는 다음 구성 요소를 사용하여 두 개의 인터페이스로 허브 앤 스포크 토폴로지 구성을 구성합니다( 그림 2 참조).
하나의 허브 PE 라우터(라우터 D).
하나의 허브 CE 라우터가 허브 PE 라우터에 연결되었습니다. 이 허브 앤 스포크 VPN 토폴로지의 기능이 제대로 작동하려면 허브 PE 라우터를 허브 CE 라우터에 연결하는 두 개의 인터페이스가 있어야 하며, 각 인터페이스에는 PE 라우터에 자체 VRF 테이블이 있어야 합니다.
첫 번째 인터페이스(여기에서 인터페이스 ge-0/0/0.0)는 허브 CE 라우터에 대한 스포크 경로를 알리는 데 사용됩니다. 이 인터페이스와 연결된 VRF 테이블에는 스포크 PE 라우터가 허브 CE 라우터에 발표하는 경로가 포함되어 있습니다.
두 번째 인터페이스(여기에서 인터페이스 ge-0/0/1.0)는 허브 앤 스포크 라우터를 목적지로 하는 허브 CE에서 경로 공지 사항을 수신하는 데 사용됩니다. 이 인터페이스와 연결된 VRF 테이블에는 허브 CE 라우터가 스포크 PE 라우터에 대해 발표한 경로가 포함됩니다. 이 예에서는 두 개의 개별 물리적 인터페이스가 사용됩니다. 허브 PE 라우터와 허브 CE 라우터 간에 동일한 물리적 인터페이스를 공유하는 두 개의 개별 논리적 인터페이스를 구성하는 경우에도 작동합니다.
두 개의 스포크 PE 라우터(라우터 E 및 라우터 F).
두 개의 스포크 CE 라우터(CE1 및 CE2),하나는 각 스포크 PE 라우터에 연결되었습니다.
신호 프로토콜인 LDP.
이 구성에서는 스포크 CE 라우터 CE1의 경로 배포는 다음과 같이 발생합니다.
스포크 라우터 CE1은 스포크 PE 라우터 E에 대한 경로를 발표합니다.
라우터 E는 CE1의 경로를 VRF 테이블에 설치합니다.
VRF 내보내기 정책을 확인한 후 라우터 E는 정책을 통과한 라우터 CE1의 경로에 스포크 대상 커뮤니티를 추가하고 허브 PE 라우터인 라우터 D에 이를 발표합니다.
라우터 D는 인터페이스 ge-0/0/0.0과 관련된 VRF 가져오기 정책을 확인하고 정책과 일치하는 스포크 PE 라우터의 모든 경로를 bgp.l3vpn 라우팅 테이블 배치합니다. (일치하지 않는 모든 경로는 폐기됩니다.)
라우터 D는 인터페이스 ge-0/0/0.0과 관련된 VRF 가져오기 정책을 확인하고 스포크 VRF 테이블에 일치하는 모든 경로를 설치합니다. 경로는 스포크 대상 커뮤니티에 설치됩니다.
라우터 D는 인터페이스 ge-0/0/0을 통해 허브 CE에 대한 경로를 발표합니다.
허브 CE 라우터는 허브 라우터인 인터페이스 ge-0/0/1에 대한 두 번째 인터페이스를 통해 허브 PE 라우터 D로의 경로를 다시 발표합니다.
허브 PE 라우터는 허브 CE 라우터에서 학습한 경로를 인터페이스 ge-0/0/1과 연결된 허브 VRF 테이블에 설치합니다.
허브 PE 라우터는 인터페이스 ge-0/0/1.0과 관련된 VRF 내보내기 정책을 확인하고 허브 대상 커뮤니티를 추가한 후 모든 스포크에 일치하는 모든 경로를 발표합니다.
그림 3 은 이 스포크 라우터에서 다른 스포크 CE 라우터인 라우터 CE2로 경로가 배포되는 방법을 보여줍니다. 라우터 CE1에서 라우터 CE2로 traceroute
명령을 실행하면 동일한 경로가 뒤따릅니다.
이 예의 마지막 섹션인 라우터에 의해 요약된 허브 앤 스포크 VPN 구성은 그림 2에 표시된 각 서비스 프로바이더 라우터에 대한 VPN 기능을 구성하는 데 필요한 문을 통합합니다.
다음 섹션에서는 허브 앤 스포크 PE 라우터의 허브 앤 스포크 토폴로지에 대한 VPN 기능을 구성하는 방법을 설명합니다. CE 라우터는 VPN에 대한 정보가 없으므로 일반적으로 구성합니다.
- 허브 앤 스포크 PE 라우터에서 IGP 활성화
- 허브 앤 스포크 PE 라우터에서 LDP 구성
- PE 라우터에서 IBGP 구성
- 허브 앤 스포크 PE 라우터에서 VPN 라우팅 인스턴스 구성
- PE 라우터에서 VPN 정책 구성
- 라우터가 요약한 허브 앤 스포크 VPN 구성
허브 앤 스포크 PE 라우터에서 IGP 활성화
허브 앤 스포크 PE 라우터가 라우팅 정보를 교환할 수 있도록 하려면 이러한 모든 라우터에서 IGP를 구성하거나 정적 경로를 구성해야 합니다. 라우팅 프로토콜 프로세스(rpd)의 기본 인스턴스(즉, [edit protocols]
계층 수준에서)에서 IGP를 구성합니다. 라우팅 인스턴스 내가 아니라(계층 수준이 아님 [edit routing-instances]
).
표준 방식으로 IGP를 구성합니다. 이 구성 예는 구성의 이 부분을 포함하지 않습니다.
허브 앤 스포크 토폴로지의 경로 배포에서 허브 사이트에서 CE와 PE 라우터 간에 사용되는 프로토콜이 BGP인 경우, 허브 CE 라우터는 허브 PE 라우터에서 수신된 모든 경로를 발표하고 스포크 라우터는 허브 PE 라우터와 모든 스포크 라우터로 돌아갑니다. 즉, 허브 앤 스포크 PE 라우터는 AS 번호가 포함된 경로를 수신합니다. 일반적으로 경로에 이 정보가 포함되어 있으면 라우팅 루프가 발생하고 라우터가 경로를 거부함을 나타냅니다. 그러나 VPN 구성이 작동하려면 허브 PE 라우터와 스포크 라우터가 이러한 경로를 수락해야 합니다. 이를 활성화하려면 허브 PE 라우터 및 모든 스포크 라우터의 [edit routing-options]
계층 수준에서 AS를 구성할 때 옵션을 포함합니다loops
. 이 구성 예에서는 1의 값을 지정합니다. 0에서 10까지 의 숫자를 지정할 수 있습니다.
[edit routing-options] autonomous-system as-number loops 1;
허브 앤 스포크 PE 라우터에서 LDP 구성
VPN에 참여하는 허브 앤 스포크 PE 라우터 간의 인터페이스에 LDP를 구성합니다.
허브 PE 라우터 D에서 LDP를 구성합니다.
[edit protocols] ldp { interface so-1/0/0.0; interface t3-1/1/0.0; }
스포크 PE 라우터 E에서 LDP를 구성합니다.
[edit protocols] ldp { interface fe-0/1/2.0; }
스포크 PE 라우터 라우터 라우터 F에서 LDP를 구성합니다.
[edit protocols] ldp { interface fe-1/0/0.0; }
PE 라우터에서 IBGP 구성
허브 앤 스포크 PE 라우터에서 다음 속성으로 IBGP 세션을 구성합니다.
VPN family - IBGP 세션이 VPN용임을 나타내려면 문을 포함합니다
family inet-vpn
.루프백 주소 - 로컬 PE 라우터의 루프백 주소를 지정하는 문을 포함합니다
local-address
. VPN에 대한 IBGP 세션은 루프백 주소를 통해 실행됩니다. 또한 계층 수준에서 인터페이스를[edit interfaces]
구성lo0
해야 합니다. 이 예는 라우터 구성의 이 부분을 포함하지 않습니다.neighbor 주소 - 문을 포함합니다
neighbor
. 허브 라우터에서 각 스포크 PE 라우터의 IP 주소를 지정하고 스포크 라우터에서 허브 PE 라우터의 주소를 지정합니다.
허브 라우터의 경우, 각 스포크에 대한 IBGP 세션을 구성하고, 각 스포크 라우터에 대해 허브로 IBGP 세션을 구성합니다. 두 스포크 라우터 사이에는 IBGP 세션이 없습니다.
허브 라우터 D에서 IBGP를 구성합니다. 첫 번째 neighbor
문은 라우터 E를 스포크하기 위한 IBGP 세션을 구성하고, 두 번째 문은 스포크 라우터 F에 대한 세션을 구성합니다.
[edit protocols] bgp { group Hub-to-Spokes { type internal; local-address 10.255.14.174; family inet-vpn { unicast; } neighbor 10.255.14.180; neighbor 10.255.14.182; } }
스포크 라우터 E에서 허브 라우터에 대한 IBGP 세션을 구성합니다.
[edit protocols] bgp { group Spoke-E-to-Hub { type internal; local-address 10.255.14.180; neighbor 10.255.14.174 { family inet-vpn { unicast; } } } }
스포크 라우터 F에서 허브 라우터에 대한 IBGP 세션을 구성합니다.
[edit protocols] bgp { group Spoke-F-to-Hub { type internal; local-address 10.255.14.182; neighbor 10.255.14.174 { family inet-vpn { unicast; } } } }
허브 앤 스포크 PE 라우터에서 VPN 라우팅 인스턴스 구성
허브 PE 라우터가 스포크 PE 라우터에서 오고가는 패킷을 구별할 수 있으려면 다음 두 개의 라우팅 인스턴스로 구성해야 합니다.
하나의 라우팅 인스턴스(이 예
Spokes-to-Hub-CE
에서는)는 허브 PE 라우터에서 허브 CE 라우터(이 예에서는 인터페이스)로 패킷을 전달하는 인터페이스ge-0/0/0.0
와 연결됩니다. VRF 테이블에는 스포크 PE 라우터가 발표하는 경로와 허브 CE 라우터에 대한 허브 PE 라우터가 포함되어 있습니다.두 번째 라우팅 인스턴스(이 예
Hub-CE-to-Spokes
에서는)는 허브 CE 라우터에서 허브 PE 라우터(이 예에서는 인터페이스)로 패킷을 전달하는 인터페이스ge-0/0/1.0
와 연결됩니다. VRF 테이블에는 허브 CE 라우터에서 허브 앤 스포크 PE 라우터로 발표되는 경로가 포함되어 있습니다.
각 스포크 라우터에서 하나의 라우팅 인스턴스를 구성해야 합니다.
라우팅 인스턴스에서 다음을 정의해야 합니다.
한 VPN의 주소를 다른 VPN의 주소와 구별하는 데 사용되는 경로 구분자.
의 인스턴스 유형
vrf
은 PE 라우터에 VRF 테이블을 만듭니다.VPN의 일부이며 PE 라우터를 CE 라우터에 연결하는 인터페이스.
VRF 가져오기 및 내보내기 정책. 가져오기 정책 모두 커뮤니티에 대한 참조를 포함해야 합니다. 그렇지 않으면 구성을 커밋하려고 하면 커밋이 실패합니다. (예외는 가져오기 정책에 문만 포함된 경우입니다
then reject
.) VRF 내보내기 정책에서 스포크 PE 라우터는 스포크 대상 커뮤니티를 연결합니다.PE 라우터가 연결된 CE 라우터에 VPN 관련 경로를 배포하는 데 필요한 PE와 CE 라우터 간의 라우팅. 라우팅 프로토콜(BGP, OSPF 또는 RIP)을 구성하거나 정적 라우팅을 구성할 수 있습니다.
허브 앤 스포크 토폴로지의 경우 허브 CE 라우터의 각 라우팅 인스턴스에서 서로 다른 정책을 구성해야 합니다. 허브 PE 라우터에서 허브 CE 라우터로 패킷을 전달하는 인터페이스와 연결된 라우팅 인스턴스의 경우(이 예 Spokes-to-Hub-CE
에서는) 가져오기 정책은 허브 앤 스포크 PE 라우터 간의 IBGP 세션에서 수신된 모든 경로를 수락해야 하며, 내보내기 정책은 허브 CE 라우터에서 수신된 모든 경로를 거부해야 합니다. 허브 CE 라우터에서 허브 PE 라우터로 패킷을 전달하는 인터페이스와 연결된 라우팅 인스턴스의 경우(이 예 Hub-CE-to-Spokes
에서는) 가져오기 정책은 스포크 PE 라우터에서 수신한 모든 경로를 거부해야 하며 내보내기 정책은 모든 스포크 라우터로 내보내야 합니다.
허브 PE 라우터 D에서 다음 라우팅 인스턴스를 구성합니다. 라우터 D는 OSPF를 사용하여 허브 CE 라우터와 경로를 배포합니다.
[edit] routing-instance { Spokes-to-Hub-CE { instance-type vrf; interface ge-0/0/0.0; route-distinguisher 10.255.1.174:65535; vrf-import spoke; vrf-export null; protocols { ospf { domain-id disable; export redistribute-vpn; domain-vpn-tag 0; area 0.0.0.0 { interface ge-0/0/0; } } } } Hub-CE-to-Spokes { instance-type vrf; interface ge-0/0/1.0; route-distinguisher 10.255.1.174:65534; vrf-import null; vrf-export hub; protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface ge-0/0/1.0; } } } } }
스포크 PE 라우터 E에서 다음 라우팅 인스턴스를 구성합니다. 라우터 E는 OSPF를 사용하여 스포크 CE 라우터 CE1과 경로를 배포합니다.
[edit] routing-instance { Spoke-E-to-Hub { instance-type vrf; interface fe-0/1/0.0; route-distinguisher 10.255.14.80:65035; vrf-import hub; vrf-export spoke; protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface fe-0/1/0.0; } } } } }
스포크 PE 라우터 F에서 다음 라우팅 인스턴스를 구성합니다. 라우터 F는 OSPF를 사용하여 스포크 CE 라우터 CE2와 경로를 배포합니다.
[edit] routing-instance { Spoke-F-to-Hub { instance-type vrf; interface fe-1/0/1.0; route-distinguisher 10.255.14.182:65135; vrf-import hub; vrf-export spoke; protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface fe-1/0/1.0; } } } } }
PE 라우터에서 VPN 정책 구성
각 허브 앤 스포크 PE 라우터에서 VPN 가져오기 및 내보내기 정책을 구성하여 VRF 테이블에 적절한 경로를 설치해야 하며, 이를 사용하여 각 VPN 내에서 패킷을 전달합니다.
스포크 라우터에서 허브 라우터와 경로를 교환하는 정책을 정의합니다.
허브 라우터에서 스포크 PE 라우터의 경로를 수락하고 허브 CE 라우터에 배포하는 정책을 정의하며, 그 반대의 경우도 마찬가지입니다. 허브 PE 라우터에는 두 개의 VRF 테이블이 있습니다.
스포크 투 허브 VRF 테이블 - 스포크 라우터에서 수신된 경로를 처리하고 허브 CE 라우터에 이러한 경로를 발표합니다. 이 VRF 테이블의 경우, 가져오기 정책은 스포크 대상 이름이 존재하고 허브 PE와 스포크 PE 라우터 간의 IBGP 세션에서 경로가 수신되었음을 확인해야 합니다. 이 VRF 테이블은 경로를 내보내지 않아야 하므로 내보내기 정책은 모든 것을 거부해야 합니다.
허브 투 스포크 VRF 테이블 - 허브 CE 라우터에서 수신한 경로를 처리하고 스포크 라우터에 이를 발표합니다. 이 VRF 테이블의 경우 내보내기 정책은 허브 대상 커뮤니티를 추가해야 합니다. 이 VRF 테이블은 경로를 가져오지 않아야 하므로 가져오기 정책은 모든 것을 거부해야 합니다.
VPN 정책에서 VPN 대상 커뮤니티도 구성합니다.
허브 PE 라우터 D에서 VRF 테이블에 적용할 다음 정책을 구성합니다.
spoke
—커뮤니티 대상spoke
을 포함하는 스포크 PE 라우터와 IBGP 세션에서 수신한 경로를 수락하고 다른 모든 경로를 거부합니다.hub
—OSPF에서 수신된 모든 경로에 커뮤니티 대상 허브를 추가합니다(즉, 해당 경로와 허브 CE 라우터 간의 세션에서). 다른 모든 경로는 거부합니다.null
-모든 경로를 거부합니다.redistribute-vpn
-라우팅 인스턴스 내의 neighbor에 OSPF 경로를 재배포합니다.[edit] policy-options { policy-statement spoke { term a { from { protocol bgp; community spoke; } then accept; } term b { then reject; } } policy-statement hub { term a { from protocol ospf; then { community add hub; accept; } } term b { then reject; } } policy-statement null { then reject; } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }
라우터 D에 VRF 정책을 적용하려면 라우팅 인스턴스를 vrf-export
구성할 때 및 vrf-import
문을 포함합니다.
[edit] routing-instance { Spokes-to-Hub-CE { vrf-import spoke; vrf-export null; } Hub-CE-to-Spokes { vrf-import null; vrf-export hub; } }
스포크 PE 라우터 E 및 라우터 F에서 VRF 테이블에 적용할 다음 정책을 구성합니다.
hub
—커뮤니티 대상hub
을 포함하는 허브 PE 라우터와 IBGP 세션에서 수신한 경로를 수락하고 다른 모든 경로를 거부합니다.spoke
—OSPF에서 수신된 모든 경로에 커뮤니티 대상 스포크(즉, 허브 CE 라우터 간의 세션에서)가 다른 모든 경로를 거부합니다.redistribute-vpn
-라우팅 인스턴스 내의 neighbor에 OSPF 경로를 재배포합니다.
스포크 PE 라우터 E 및 라우터 F에서 다음 VPN 가져오기 및 내보내기 정책을 구성합니다.
[edit] policy-options { policy-statement hub { term a { from { protocol bgp; community hub; } then accept; } term b { then reject; } } policy-statement spoke { term a { from protocol ospf; then { community add spoke; accept; } } term b { then reject; } } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target 65535:2; }
스포크 라우터에 VRF 정책을 적용하려면 라우팅 인스턴스를 vrf-export
구성할 때 및 vrf-import
문을 포함합니다.
[edit] routing-instance { Spoke-E-to-Hub { vrf-import hub; vrf-export spoke; } } [edit] routing-instance { Spoke-F-to-Hub { vrf-import hub; vrf-export spoke; } }
라우터가 요약한 허브 앤 스포크 VPN 구성
라우터 D(허브 PE 라우터)
허브 CE로 스포크 경로 분산을 위한 라우팅 인스턴스
Spokes-to-Hub-CE { instance-type vrf; interface fe-0/0/0.0; route-distinguisher 10.255.1.174:65535; vrf-import spoke; vrf-export null; }
인스턴스 라우팅 프로토콜
protocols { ospf { domain-id disable; domain-vpn-tag 0; export redistribute-vpn; area 0.0.0.0 { interface ge-0/0/0.0; } } }
허브 CE 경로를 스포크로 분산하기 위한 라우팅 인스턴스
Hub-CE-to-Spokes { instance-type vrf; interface ge-0/0/1.0; route-distinguisher 10.255.1.174:65534; vrf-import null; vrf-export hub; }
라우팅 인스턴스 라우팅 프로토콜
protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface ge-0/0/1.0; } } }
라우팅 옵션(기본 인스턴스)
routing-options { autonomous-system 1 loops 1; }
프로토콜(기본 인스턴스)
protocols { }
LDP 활성화
ldp { interface so-1/0/0.0; interface t3-1/1/0.0; }
IBGP 구성
bgp { group Hub-to-Spokes { type internal; local-address 10.255.14.174; family inet-vpn { unicast; } neighbor 10.255.14.180; neighbor 10.255.14.182; } }
VPN 정책 구성
policy-options { policy-statement spoke { term a { from { protocol bgp; community spoke; } then accept; } term b { then reject; } } policy-statement hub { term a { from protocol ospf; then { community add hub; accept; } } term b { then reject; } } policy-statement null { then reject; } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }
라우터 E(스포크 PE 라우터)
라우팅 인스턴스
routing-instance { Spoke-E-to-Hub { instance-type vrf; interface fe-0/1/0.0; route-distinguisher 10.255.14.80:65035; vrf-import hub; vrf-export spoke; } }
인스턴스 라우팅 프로토콜
protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface fe-0/1/0.0; } } }
라우팅 옵션(기본 인스턴스)
routing-options { autonomous-system 1 loops 1; }
프로토콜(기본 인스턴스)
protocols { }
LDP 활성화
ldp { interface fe-0/1/2.0; }
IBGP 구성
bgp { group Spoke-E-to-Hub { type internal; local-address 10.255.14.180; neighbor 10.255.14.174 { family inet-vpn { unicast; } } } }
VPN 정책 구성
policy-options { policy-statement hub { term a { from { protocol bgp; community hub; } then accept; } term b { then reject; } } policy-statement spoke { term a { from protocol ospf; then { community add spoke; accept; } } term b { then reject; } } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }
라우터 F(스포크 PE 라우터)
라우팅 인스턴스
routing-instance { Spoke-F-to-Hub { instance-type vrf; interface fe-1/0/1.0; route-distinguisher 10.255.14.182:65135; vrf-import hub; vrf-export spoke; } }
인스턴스 라우팅 프로토콜
protocols { ospf { export redistribute-vpn; area 0.0.0.0 { interface fe-1/0/1.0; } } }
라우팅 옵션(기본 인스턴스)
routing-options { autonomous-system 1 loops 1; }
프로토콜(기본 인스턴스)
protocols { }
LDP 활성화
ldp { interface fe-1/0/0.0; }
IBGP 구성
bgp { group Spoke-F-to-Hub { type internal; local-address 10.255.14.182; neighbor 10.255.14.174 { family inet-vpn { unicast; } } } }
VPN 정책 구성
policy-options { policy-statement hub { term a { from { protocol bgp; community hub; } then accept; } term b { then reject; } } policy-statement spoke { term a { from protocol ospf; then { community add spoke; accept; } } term b { then reject; } } policy-statement redistribute-vpn { term a { from { protocol bgp; } then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }