베지밀

FRRouting : 오픈 소스 라우팅 이해하기 본문

Network

FRRouting : 오픈 소스 라우팅 이해하기

vegimil 2025. 6. 26. 14:41

최근 리눅스 기반 서버나 가상 머신, 컨테이너에서 강력한 라우팅을 구현하기 위한 오픈소스로 FRRouting(FRR)이 주목받고 있다.

 

 

🧩FRR이란?

FRR은 리눅스 및 유닉스 계열 운영체제에서 동작하는 무료 오픈소스 라우팅 프로토콜 스위트(suite)이다. 일반적인 서버나 가상 머신, 컨테이너 등에 설치되어 다양한 라우팅 프로토콜을 사용 가능하게 한다.

 

 

FRR은 과거 널리 사용되던 오픈소스 라우팅 프로토콜의 시초, Quagga를 포크하여 만들어졌다.

현재에는 Quagga 대신 FRR이 대중적으로 사용되고 있다.

FRR 서비스를 사용할 때 종종 quagga라는 디렉토리를 만나게 되니 참고하자.

 

 

🧩FRR 아키텍처의 핵심 = zebra 데몬

FRR 아키텍처에서 가장 중요한 역할은 바로 zebra 데몬이다.

zebra 데몬은 ospfd, bgpd 등 개별 라우팅 프로토콜 데몬들과 커널 라우팅 테이블 사이를 이어주는 중간 인터페이스 역할을 한다.

 

https://docs.nvidia.com/

 

각 라우팅 프로토콜 데몬들이 최적의 경로 정보를 계산하여 zebra에게 전달하면, zebra는 이를 취합하여 최종적으로 커널 라우팅 테이블에 반영한다.

OSPF로 예를 들면 SPF 계산은 ospfd가 하고 bgp, ospf 등의 프로토콜로부터 전달된 경로를 선택하는 건 zebra가 한다.

 

 

 

이 때, 각 데몬들은 자신만의 vty 터미널 인터페이스를 가지고 있는데, vtysh라는 셸 프로그램을 통해서 cli로 편리하게 사용할 수 있다. vtysh 셸에서는 스위치 명령어처럼 사용할 수 있다.

 

 

🧩RIB & FIB

라우팅 정보는 크게 두 단계로 관리된다.

  의미 관리 주체 설명
RIB
(Routing Information Base)
모든 후보 경로 테이블 zebra 데몬 OSPF, BGP, RIP 등 다양한 라우팅 프로토콜 데몬들로부터 받은 모든 경로 정보를 통합하여 관리한다.
실제 패킷 전달에 사용되지는 않는다.
FIB
(Forwarding Information Base)
실제 패킷 전달용 라우팅 테이블 리눅스 커널 zebra가 RIB에서 모든 경로를 비교하고 최적의 경로를 선택하여 커널의 라우팅 테이블(FIB)에 반영한다.
실제 패킷 포워딩은 FIB 정보를 기반으로 이루어진다.

 

 

 

 

 

 

이처럼 FRR은 모듈화된 구조와 다양한 프로토콜을 통해 ㄹ리눅스 기반 시스템에서 강력하고 유연한 라우팅 기능을 제공한다.

 

앞으로 가상 네트워크, 클라우드 네이티브 인프라, 컨테이너 기반 환경에서 경량화된 오픈소스 라우팅 솔루션으로서, FRR은 SDN(소프트웨어 정의 라우팅)의 핵심 구성요소로 활용될 것이다.