이 글은 네트워크 엔지니어가 아닌 데브옵스/SRE/서버/백엔드 엔지니어의 시점으로 정리했습니다. 저 또한 네트워크 엔지니어가 아니여서 내용이 다소 부족할 수 있습니다. 저는 우연히 AWS Site-to-Site VPN을 구축할이 있어 BGP를 간단히 공부했습니다.
이 글의 내용은 영상으로도 만나 볼 수 있습니다. 특히 BGP실습과정이 궁금하신 분은 영상을 참고하면 좋습니다.
https://youtu.be/gbFdVhkTCmQ?feature=shared
BGP프로토콜이란?
BGP는 라우팅 정보를 다른 라우터에게 공유하는 프로토콜입니다.
아래 예제를 보면 Router1은 192.168.100.0/24 정보를 Router2에게 넘깁니다. Router2는 공유받은 라우팅 정보 때문에 192.168.100.0/24대역으로 오는 트래픽을 Router1번으로 전달(라우팅)합니다.
BGP프로토콜 알고리즘
BGP는 인접한 라우터로부터 전달받은 경로 정보를 기반으로 최적의 경로를 결정합니다. 이를 경로기반 알고리즘이라고 합니다.
경로기반 방식에는 단점이 있습니다. 전달받은 라우팅 경로가 반드시 최단 경로는 아닐 수 있습니다. 사람이 보기에 더 빠른 경로가 있더라도, 라우터는 자신이 학습한 경로 정보를 기준으로 경로를 선택합니다
실습
실습은 docker compose로 진행했습니다. docker bridge로 IP대역을 분리했습니다. 그리고 라우터 역할을 하는 FRR컨테이너로 BGP프로토콜로 라우팅 정보를 공유했습니다. BGP프로토콜 덕분에 서로 다른 대역의 nginx docker 컨테이너가 서로 통신이 가능합니다.
실습자료와 실습방법은 저의 github에 정리했습니다. 그리고 영상에서도 실습과정을 자세히 설명합니다.
BGP프로토콜을 간단히 알면 좋은 점
데브옵스/SRE/서버/백엔드 엔지니어관점에서 BGP를 간단히 알면 클라우드 네트워크, 쿠버네티스 CNI 등 네트워크 분야에 도움이 됩니다. 클라우드 네트워크에서는 Direct connect, Site to Site VPN등에 BGP라는 선택옵션이 나옵니다. 쿠버네티스에서는 Calico CNI, MetalLB 등의 원리를 이해할 수 있습니다.
'전공영역 공부 기록' 카테고리의 다른 글
테라폼 data block을 강제로 써야하는 경우 (0) | 2025.03.23 |
---|---|
리눅스 디폴트 네트워크 인터페이스 조회방법 (2) | 2025.03.14 |
맥북(ARM)에서 influxDBv1 helm 차트 실행방법 (0) | 2025.03.11 |
helmfile - 여러 helm 차트를 한번에 관리하는 도구 (0) | 2025.03.09 |
Docker로 MySQL 컨테이너 실행 및 Sakila 샘플 데이터 불러오는 방법 (0) | 2025.03.08 |