Networking, Security, Protocols

AS, BGP(Border Gateway Protocol)란?

Somaz 2022. 9. 19. 15:04
728x90
반응형

Overview

오늘은 BGP(Border Gateway Protocol), 즉 인터넷 상에서 AS(Autonomous System) 간 경로를 교환하고 선택하는 데 사용되는 경로 벡터 기반의 라우팅 프로토콜에 대해 학습했다.

 

이 과정에서 먼저 AS(자율 시스템)의 개념을 살펴보았고, 내부 라우팅 프로토콜(IGP)과 외부 라우팅 프로토콜(EGP)의 차이점도 이해할 수 있었다.

 

특히 BGP는 인터넷의 거대한 규모와 복잡성을 감당하기 위한 정책 기반 라우팅, Path Attribute 분석, 멀티홈 구성, Prefix 필터링, Loop 방지 메커니즘 등 다양한 기능과 특성을 갖추고 있으며, 실제로 오늘날 대부분의 인터넷 라우팅은 BGP 위에서 이루어지고 있다.

 

 

또한 iBGP와 eBGP의 차이, AS_PATH, NEXT_HOP, LOCAL_PREF 등 Path Attribute 기반 경로 선택 알고리즘, 그리고 BGP 트러블슈팅 및 보안까지 실무에서 유용한 부분들도 함께 정리하였다.

 

 

 

 

 

 

 


 

 

 

 

AS란?

AS란 'Autonomous System(자율 시스템)' 의 약자로 하나의 네트워크 관리자에 의해서 관리되는 라우터의 집단, 하나의 관리 규정 아래서 운영되는 라우터의 집단, 또는 하나의 관리 전략으로 구성된 라우터의 집단이다.

 

 

 

 

내부용 라우팅 프로토콜(Interior Routing Protocols)

  • AS 안에서 라우터들끼리 라우팅 정보를 주고받기 위해 라우터가 사용하는 프로토콜
  • 종류: RIP, IGRP, EIGRP, OSPF

외부용 라우팅 프로토콜 (Exterior Routing Protocols)

  • AS와 AS간 외부에서 서로 라우팅 정보를 주고 받기 위해 라우터가 사용하는 프로토콜
  • 종류: EGP, BGP (요즘은 EGP 보다 BGP를 사용하는 추세)

 

 

 

 

 


 

 

 

 

AS의 필요성

라우터가 가지는 정보를 효율적으로 관리하고 인터넷 서비스를 좀더 간편하게 할수 있다.

 

AS안에 있는 라우터들은 자신의 AS에 속해있는 라우터에 대한 내부 네트워크 정보만 알고 있다가 외부, 즉 AS 밖으로 나갈때는 그 AS의 문지기 라우터 ASBR (Autonomous System Boundary Router)에게 정보를 물어본후 외부 인터넷으로 나가게 되는 것이다.

 

문지기 라우터 ASBR은 자신의 AS와 인접해 있는 다른 AS에 대한 정보를 가지고 있으면서 자기 AS에서 밖으로 나가는 라우터나

 

외부 AS에서 자기 AS쪽으로 들어오는 라우터에게 정보를 제공하는 역할을 한다.

 

이러한 시스템 때문에 라우터들은 인터넷에 접속하더라도 전 세계의 모든 네트워크에 대한 정보를 다 가지고 있을 필요없이

 

단지 자신이 속한 AS에 대한 정보만 가지면 되는 것이다.

 

이때 라우터가 AS 내부에서 사용하는 라우팅 프로토콜을 내부용 라우팅 프로토콜(Interior Routing Protocols) 또는 IGP 라고 하고,

 

AS 간에, 즉 AS 외부에서 서로 라우팅 정보를 주고 받기 위해 사용 하는 라우팅 프로토콜을 외부용 라우팅 프로토콜 (Exterior Routing Protocols) 또는 EGP 라고 한다.

 

 

 

 

 

 


 

 

 

 

BGP란?

BGP는 Border Gateway Protocol이다. AS의 가장자리에 위치한 BG(Border Gateway)들 간의 프로토콜을 BGP라고 한다.

 

따라서 모든 BGP 프로토콜이 서로 다른 AS들을 연결해주는 것이아니다.

 

