핵심 인사이트 (3줄 요약)

  1. 본질: BGP는 목적지까지 "가장 빠른 길"을 찾는 게 아니라, 회사 사장님이 지시한 "정치적/경제적 이익(Policy)"에 맞춰 트래픽을 꺾기 위해 Next_Hop, Local_Pref, AS_Path, MED 등 수십 가지의 속성(Attribute) 점수를 조작하는 거대한 속성 싸움판이다.
  2. 나가는 트래픽 통제 (Local_Pref): "우리 회사 직원들이 미국으로 나갈 때, 비싼 A 통신사 말고 요금이 싼 B 통신사 쪽으로 트래픽을 다 밀어 넣어!"라고 조작할 때 쓰는 가장 강력한 무기가 사내에서만 통용되는 **Local Preference (지역 선호도)**다.
  3. 들어오는 트래픽 통제 (MED, AS-Path): "외부 놈들이 우리 서버로 접속하러 쏟아져 들어올 때, 제발 좁은 1번 길 말고 넓은 2번 길로 들어오게 꼬셔보자!"라며 외부 국가들에게 뿌리는 미끼 점수가 바로 **MED(Multi-Exit Discriminator)**와 **AS-Path Prepending(경로 늘리기)**이다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: BGP가 수신된 여러 개의 경로 중 하나를 "Best Path"로 선택하기 위해 비교하는 일련의 파라미터(변수) 집합.

  • 필요성: 삼성전자(AS 100)가 인터넷을 쓰기 위해 KT 망(AS 200)과 SKT 망(AS 300)을 동시에 뚫어 놨다(멀티 호밍). KT는 대역폭이 빵빵하고 요금이 비싸며, SKT는 요금이 싸다. 만약 OSPF처럼 속도만 보고 길을 찾으면 트래픽이 비싼 KT로만 다 몰려서 삼성전자 파산한다. "야, 사내 직원들 유튜브 보는 트래픽은 싼 SKT 쪽으로 밀어 넣고, VIP 고객들이 접속하는 건 빵빵한 KT 쪽으로 들어오게 인위적으로 조작할 '수치 조작 다이얼(Attribute)'들이 필요하다!!"

  • 💡 비유: BGP의 Attributes는 게임 캐릭터의 **"스탯(능력치) 보드"**와 같습니다.

    • OSPF가 오직 '민첩성(대역폭)' 딱 하나만 보고 싸운다면, BGP 캐릭터는 '힘(Weight)', '지능(Local_Pref)', '운(MED)', '체력(AS-Path)' 등 수십 개의 복잡한 스탯을 가집니다. 라우터는 위에서부터 순서대로 스탯을 하나씩 대결시켜서 최종 승자(Best Path)를 결정합니다.

📢 섹션 요약 비유: BGP 속성값들은 무역 회사 사장님의 **"결재 서류 결재 우선순위"**입니다. 단순히 배송이 빠른 택배사(최단 거리)를 고르는 게 아니라, 리베이트를 많이 주는 곳(Local Pref), 평소 거래를 튼 곳(Weight), 서류 절차가 짧은 곳(AS-Path) 등 온갖 꼼수 점수를 매겨 가장 이문이 남는 택배사를 골라잡는 냉혹한 비즈니스 룰입니다.


Ⅱ. BGP Best Path 선출 알고리즘 5대천왕 (Deep Dive)

라우터가 목적지(미국 구글)로 가는 여러 길을 받았을 때, 무조건 아래 1번부터 순서대로 점수를 대결시켜 하나라도 이기면 즉시 승리(Best Path)로 채택한다. (순서 암기 필수).

1순위. Weight (시스코 전용, 높을수록 승리)

  • 시스코 라우터 안에서만 혼자 끄적거리는 개인 일기장이다. 이웃에게 안 알려준다.
  • "내가 보기엔 1번 포트가 짱이야!" 하고 관리자가 Weight 3000을 박아놓으면 무조건 그 길이 이긴다.

