FreeBSD, FRR, GRE 터널, 정책 라우팅을 활용한 나만의 자율 시스템 구축
자율 시스템(AS) 구축을 위한 FreeBSD 기반 BGP 라우터 설정 방법을 상세히 설명하며, IPv6 프리픽스(Prefix) 및 AS 번호(ASN) 획득 과정 포함
GRE/GIF 터널을 활용하여 원격 서버에 IPv6 주소를 할당하고, 정책 라우팅(Policy Routing)을 통해 이중 IP 주소 공간을 관리하는 방법 제시
커뮤니티에서는 RIPE의 연간 비용, DN42와 같은 대안, 실제 ISP 운영 경험 공유
비용 문제와 DN42와 같은 대안 네트워크에 대한 논의가 활발하게 진행됨
BGP 라우터 아키텍처 및 구성
게시글은 FreeBSD VM을 기반으로 하는 BGP 라우터 설정을 상세히 설명하며, 두 개의 업스트림(Upstream) 네트워크와의 연결을 위해 GRE 및 GIF 터널(Tunnel)을 사용한다. 특히, 라우터의 `/etc/rc.conf` 파일 설정을 통해 물리적 인터페이스, 터널 인터페이스, 그리고 정적 라우팅을 구성하는 방법을 제시한다. 또한, 블랙홀 라우팅(Blackhole Route)을 설정하여 할당되지 않은 서브넷 트래픽을 로컬에서 드롭(Drop)하도록 구성하는 것이 중요하다고 강조한다.
FRR(Free Range Routing) 설정 및 정책 라우팅
FRR을 사용하여 BGP 세션을 관리하고, `/usr/local/etc/frr/frr.conf` 파일을 통해 라우팅 정책을 정의한다. 접두사 목록(Prefix Lists)과 경로 맵(Route Maps)을 사용하여 트래픽 필터링 및 경로 선택을 제어하며, 특히 Bogon 필터링을 통해 잘못된 경로를 차단하는 것이 중요하다고 강조한다. 또한, 정책 라우팅(Policy Routing)을 통해 특정 트래픽을 다른 라우팅 테이블로 전송하여 이중 IP 주소 공간을 관리하는 방법을 제시한다.
Downstream 서버의 이중 FIB(Forwarding Information Base) 설정
Downstream 서버에서 이중 FIB(Forwarding Information Base)를 사용하여 BGP 주소와 제공업체(Provider) 주소 트래픽을 분리하는 방법을 설명한다. PF(Packet Filter) 규칙을 통해 BGP 주소 트래픽을 FIB 1으로, 제공업체 주소 트래픽을 FIB 0으로 라우팅하도록 설정한다. rtable 지시어를 사용하여 트래픽을 특정 라우팅 테이블로 전송하고, reply-to 지시어를 통해 응답 트래픽이 동일한 경로로 반환되도록 설정한다. 이를 통해, 데이터 격리 아키텍처(Data Isolation Architecture)를 구현한다.
MSS(Maximum Segment Size) 클램핑(Clamping)의 중요성
게시글은 터널 환경에서 MSS 클램핑(Clamping)의 중요성을 강조하며, 각 캡슐화 계층이 MTU(Maximum Transmission Unit)에 영향을 미치므로, 적절한 MSS 값을 설정해야 한다고 설명한다. 특히, PF의 scrub 규칙을 사용하여 각 터널 인터페이스에 대한 MSS 값을 계산하고 설정하는 방법을 제시한다. MSS 값을 잘못 설정하면, 대용량 패킷이 단편화되거나 드롭되어 통신 오류가 발생할 수 있다.