1. 주요 개념
- VyOS
- CentOS
VyOS는 Debian GNU/Linux 기반의 오픈 소스 네트워크 운영 체제로 무료로 라우팅 플랫폼을 제공한다. 주요 기능은 아래와 같다.
- BGP (IPv4 and IPv6), OSPF (v2 and v3), RIP and RIPng, policy-based routing.
- IPsec, VTI, VXLAN, L2TPv3, L2TP/IPsec and PPTP servers, tunnel interfaces (GRE, IPIP, SIT), OpenVPN in client, server, or site-to-site modes, WireGuard.
- Stateful firewall, zone-based firewall, all types of source and destination NAT (one to one, one to many, many to many).
- DHCP and DHCPv6 server and relay, IPv6 RA, DNS forwarding, TFTP server, web proxy, PPPoE access concentrator, NetFlow/sFlow sensor, QoS.
- VRRP for IPv4 and IPv6, ability to execute custom health checks and transition scripts; ECMP, stateful load balancing.
- Built-in versioning.
위와 같이 다양한 라우팅 프로토콜과 다양한 VPN 프로토콜을 지원하고, 방화벽 기능도 있으며 DHCP와 IPv6 지원 등 라우터로서 사용되는 대부분의 기능을 지원한다. 또한 표준 amd64, i586 및 ARM 시스템에서 실행되기 때문에 클라우드 배포를 위한 라우터 및 방화벽 플랫폼으로 사용할 수 있다.
이 VyOS를 이용해 라우터로 연결된 소규모 네트워크를 구성하고 인터넷의 각종 서버를 구축하여 네트워크 동작을 확인이 가능하다. 실제 라우터로 구성하여 실습을 해볼 수 있다면 가장 이상적이지만 현실적으로 쉽지 않으므로 각종 공개 소프트웨어와 프로그램을 활용한다.
앞으로 진행될 네트워크 라우팅 프로토콜 실습에 사용될 주요 오픈 소스는 아래와 같다.
- CentOS
- VyOS
- Virtual Box
- Wireshark
- Apache
여기에 추가적으로 가능하다면 Packet Tracer도 사용을 권장한다.
우선 아래는 앞으로 진행하게 될 실습 환경 구성 순서이다.
- 토폴로지 구성
- VyOS 설치 및 세팅
- CentOS 설치 및 환경 설정
2. 토폴로지 구성
토폴로지를 알아보기 쉽게 우선 아래와 같이 Packet Tracer로 구성해 틀을 만든다.
우선 라우터를 3개 배치하고 3개의 서브넷으로 나눈다. 각각 라우터의 명칭은 편의상 10.0.0.1번 주소를 가진 라우터를 R1, 20.0.0.1번 주소를 가진 라우터를 R2, 30.0.0.1번 주소를 가진 라우터를 R3라 칭하고 네트워크 대역은 이들을 기준으로 위 그림과 같이 각각 R1, R2, R3네트워크라 칭한다.
다음으로 Virtual Box와 아파치의 설치 과정은 생략하고 가상 머신 안에서 라우터와 단말 장치의 기능을 하게 될 vyos와 우분투의 설치 과정부터 설명을 시작한다.
3. VyOS설치 및 세팅
3.1. 설치
이번 과정은 VyOS user guide의 절차에 따라 설치할 수 있다. 자세한 사항은 VyOS 홈페이지에서 확인할 수 있다.
초기 ID와 비밀번호는 vyos이다.
설치 완료 후 reboot를 해준다.
3.2. 주소 할당
아래 명령을 커맨드창에 입력하여 각 인터페이스에 주소를 할당시켜준다.
set interfaces ethernet eth0 address '201.172.1.1/24'
set interfaces ethernet eth1 address '10.0.0.2/24'
set interfaces ethernet eth2 address '20.0.0.1/24'
주소를 각 인터페이스에 할당하였으니 commit 후 save해준다.
show interfaces 명령을 통해 제대로 주소가 할당되었는지 확인해준다.
show interfaces
위와 같은 방식을 반복해 토폴로지 구성을 참조하여 R1, R2, R3 라우터를 만들어준다. 아래 그림의 왼쪽이 R2, 오른쪽이 R3 주소 할당 후 show interfaces를 수행한 결과이다.
4. CentOS 설치 및 환경 설정
절차에 따라 CentOS를 설치해준다. 나는 좀 옛날 버전을 사용했지만 최신 버전으로 사용해도 된다. 어차피 가상 머신에서 정적으로 IP 주소를 할당하는 부분은 크게 어렵지 않기 때문이다. 다만 추후에 서버 세팅하는 내용에서 일부 차이가 있을 수 있다. 우선 아래와 같이 각각의 장치에 정적(static, 고정)으로 IP주소를 할당해준다. 내가 알기론 요즘은 더 간편하게 GUI를 통해 설정할 수 있는 것으로 안다. 항상 이렇게 세팅을 해와서 이 당시에도 GUI로 세팅하는 방법이 있었는지는 기억이 잘 나지 않는다..
우선 해당 경로로 이동하여 아래 설정 파일 내용 대로 입력하고 저장해준다. 저장은 :wq이다.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=210.172.1.254
NETMASK=255.255.255.0
GATEWAY=210.172.1.1
- ONBOOT: 부팅 시 네트워크 자동 활성화
- BOOTPROTO: 수동/자동으로 할지 선택. 수동은 static, 자동은 dhcp
- IPADDR: IP 주소
- NETMASK: 서브넷마스크
- GATEWAY: 게이트웨이
설정파일을 잘 작성한 후 /etc/rc.d/init.d/network restart로 데몬을 재시작해주어 설정을 저장한다.
/etc/rc.d/init.d/network restart
ifconfig를 이용해 정적으로 각각의 말단 기기(End Device)의 IP가 잘 할당되었는지 확인해준다.
NAT를 내부 내트워크로 바꿔준다. 라우터와 각 서브넷들도 내부 네트워크로 변환해준다.
이렇게 하면 사전에 계획한 토폴로지대로 실습 환경 세팅이 끝난다. 현재 상태로는 각 라우터에 인접해있는 말단 기기로는 ping이 갈 것이고 다른 대역에 있는 말단 기기끼리는 ping이 가지 않을 것이다.
참고 자료
https://dev.classmethod.jp/articles/vyos-use-vpn-test/