개요
이번 과제는 vpn(cisco에서는 vrf)을 사용하여 같은 장비를 타지만 서로 분리된 망을 구성하는 과제이다.
a1 P a2
\ / \ /
b1 - PE PE - b2
/ \ / \
c1 P c2
이런 환경에서 a1-a2, b1-b2, c1-c2 간은 통신이 되면서, a/b/c 상호 간은 통신이 안되도록 구성하면 된다.
즉, a1-a2는 핑이 되면서 a1-b1으로는 핑이 안되도록 하면 되는 과제이다.
단 a/b/c의 고객사 측 장비(이하 CE)에서는 최소한의 설정만 들어가도록 구성해야 하며, a-PE는 static으로, b-PE는 ospf로, c-PE는 bgp로 연결해야 한다.
vpn 기능을 이용하여 구성해 보고, 같은 구성으로 mpls를 이용해서 구현하면 되는 과제이며, 먼저 vpn과 mpls에 대해서 설명하고 과제 진행으로 넘어가려고 한다.
VPN 이란?
동일한 기능이 cisco에서는 VRF라고 부르는데(따라서 업계에서도 이 기능을 VRF라고 부르는데) 뜻은 대동소이하다. VPN은 Virtual Private Network의 약어이고, VRF는 Virtual Routing and Forwarding의 약어로, 하나의 망에서 가상의 네트워크나 라우팅을 구축하는 기능을 의미한다.
이 기능이 왜 필요할까를 생각해 보려면 군대의 "군 임대망"(정식 명칭을 모름)을 생각해 보면 쉽다. 해당 임대 회선은 상급부대의 스위치에서 나온 패킷을 ISP 회선을 임대하여 예하 부대에 전달되는 구조이다. 그래서 통신구에 장애가 발생하면 해당 망을 임대하여 쓰던 부대에서 인트라넷이 안 되는 상황이 발생한다. 이건 사고니까 어쩔 수 없지만, 인트라넷에서 외부의 ISP 장비를 거친다는 게 문제가 되진 않을까? 임대료를 엄청 많이 내는 게 아니라면 KT가 군 전용 장비와 광 케이블을 따로 설치해주진 않았을 테니(나중에 하긴 했지만), 외부와 연결이 되는 문제가 있진 않을까?
이럴 때 사용하는 것이 VRF/VPN으로, 외부와 통신이 되면 안 되지만 물리적으로 떨어진 구간에서 전용선 없이 ISP의 장비를 활용하여 사설망처럼 통신을 할 수 있도록 지원하는 데에 사용한다. 라우팅 테이블을 분리하여 외부에서 해당 vpn 내 ip와 경로를 알 수 있는 방법이 없도록 하여 망 분리를 보장하고, 필요시 외부에서 연결할 수 있는 서버를 만들어서 재택/원격 근무 시 망에 접근할 수 있도록 구성할 수 있다.
MP-BGP
Multi Protocol BGP의 약자로, 말 그대로 다양한 프로토콜과 주소체계를 지원하는 BGP의 확장 버전을 의미한다. ipv4, ipv6, vpnv4, vpnv6, mvpn 등의 프로토콜을 지원하며 이 과제에서 사용해 볼 프로토콜은 vpnv4이다. 이는 ipv4 기반의 가상 사설 네트워크(Virtual Private Network)를 의미하며, MPLS VPN 환경에서 경로 구분을 위해 사용되는 주소 체계이다.
과제에서는 PE(Provider Edge)에서 CE(Customer Edge)와 연결된 인터페이스에 vpn-instance를 bind 하여, 고객사 측 장비에는 최소한의 설정만 들어가도록 한다는 규칙을 준수한 채로(실제로 인터페이스 ip와 loopback ip와 PE와 연결하는 라우팅 설정만 넣은 상태로) 망 분리를 구현할 수 있다.
그 상태로 MPLS를 사용하면 터널을 연결하여 바로 대국 장비까지 보낼 수 있어서 그걸 MPLS 과제에서 해보게 될 것이고, VPN 과제에서는 RD/RT 설정을 통해 PE1에서 VRF(VPN)을 이용하여 망을 분리하고, 그걸 PE2에서는 RD/RT 설정을 보고 다시 CE-a/b/c 에 분리해서 넣어주는 구조를 구현하게 될 것이다.
RD/RT
RD(Route Distinguisher)는 서로 다른 사설망 사이에 IP를 구별하기 위한 식별자이다. 만약에 A 사설망 내 지점과 B 사설망 내 지점이 서로 같은 아이피를 사용한다면, 둘은 논리적으로 다른 망이지만 같은 아이피를 사용해서 생길 수 있는 문제를 라우팅 할 때 RD 값을 이용하여 해결한다(ex. 65000:1:192.168.0.1)
RT(Route Target) 은 VRF(VPN) 간에 어떤 경로를 내보내고, 받아들일지를 결정하기 위한 키이다. bgp 라우팅 경로를 export 할 때 RT 태그를 붙여서 내보내고, 받는 장비에서 해당 태그를 import 할 수 있게 해 주면 해당 태그가 붙은 vpn 정보를 받아들일 수 있게 되는데, 그때 사용하는 식별자이다.
MPLS
mpls(Multi-Protocol Label Switching)는 패킷 포워딩 시에 목적지 ip를 routing table에서 찾아서 전달하는 것이 아닌 패킷의 라벨을 보고 결정하는 방식이다. 패킷 앞에 20비트의 라벨을 붙여 다른 장비들이 해당 라벨을 보고 사전에 정의된 테이블로 바로 전송하도록 하여 더 빠르고 유연하게 경로를 설정할 수 있다.
특히 vpn 환경에서 ip routing 방식을 사용하려면 연결된 중간 경로 장비 전체에 vpn 설정을 해주지 않고는 망 분리가 불가능하기 때문에 네트워크 확장성 및 복잡도 측면에서 매우 비효율적이지만, mpls 설정을 통해 전송을 하면 중간 장비들(과제에선 P)은 vpn에 대한 정보 없이 mpls에 관련된 설정만 되어있으면, 라벨만 보고 전송하도록 구현할 수 있어서 vpn 경로가 외부로 노출되지 않도록 하여 보안성도 함께 높일 수 있다.
과제에서 사용하는 MPLS LDP는 인접한 라우터끼리 세션을 생성하고 해당 세션을 통해 ip 기반 라우팅 경로 위에 해당 패킷이 어디로 가야 하는지 저장한 다음 라벨을 보고 next-hop으로 포워딩한다. 따라서 목적지가 고정되어 있고 경로가 비교적 안정적인 환경에서 별도의 트래픽 엔지니어링 없이 자동으로 경로를 설정하는 LDP 가 효과적으로 사용될 수 있다.
결론
이 과제를 통해 우리는 VPN(VRF)와 MPLS LDP를 직접 구성해 보며, 동일한 물리 장비를 사용하되 논리적으로 완전히 분리된 네트워크를 만드는 방법을 학습할 것이다..
VPN 기반 구성에서는 RD/RT, vpn-instance를 통해 망을 분리해야 하며, MPLS LDP 기반 구성은 각 라우터가 목적지에 대한 라벨을 동적으로 학습하고, 중간 라우터는 단순히 라벨을 스왑 하면서 목적지까지 전달하도록 구성할 것이다.
이를 통해 고객 장비(CE) 설정을 최소화하면서 통신망 전체의 분리와 보안을 확보하는 기술을 익히고, 각 기술 간의 장단점을 파악하는 학습을 할 수 있을 것으로 기대한다.
'프로그래밍 > 네트워크' 카테고리의 다른 글
[화웨이] 네트워크 과제 10 - MPLS LDP 과제 진행 (0) | 2025.07.07 |
---|---|
[화웨이] 네트워크 과제 9 - vpn-instance 과제 진행 (0) | 2025.07.03 |
[화웨이] 네트워크 과제 7 - 장비소개서 작성 (1) | 2025.06.01 |
[화웨이] 네트워크 과제 6 - BGP 과제 진행 (3) | 2025.05.21 |
[화웨이] 네트워크 과제 5 - BGP 학습 (1) | 2025.05.21 |