그래서 물론 다른 AS들에 속한 BG간의 연결에도 관여하지만, 같은 AS 내의 BG 간의 연결에도 관여한다. 이러한 역할의 차이에 따라 BGP는 크게 두가지로 구분된다.

 

 

1. iBGP

서로 같은 AS 상의 Border Gateway들 끼리의 연결을 담당하는 BGP

 

 

 

2. eBGP

서로 다른 AS 상의 Border Gateway들 끼리의 연결을 담당은 BGP, inter-AS 라우팅이다.

 

 

 

 

 

또한 BGP 라우터는 AS 피어링 계약에 설정된 의사 결정 알고리즘과 정책을 사용해서 프리픽스 선언을 통해 수집하는 데이터를 분석하고 그 시점에 각 패킷 스트림을 보낼 최적의 피어를 선택한다.

 

대부분의 경우 네트워크 홉의 수가 가장 적은 경로가 선택되지만, 혼잡과 지연으로 인해 더 긴 경로의 속도가 더 빠를 수도 있다.

 

트래픽이 AS를 통과해 이동하여 다른 AS에 연결된 다른 BGP 라우터에 도달하면 데이터가 목적지 사이트가 위치한 AS에 도달할 때까지 이 프로세스가 반복된다. 

 

TCP 포트 179번을 사용하고 유니캐스트 방식으로 교환한다.

 

 

IGP와 다르게 직접 연결되어 있지 않은 장비와 BGP Peer(Neighbor) 관계를 형성하는 것이 가능하다.

  • 유니캐스트(1:1)
    • 출발지와 목적지가 정확해야하는 일대일 통신
    • 송신 노드 하나가  수신노드 하나에 데이터를 전송하는 일대일 방식
  • 브로드캐스트(1:All)
    • 내가 속한 네트워크 내의 모든 장비들과 통신을 하는 방식
    • 개별 PC의 성능에도 영향을 미치고, 네트워크 전체적인 트래픽에도 영향을 미침
  • 멀티캐스트(1:Group)
    • 특정 일부에게 정보를 동시에 보내야 하는 경우 사용 (ex 10명중 8명)
    • 선택적으로 데이터를 전송하여 불필요한 트래픽이나 성능저하를 막음
  • 애니캐스트(1:1)
    • 가장 가까운 노드와 통신하는 방식
    • 유니캐스트와 차이점은 송신 노드가 네트워크에 연결된 수신 가능한 노드 중 한 노드에만 데이터를 전송

 

 

 

 

 


 

 

 

BGP 역할 및 우선순위

 

역할

BGP의 역할은 쉽게 말해보자면, 주변의 여러 라우터들에게 어떤 라우터가 어느 AS에 속해 있는지에 대한 정보를 소문 내는 것이다.

서로 다른 AS에 존재하는 IP주소로도 쉽게 패킷을 전달할 수 있는것이 다 BGP 때문이다. 

 

우선순위

  • BGP Next-Hop 까지 IGP 메트릭이 가장 작은 경로
  • 높은 Local Preference
  • 같은 AS 내의 라우터에서 생성된 Route
  • AS-Path들 중 가장 짧은 경로를 선택
  • Origin type 중 가장 작은 값 (IGP < EGP < Incomplete)
  • 가장 낮은 값은 MED

 

 

 


 

 

 

 

 

BGP 특징 (요약 정리)

항목 설명
프로토콜 타입 Path Vector Protocol
동작 계층 네트워크 계층(Layer 3)
포트번호 TCP 179
Peer 관계 직접 연결 없이도 Peer 형성 가능
라우팅 정책 정책 기반 라우팅 지원
Path Attribute 다양한 속성 기반 경로 선택 (AS_PATH, NEXT_HOP 등)
스케일 인터넷 전체 라우팅 테이블 처리 가능 (수십만~수백만 라우트)

 

 

 

 

BGP 메시지 종류 (필수 암기 포인트)

BGP는 Peer 간에 다음 4가지 메시지를 주고받으며 작동한다.

메시지 타입설명
Open Peer 관계 수립 요청
Update 라우팅 정보 전달
Keepalive Peer 관계 유지 확인 (헬스체크)
Notification 에러 발생 시 전송 (세션 종료 등)

 

 

 

 

 

