Part 4: BGP 심화

지원 버전: Calico v3.29+ / Kubernetes 1.28+ 마지막 업데이트: 2026년 2월 23일

개요

BGP(Border Gateway Protocol)는 Calico의 핵심 차별화 요소입니다. Cilium과 같은 다른 CNI가 주로 eBPF와 오버레이 네트워크에 집중하는 반면, Calico는 BGP를 통한 네이티브 라우팅을 완벽하게 지원합니다. 이를 통해 온프레미스 데이터센터, 하이브리드 클라우드, 물리적 네트워크 인프라와의 깊은 통합이 가능합니다.

이 문서에서는 BGP의 기본 개념부터 Calico에서의 고급 BGP 구성까지 심층적으로 다룹니다.

BGP 기본 개념

BGP란?

BGP(Border Gateway Protocol)는 인터넷의 핵심 라우팅 프로토콜로, 자율 시스템(Autonomous System, AS) 간에 라우팅 정보를 교환합니다. 현재 BGP-4가 표준이며, RFC 4271에 정의되어 있습니다.

spinner

AS 번호 (Autonomous System Number)

AS 번호는 BGP에서 네트워크를 식별하는 고유 번호입니다.

범위
용도
설명

1-64495

공용 AS

IANA에서 할당, 인터넷 라우팅용

64496-64511

문서/예시용

RFC 5398에 예약

64512-65534

프라이빗 AS

내부 네트워크용 (Calico 권장)

65535

예약됨

사용 불가

65536-4199999999

4바이트 공용 AS

확장된 AS 번호 공간

4200000000-4294967294

4바이트 프라이빗 AS

대규모 내부 네트워크용

Calico에서의 AS 번호 사용 권장사항:

iBGP vs eBGP

BGP는 두 가지 모드로 운영됩니다:

특성
iBGP (Internal BGP)
eBGP (External BGP)

AS 관계

동일 AS 내

서로 다른 AS 간

TTL 기본값

255

1 (멀티홉 필요)

경로 전파

Full-mesh 또는 RR 필요

자동 전파

Next-hop

변경하지 않음

자신으로 변경

Administrative Distance

200

20

사용 사례

클러스터 내부

외부 라우터 연결

spinner

BGP 경로 선택 알고리즘

BGP는 여러 경로 중 최적의 경로를 선택하기 위해 다음 순서로 속성을 비교합니다:

spinner

주요 경로 속성 상세:

순서
속성
범위
설명

1

Weight

0-65535

Cisco 전용, 로컬 라우터만 적용

2

Local Preference

0-4294967295

AS 내 경로 선호도 (기본값: 100)

3

Locally Originated

-

로컬에서 생성된 경로 우선

4

AS Path Length

-

경유하는 AS 수

5

Origin

i/e/?

IGP(i) > EGP(e) > Incomplete(?)

6

MED

0-4294967295

Multi-Exit Discriminator

7

Path Type

eBGP/iBGP

외부 경로 우선

8

IGP Metric

-

내부 라우팅 메트릭

Calico BGP 아키텍처

Calico BGP 토폴로지

Full-Mesh 토폴로지

기본적으로 Calico는 모든 노드 간에 iBGP full-mesh를 구성합니다.

spinner

Full-Mesh BGP 세션 계산:

세션 수 = N × (N-1) / 2

노드 수
BGP 세션 수
확장성 평가

5

10

적합

10

45

적합

20

190

주의 필요

50

1,225

비권장

100

4,950

불가

200

19,900

불가

50개 이상의 노드에서는 Route Reflector 사용을 강력히 권장합니다.

Route Reflector 토폴로지

Route Reflector(RR)는 iBGP의 full-mesh 요구사항을 해결합니다.

spinner

Route Reflector 동작 원리:

  1. 클라이언트로부터 경로 수신: RR은 클라이언트 노드의 경로를 수집

  2. 경로 반사 (Reflection): 수집된 경로를 다른 클라이언트들에게 전파

  3. 루프 방지: Cluster ID와 Originator ID로 라우팅 루프 방지

Route Reflector 설계 권장사항:

클러스터 크기
RR 수
배치 전략

~100 노드

2-3

다른 가용 영역에 분산

~500 노드

3-5

다른 랙/가용 영역에 분산

~1000+ 노드

5+ 또는 계층형

계층형 RR 구조 고려

Route Reflector 구성

1. 노드 레이블 지정

2. BGPConfiguration 설정

3. Route Reflector 노드 설정

4. BGPPeer 설정

BGPPeer 리소스 상세

Global BGP Peer

모든 노드에 적용되는 BGP 피어 설정입니다.

Node-specific BGP Peer

특정 노드에만 적용되는 BGP 피어 설정입니다.

peerSelector를 사용한 동적 피어링

BGPConfiguration 리소스 상세

기본 설정

Service IP 광고 설정

Service IP 광고 사용 사례:

IP 유형
광고 권장
사용 사례

ExternalIP

필요 시

고정 외부 IP가 필요한 서비스

LoadBalancerIP

권장

MetalLB 대체, 온프레미스 LB

ClusterIP

비권장

외부에서 직접 클러스터 IP 접근 필요 시만

접두사 광고 및 커뮤니티 태깅

BGP 리스너 설정

물리 네트워크 통합

ToR (Top of Rack) 스위치 연동

Cisco IOS/NX-OS 설정 예시

Arista EOS 설정 예시

Spine-Leaf 아키텍처 통합

spinner

Calico 설정 (Spine-Leaf 통합)

BGP 보안

MD5 인증

BGP 세션에 MD5 인증을 적용하여 스푸핑 공격을 방지합니다.

접두사 필터링

외부 피어로부터 수신하는 경로를 제한합니다.

성능 튜닝

BGP 타이머 최적화

타이머 권장 값:

환경
Keepalive
Hold
사용 사례

안정적 네트워크

60s

180s

기본값, 대부분의 환경

빠른 장애 감지

10s

30s

고가용성 요구 환경

초고속 장애 감지

3s

9s

금융, 실시간 시스템

BFD 사용 시

60s

180s

BFD가 빠른 감지 담당

Graceful Restart

BGP 세션 재시작 시 트래픽 중단을 최소화합니다.

경로 집계 (Route Aggregation)

여러 개의 작은 경로를 하나의 큰 경로로 집계하여 라우팅 테이블 크기를 줄입니다.

BGP 디버깅

BIRD 상태 확인

Calico는 BIRD 라우팅 데몬을 사용합니다. birdcl 명령으로 상태를 확인할 수 있습니다.

라우팅 테이블 확인

BGP 피어 상세 정보

calicoctl을 통한 확인

멀티 데이터센터 BGP 설계

AS-per-Rack 설계 패턴

각 랙에 별도의 AS 번호를 할당하여 확장성을 높입니다.

spinner

AS-per-Rack Calico 설정

eBGP Between Racks 패턴

랙 간에 직접 eBGP 피어링을 설정하는 패턴입니다.

모범 사례 요약

BGP 설계 체크리스트

권장 아키텍처

클러스터 규모
권장 토폴로지
BGP 모드

< 50 노드

Full-mesh

iBGP

50-200 노드

Route Reflector (2-3개)

iBGP + RR

200-1000 노드

계층형 Route Reflector

iBGP + 계층형 RR

Multi-DC

AS-per-Rack 또는 AS-per-DC

eBGP + iBGP


참고 자료

이전: Part 3 - IPAM 및 IP Poolarrow-up-right | 다음: Part 5 - Network Policy 심화 | 메인 페이지로 돌아가기

마지막 업데이트