풀 메시 VPN
간단한 풀 메시 VPN 토폴로지 구성
이 예는 다음 구성 요소로 구성된 간단한 풀 메시 서비스 프로바이더 VPN 구성을 설정하는 방법을 보여줍니다( 그림 1 참조).
두 개의 개별 VPN(VPN-A 및 VPN-B)
VPN-A 및 VPN-B를 서비스하는 두 개의 프로바이더 에지(PE) 라우터
신호 프로토콜로서의 RSVP
하나의 프로바이더(P) 라우터를 통해 두 PE 라우터 사이를 터널하는 하나의 RSVP 레이블 스위칭 경로(LSP)
의 예
이 구성에서 라우터 VPN-A-Paris에서 라우터 VPN-A-Tokyo로의 VPN A 경로 배포는 다음과 같이 발생합니다.
고객 에지(CE) 라우터 VPN-A-Paris는 PE 라우터 라우터 A에 대한 경로를 발표합니다.
라우터 A는 수신된 공지된 경로를 VPN 라우팅 및 포워딩(VRF) 테이블인 VPN-A.inet.0에 설치합니다.
라우터 A는 라우터 VPN-A-Paris와 라우터 사이의 인터페이스에 대한 MPLS 레이블을 생성합니다.
라우터 A가 VRF 내보내기 정책을 확인합니다.
라우터 A는 경로 식별자를 사용하여 라우터 VPN-A-Paris의 IPv4(Internet Protocol version 4) 경로를 VPN IPv4 형식으로 변환하고, 두 PE 라우터 사이의 IBGP를 통해 PE 라우터 C에 이러한 경로를 알립니다.
라우터 C는 VRF 가져오기 정책을 확인하고 정책과 일치하는 모든 경로를 bgp.l3vpn.0 라우팅 테이블에 설치합니다. (일치하지 않는 경로는 폐기됩니다.)
라우터 C는 VRF 가져오기 정책을 확인하고 일치하는 모든 경로를 VPN-A.inet.0 라우팅 테이블에 설치합니다. 경로는 IPv4 형식으로 설치됩니다.
라우터 C는 CE 라우터 라우터 VPN-A-Tokyo에 대한 경로를 발표하며, 라우터 VPN-A-Tokyo는 이를 기본 라우팅 테이블에 설치합니다. (Junos OS를 실행하는 라우팅 플랫폼의 경우 기본 라우팅 테이블은 inet.0입니다.)
라우터 C는 라우터 A와 라우터 사이의 LSP를 사용하여 라우터 VPN-A-Tokyo에서 라우터 VPN-A-Paris로 향하는 모든 패킷을 라우팅합니다.
이 예의 마지막 섹션은 그림 1에 표시된 각 서비스 P 라우터에서 VPN 기능을 구성하는 데 필요한 문을 통합합니다.
이 예에서 프라이빗 AS(Autonomous System) 번호는 경로 식별자 및 경로 대상에 사용됩니다. 이 번호는 설명을 위해서만 사용됩니다. VPN을 구성할 때 할당된 AS 번호를 사용해야 합니다.
다음 섹션에서는 PE 및 P 라우터에서 VPN 기능을 구성하는 방법에 대해 설명합니다. CE 라우터에는 VPN에 대한 정보가 없으므로 정상적으로 구성합니다.
- PE 및 P 라우터에서 IGP 활성화
- P 라우터에서 RSVP 및 MPLS 활성화
- PE 라우터 간 MPLS LSP 터널 구성
- PE 라우터에서 IBGP 구성
- PE 라우터에서 VPN에 대한 라우팅 인스턴스 구성
- PE 라우터에서 VPN 정책 구성
- 라우터별로 요약된 간단한 VPN 구성
PE 및 P 라우터에서 IGP 활성화
PE 및 P 라우터가 서로 라우팅 정보를 교환할 수 있도록 하려면 이러한 모든 라우터에서 IGP(Interior Gateway Protocol)를 구성하거나 정적 경로를 구성해야 합니다. IGP는 VPN 라우팅 인스턴스 내(즉, 계층 수준이 아님[edit routing-instances])가 아닌 라우팅 프로토콜 프로세스(rpd)의 기본 인스턴스(즉, [edit protocols] 계층 수준)에서 구성합니다.
표준 방식으로 IGP를 구성합니다. 이 구성 예에는 구성의 이 부분이 포함되어 있지 않습니다.
P 라우터에서 RSVP 및 MPLS 활성화
P 라우터인 Router B에서는 RSVP 및 MPLS를 구성해야 합니다. 이 라우터는 두 PE 라우터, Router A와 Router C 사이의 MPLS LSP 경로에 존재하기 때문입니다.
[edit]
protocols {
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
}
PE 라우터 간 MPLS LSP 터널 구성
이 구성 예에서 RSVP는 VPN 시그널링에 사용됩니다. 따라서 RSVP를 구성하는 것 외에도 IGP에서 트래픽 엔지니어링 지원을 활성화하고 VPN 트래픽을 터널링하기 위해 MPLS LSP를 생성해야 합니다.
PE 라우터 A에서 RSVP를 활성화하고 MPLS LSP 터널의 한쪽 끝을 구성합니다. 이 예에서는 최단 경로 우선(OSPF)에 대한 트래픽 엔지니어링 지원이 활성화되어 있습니다. MPLS LSP를 구성할 때 PE 및 CE 라우터에 대한 인터페이스를 포함하여 MPLS에 참여하는 모든 인터페이스에 대한 문을 포함합니다 interface . PE 라우터가 프라이빗 인터페이스에 대한 MPLS 레이블을 생성할 수 있도록 PE와 CE 라우터 간의 인터페이스에 대한 문이 필요합니다. 이 예에서 첫 번째 interface 문은 LSP에 연결된 인터페이스에서 MPLS를 구성하고, 나머지 세 문은 PE 라우터를 CE 라우터에 연결하는 인터페이스에서 MPLS를 구성합니다.
[edit]
protocols {
rsvp {
interface so-3/0/0.0;
}
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
}
PE 라우터 C에서 RSVP를 활성화하고 MPLS LSP 터널의 다른 쪽 끝을 구성합니다. 다시 말하지만, 최단 경로 우선(OSPF)에 대해 트래픽 엔지니어링 지원이 활성화되며, LSP 및 CE 라우터의 인터페이스에서 MPLS를 구성합니다.
[edit]
protocols {
rsvp {
interface so-2/0/0.0;
}
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
}
PE 라우터에서 IBGP 구성
PE 라우터에서 다음 속성을 가진 IBGP 세션을 구성합니다.
VPN family—IBGP 세션이 VPN용임을 나타내려면 문을 포함합니다
family inet-vpn.루프백 주소 - 로컬 PE 라우터의 루프백 주소를 지정하는 명령문을 포함합니다
local-address. VPN에 대한 IBGP 세션은 루프백 주소를 통해 실행됩니다. 또한 계층 수준에서 인터페이스를[edit interfaces]구성해야lo0합니다. 이 예는 라우터 구성의 이 부분을 포함하지 않습니다.Neighbor address—루프백(
lo0) 주소인 이웃 PE 라우터의 IP 주소를 지정하는 명령문을 포함합니다neighbor.
PE 라우터 A에서 IBGP를 구성합니다.
[edit]
protocols {
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
}
PE 라우터 C에서 IBGP를 구성합니다.
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
}
PE 라우터에서 VPN에 대한 라우팅 인스턴스 구성
두 PE 라우터 모두 VPN-A 및 VPN-B를 서비스하므로, 각 라우터에서 각 VPN에 대해 하나씩 두 개의 라우팅 인스턴스를 구성해야 합니다. 각 VPN에 대해 라우팅 인스턴스에서 다음을 정의해야 합니다.
PE 라우터의 각 라우팅 인스턴스에 대해 고유해야 하는 경로 구분자.
하나의 VPN의 주소를 다른 VPN의 주소와 구별하는 데 사용됩니다.
PE 라우터에 VRF 테이블을 생성하는 의 인스턴스 유형
vrf입니다.CE 라우터에 연결된 인터페이스.
VRF 가져오기 및 내보내기 정책은 동일한 VPN을 서비스하는 각 PE 라우터에서 동일해야 합니다. 가져오기 정책에 문만
then reject포함되어 있지 않는 한, 커뮤니티에 대한 참조를 반드시 포함해야 합니다. 그렇지 않으면 구성을 커밋하려고 할 때 커밋이 실패합니다.메모:이 예에서 프라이빗 AS 번호는 경로 식별자에 사용됩니다. 이 번호는 설명을 위해서만 사용됩니다. VPN을 구성할 때 할당된 AS 번호를 사용해야 합니다.
PE 라우터와 CE 라우터 간의 라우팅은 PE 라우터가 연결된 CE 라우터와 VPN 관련 경로를 배포하는 데 필요합니다. 라우팅 프로토콜(BGP, OSPF 또는 RIP)을 구성하거나 정적 라우팅을 구성할 수 있습니다.
PE 라우터 A에서 VPN-A에 대한 다음 라우팅 인스턴스를 구성합니다. 이 예에서 라우터 A는 정적 경로를 사용하여 연결된 두 CE 라우터 간에 경로를 배포합니다.
[edit]
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
}
}
PE 라우터 C에서 VPN-A를 위한 다음 라우팅 인스턴스를 구성합니다. 이 예에서 라우터 C는 BGP를 사용하여 연결된 고객 에지(CE) 라우터와 경로를 주고받습니다.
[edit]
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
}
}
PE 라우터 A에서 VPN-B를 위한 다음 라우팅 인스턴스를 구성합니다. 이 예에서 라우터 A는 최단 경로 우선(OSPF)을 사용하여 연결된 고객 에지(CE) 라우터와 경로를 주고받습니다.
[edit]
policy-options {
policy-statement bgp-to-ospf {
from {
protocol bgp;
route-filter 192.168.1.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
ospf {
export bgp-to-ospf;
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
}
}
PE 라우터 C에서 VPN-B를 위한 다음 라우팅 인스턴스를 구성합니다. 이 예에서 라우터 C는 RIP를 사용하여 연결된 고객 에지(CE) 라우터로부터 경로를 배포합니다.
[edit]
policy-options {
policy-statement bgp-to-rip {
from {
protocol bgp;
route-filter 192.168.2.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
rip {
group PE-C-to-VPN-B {
export bgp-to-rip;
neighbor at-1/2/0;
}
}
}
}
}
PE 라우터에서 VPN 정책 구성
PE 라우터의 VRF 테이블에 적절한 경로가 설치되도록 각 PE 라우터에서 VPN 가져오기 및 내보내기 정책을 구성합니다. VRF 테이블은 VPN 내에서 패킷을 포워딩하는 데 사용됩니다. VPN-A의 경우 VRF 테이블은 VPN-A.inet.0이고 VPN-B의 경우 VPN-B.inet.0입니다.
VPN 정책에서 VPN 대상 커뮤니티도 구성합니다.
다음 예제에서는 경로 대상에 프라이빗 AS 번호가 사용됩니다. 이 번호는 설명을 위해서만 사용됩니다. VPN을 구성할 때 할당된 AS 번호를 사용해야 합니다. 이 예에 표시된 정책 한정자는 VPN이 작동하는 데 필요한 한정자입니다. 구성하는 모든 정책에 대해 필요에 따라 추가 한정자를 구성할 수 있습니다.
PE 라우터 A에서 다음 VPN 가져오기 및 내보내기 정책을 구성합니다.
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
PE 라우터 C에서 다음과 같은 VPN 가져오기 및 내보내기 정책을 구성합니다.
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
라우터에 VPN 정책을 적용하기 위해 라우팅 인스턴스를 구성할 때 및 vrf-import 문을 포함합니다vrf-export. 두 VPN 모두에 대해 VRF 가져오기 및 내보내기 정책은 PE 라우터 간에 실행되는 IBGP 세션에서 경로 배포를 처리합니다.
PE 라우터 A에 VPN 정책을 적용하려면 다음 문을 포함합니다.
[edit]
routing-instance {
VPN-A-Paris-Munich {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Madrid {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
PE 라우터 C에 VPN 정책을 적용하려면 다음 문을 포함합니다.
[edit]
routing-instance {
VPN-A-Tokyo {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Osaka {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
라우터별로 요약된 간단한 VPN 구성
라우터 A(PE 라우터)
VPN-A용 라우팅 인스턴스
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
인스턴스 라우팅 프로토콜
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
VPN-B에 대한 라우팅 인스턴스
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
인스턴스 라우팅 프로토콜
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
기본 프로토콜 인스턴스
protocols {
}
RSVP 활성화
rsvp {
interface so-3/0/0.0;
}
MPLS LSP를 구성합니다
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
IBGP를 구성합니다
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
트래픽 엔지니어링 지원을 위한 최단 경로 우선(OSPF) 구성
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
VPN 정책 구성
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
라우터 B(P 라우터)
기본 프로토콜 인스턴스
protocols {
}
RSVP 활성화
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
MPLS 사용
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
라우터 C(PE 라우터)
VPN-A용 라우팅 인스턴스
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
인스턴스 라우팅 프로토콜
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
VPN-B에 대한 라우팅 인스턴스
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
인스턴스 라우팅 프로토콜
protocols {
rip {
group PE-C-to-VPN-B {
neighbor at-1/2/0;
}
}
}
기본 프로토콜 인스턴스
protocols {
}
RSVP 활성화
rsvp {
interface so-2/0/0.0;
}
MPLS LSP를 구성합니다
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
IBGP를 구성합니다
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
트래픽 엔지니어링 지원을 위한 최단 경로 우선(OSPF) 구성
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
VPN 정책 구성
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
경로 리플렉터를 사용한 풀 메시 VPN 토폴로지 구성
이 예는 풀 메시 VPN 토폴로지 예( 간단한 풀 메시 VPN 토폴로지 구성에서 설명)의 변형으로, PE 라우터 중 하나가 BGP 경로 리플렉터입니다. 이 변형에서 간단한 풀 메시 VPN 토폴로지 구성 의 라우터 C는 경로 리플렉터입니다. 구성에 대한 유일한 변경 사항은 BGP 그룹을 구성할 때 문을 포함 cluster 해야 한다는 것입니다.
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
cluster 4.3.2.1;
}
}
}