BGP Path Attribute 상세 설명

BGP 경로 선택 시 중요한 속성(Path Attribute)이다. 아래 표처럼 정리하면 이해가 쉬워진다.

속성 필수여부 설명
AS_PATH 필수 경로를 거친 AS 목록
NEXT_HOP 필수 다음 홉 주소 (다음 라우터)
LOCAL_PREF 선택 AS 내부 우선순위
MED (Multi-Exit Discriminator) 선택 AS 간 경로 비교 값
COMMUNITY 선택 특정 정책 그룹화 태그
ORIGIN 필수 경로 생성 출처 (IGP, EGP, Incomplete)

 

 

 

 

BGP 동작 흐름 예시

아래 순서대로 작동하는 흐름을 쉽게 설명하면 초보자도 이해하기 좋다.

  1. Neighbor 설정 (Peer 관계 구성)
  2. Open 메시지 교환 (Session 수립)
  3. Keepalive 메시지 주기적 교환 (연결 유지)
  4. Update 메시지 수신 (라우팅 정보 학습)
  5. Path Selection 알고리즘 적용 (최적 경로 선택)
  6. FIB(Forwarding Information Base) 업데이트

 

 

 

BGP vs IGP 비교

구분 BGP IGP (OSPF, EIGRP 등)
대상 AS 간 (Inter-AS) AS 내부 (Intra-AS)
프로토콜 타입 Path Vector Link-State, Distance Vector
속성 정책 기반 (Path Attribute) 메트릭 기반
스케일 매우 큰 규모 (인터넷 전체) 상대적으로 소규모
수렴 속도 느림 빠름
 
 
 
 

BGP Loop Prevention 메커니즘 설명

BGP는 라우팅 루프를 방지하기 위해 AS_PATH 를 활용한다.

  • 라우팅 정보에 거쳐온 AS 정보를 포함
  • 동일한 AS를 두 번 지나면 해당 경로 폐기 (Loop 방지)

 

 

 

 

BGP 주요 시나리오 (운영 팁)

시나리오 설명
멀티홈 구성 ISP 2개 연결 (Multi-Homing)
백업 회선 구성 메인 회선 장애 시 백업 회선 경로 선택
Prefix Filtering 특정 경로 수신/전송 차단
Community Tagging 트래픽 우선순위 지정 및 라우팅 제어
Route Aggregation 여러 경로를 하나로 요약해 전파 (프리픽스 절감)

 

 

 

 

BGP 트러블슈팅 필수 명령어

명령어 설명
show bgp summary Peer 상태 확인
show ip bgp 라우팅 테이블 확인
show ip bgp neighbors Neighbor 상세 상태 확인
debug ip bgp 실시간 패킷 흐름 분석

 

 

 

BGP 보안 고려사항

보안 항목 설명
Prefix Filtering 승인된 Prefix만 수신
TTL Security BGP TTL 제한 (멀리서 온 BGP 패킷 차단)
MD5 Authentication BGP 세션 인증 강화
RPKI (Resource Public Key Infrastructure) 경로 인증 및 검증 강화

 

 

 


 

 

 

 

마무리

오늘은 인터넷의 핵심 프로토콜인 BGP에 대해 공부해봤다.
BGP는 단순한 라우팅 프로토콜이 아니라, 전 세계 인터넷을 연결하는 핵심 기술이다.
특히 최근 클라우드, 데이터센터, Bare-Metal Kubernetes 환경에서도 BGP는
대규모 트래픽을 효율적으로 처리하고, 장애 복구 시간을 최소화하는 필수 기술로 자리 잡았다.

  • 인터넷과 네트워크의 핵심, BGP의 세계로 더 깊이 들어가보자!

 

 

 

 

 


 

 

Reference

https://datatracker.ietf.org/doc/html/rfc4271

https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13751-21.html

https://metallb.universe.tf/configuration/bgp/

 

 

 

728x90
반응형

'Networking, Security, Protocols' 카테고리의 다른 글

CDN이란?  (2) 2022.11.11
Vault란?  (0) 2022.10.11
DNS 레코드와 tinydns 문법  (0) 2022.04.22
Mail Server  (0) 2022.02.17
Apache HTTP + HTTPS 설정 및 SSL 적용  (0) 2022.02.11