2순위. Local Preference (사내 전체 통제, 높을수록 승리) ★아웃바운드 제어

  • 사내(iBGP)에 있는 모든 라우터들에게 공유되는 강력한 룰이다. (기본값 100).
  • "야 동네 사람들! 밖으로(Outbound) 나갈 땐 무조건 KT(Local Pref 200) 쪽 관문으로 몰아 쏴라!"
  • 밖으로 나가는 트래픽을 꺾고 싶을 때 가장 흔히, 가장 확실하게 쓰는 1티어 튜닝 다이얼이다.

3순위. 내가 직접 네트워크를 쳤는가? (Originate)

  • 내가 직접 network 명령어로 올린 경로가, 남한테 배워온 경로보다 무조건 이긴다.

4순위. AS-Path (거쳐 온 나라 개수, 짧을수록 승리) ★인바운드 제어

  • 여권에 찍힌 도장의 개수다. 거쳐 온 국가(ASN)의 개수가 가장 적은 놈이 이긴다.
  • AS-Path Prepending 꼼수: 외부에서 우리 쪽으로 들어오는(Inbound) 트래픽을 A길로 유도하고 싶을 때 쓴다. B길 쪽으로 엽서를 뿌릴 때 내 ASN 도장을 AS 100, 100, 100, 100 식으로 4번이나 중복해서 찍어 보낸다. 상대방은 "헐, B길은 거쳐 갈 나라가 4개나 되네? 조낸 머네? A길로 가야지!" 하고 낚이게 된다.

5순위. MED (Multi-Exit Discriminator, 낮을수록 승리) ★인바운드 제어

  • 이웃 국가(eBGP)에게 "우리 집 문이 2개 있는데, 1번 문(MED 10)이 2번 문(MED 20)보다 들어오기 편하니까 1번 문으로 들어오렴~" 하고 미끼(Hint)를 던지는 속성이다.
  • 단, 상대방 국가가 이 미끼를 씹어버리고 "내 맘대로(Local Pref) 보낼 건데?" 하면 강제할 방법은 없다.
 ┌─────────────────────────────────────────────────────────────┐
 │                인바운드 / 아웃바운드 트래픽 제어의 정수            │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 우리 회사 (AS 100) ]                 [ KT (AS 200) ]     │
 │        (문 A) ◀─────── (들어오게 꼬시기) ──────── (문 A)       │
 │        (문 B) ───────▶ (나가도록 몰빵하기) ───────▶ (문 B)       │
 │                                                             │
 │   1. "직원들이 나갈 땐 무조건 문 B로 나가라!" (아웃바운드 통제)        │
 │      ▶ 우리 회사 라우터들에 [ Local_Pref ] 값을 B 쪽에 몰아준다. │
 │                                                             │
 │   2. "손님들이 들어올 땐 무조건 문 A로 들어오게 꼬셔라!" (인바운드 통제)  │
 │      ▶ KT한테 엽서 줄 때, A문은 [ AS-Path 1번 ], B문은 [ AS-Path │
 │        10번 ] 찍어서 사기를 친다. KT는 속아서 A문으로만 데이터를 준다.│
 └─────────────────────────────────────────────────────────────┘

6. Next_Hop 속성의 주의점

BGP에서 Next_Hop(다음 징검다리 IP)은 OSPF와 조금 다르다. eBGP로 남의 나라에서 엽서를 받아 iBGP 식구들에게 돌릴 때, "Next_Hop 주소를 나(관문)로 바꾸지 않고, 남의 나라 라우터 IP를 그대로 살려서 뿌려버린다". 그러면 내부 식구들은 그 IP가 어딘지 몰라서 길이 끊긴다. 그래서 관문 라우터는 반드시 next-hop-self라는 명령어를 쳐서 "야야, 모르는 주소 찾지 말고 일단 나한테 쏴!"라고 엽서를 고쳐서 뿌려야만 망이 정상 작동한다.

📢 섹션 요약 비유: BGP 속성은 카지노의 **"포커 패"**입니다. Weight(포카드)가 있으면 무조건 이기고, 그게 없으면 Local Pref(풀하우스), 그것도 없으면 AS-Path(스트레이트) 순서대로 패를 까서 가장 높은 카드를 쥔 경로 하나가 판돈(트래픽)을 모두 쓸어가는 냉혹한 도박판입니다.