IT/ㄴ Cisco

[CISCO] BGP 기본

TIENE 2025. 1. 11. 16:17
반응형

1. BGP의 정의와 역할

BGP는 Border Gateway Protocol의 약자로, 인터넷에서 사용되는 가장 중요한 라우팅 프로토콜 중 하나다. BGP는 자율 시스템(Autonomous System, AS) 간의 경로 정보를 교환하고, 네트워크 경로를 선택하며, 인터넷과 같은 대규모 분산 네트워크에서 안정성을 유지하는 데 핵심적인 역할을 한다.

학문적 정의와 특성

  • 경로 벡터 프로토콜(Path Vector Protocol): AS 간의 경로 정보를 속성(Attribute) 형태로 교환하며, 이는 라우팅 루프 방지에 기여한다.
  • TCP 기반 세션: BGP는 TCP 포트 179를 통해 세션을 설정하며, 이를 통해 신뢰성과 전달 보장을 제공한다.
    • TCP를 사용한다는 것은 반드시 Neighbor Router가 인접할 필요(Next-Hop일 필요) 없다는 의미

  • 상태 기반 동작: Finite State Machine(FSM)을 기반으로 작동하며, Idle, Connect, OpenSent, OpenConfirm, Established의 다섯 가지 상태를 순환한다.

역할

  • 인터넷의 전반적인 경로 설계와 최적화.
  • 다중 ISP 연결을 사용하는 네트워크에서의 경로 관리.
  • 트래픽 최적화를 위한 정책 기반 라우팅 구현.

2. BGP의 확장과 복잡성

BGP의 확장 메커니즘

  1. MP-BGP (Multiprotocol BGP)
    • IPv4뿐만 아니라 IPv6, MPLS, L2VPN, L3VPN 등을 지원하기 위해 확장된다.
    • MP_REACH_NLRI와 MP_UNREACH_NLRI 속성을 사용하여 다중 주소 패밀리를 처리한다.
  2. Route Reflector (RR)
    • iBGP의 Full-Mesh 요구사항을 완화하기 위해 도입되었다.
    • RR과 클라이언트 간의 관계를 통해 경로 정보 전파를 최적화한다.
    • Cluster ID를 사용하여 루프를 방지한다.
  3. Confederation
    • 대규모 네트워크에서 AS를 소규모 AS로 나누어 관리 효율성을 높인다.
    • Confederation 내부에서는 iBGP로 동작하지만, 외부에는 단일 AS로 나타낸다.

BGP 테이블의 폭증과 대응

  • 전 세계적으로 인터넷이 확장됨에 따라 BGP 라우팅 테이블의 크기가 기하급수적으로 증가하고 있다.
  • 이를 관리하기 위해 다음과 같은 기법이 사용된다:
    • Prefix Aggregation: 라우팅 테이블 크기를 줄이기 위해 경로를 요약.
    • Graceful Restart: BGP 피어가 재시작될 때 경로를 유지하여 중단을 최소화.
    • ADD_PATH: 하나 이상의 경로를 전송하여 다중 경로의 균형을 제공합니다.

3. BGP의 동작 원리와 FSM 분석

BGP는 FSM(Finite State Machine)을 기반으로 동작하며, 이는 상태 전환을 통해 안정적인 연결과 데이터 교환을 보장한다.

FSM 상태

  1. Idle: 초기 상태. 세션을 설정하기 위한 TCP 연결 대기.
  2. Connect: TCP 연결을 시도하며, 성공 시 OpenSent 상태로 전환.
  3. OpenSent: Open 메시지를 수신하고, 적합성을 검증.
  4. OpenConfirm: Keepalive 메시지를 통해 연결 상태를 확인.
  5. Established: BGP 세션이 활성화되며, 경로 정보 교환이 시작

 

BGP 메시지 타입

  1. Open: 세션 초기화 및 네트워크 특성 교환. / BGP Neighbor와의 설정을 위한 메시지
    1. Hold-Time = Neighbor Router로부터 Keepalive, Update를 받지 않고, Neighbor Router가 살아있다고 판단할 수 있는 최대 시간. Neighbor Router가 구현한 시간과 자신이 구현한 시간이 다르면, 더 짧은 것을 선택하는 방식
    2. BGP Router ID = OSPF와 동일한 방법으로 선택되는 Router ID. Loopback Interface에 IP를 설정하지 않으면, Active IP 주소 중 가장 높다.
  2. Update: 경로 추가 및 제거 정보를 전달. / 네트워크 정보와 Path Attribute(Metric) 를 포함하는 Routing 정보
    1. 한 메시지당 한 Path 정보만 포함되고 다음과 같은 정보를 포함
      • Withdrawn Route(유효하지 않는 루트) = 더 이상 Best Route가 아닌 네트워크 정보
      • Path Attribute = IGP의 Metric
      • Network Layer Reachability Information(유효한 루트) = 네트워크 정보 (Best Route)
  3. Keepalive: 세션 유지를 위해 주기적으로 전송. / BGP Neighbor 와 최초의 TCP Connection 이후에 주기적으로 교환
    1. Neighbor Router(Peer)가 살아있는지 판단하기 위해 교환하는 메시지.
  4. Notification: 오류 상황을 알리고 세션을 종료. / 오류가 발생했을 때 보내는 메시지
    1. 오류가 발생했을 때 오류가 발생한 이유를 설명하는 오류코드를 포함

 

경로 선택 기준의 심화

  • Communities: 경로 그룹화를 통해 정책 기반 라우팅 구현.
  • Extended Communities: QoS나 MPLS와 같은 추가 정보 전달.
  • AIGP (Accumulated IGP Metric): IGP Metric을 경로 선택 과정에 포함.

4. BGP의 주요 구성 요소 심화

  1. AS (Autonomous System)
    • 자율 시스템은 인터넷에서 독립적으로 관리되는 네트워크 집합으로, AS 번호(ASN)를 통해 식별된다.
    • 4바이트 ASN(32비트)을 지원하며, 이는 기존 2바이트 ASN의 한계를 극복.
  2. Router ID
    • BGP 라우터를 고유하게 식별하기 위한 ID로, 일반적으로 가장 높은 루프백 인터페이스의 IP를 사용한다.
  3. BGP Path Attributes
    • Well-known Mandatory: AS Path, Next Hop, Origin.
    • Well-known Discretionary: Local Preference, Atomic Aggregate.
    • Optional Transitive: Community, Aggregator.
    • Optional Non-transitive: MED.
  4. BGP 메시지 구조
    • Header: BGP 메시지의 기본 정보를 포함 (Length, Type 등).
    • Body: 각 메시지 타입에 따라 가변적이며, 경로 정보 또는 상태 정보를 전달.

5. BGP 보안 문제와 해결책

보안 문제

  1. Prefix Hijacking: 잘못된 경로 광고로 인해 트래픽이 공격자로 유입.
  2. Route Leak: 정책에 어긋난 경로 전파.
  3. Man-in-the-Middle 공격: BGP 세션을 가로채 경로 정보를 수정.

해결책

  1. RPKI (Resource Public Key Infrastructure)
    • BGP 경로의 인증을 위해 암호화 서명을 사용.
  2. BGP Monitoring Protocol (BMP)
    • 실시간으로 BGP 세션을 모니터링하여 이상 탐지.
  3. Graceful Shutdown
    • 예기치 않은 경로 변화 방지를 위한 안전한 종료.

 

반응형