[CISCO 보안 아카데미 1기 Part.2] 12일차 정리(BGP)

Jin_Hahha·2024년 9월 9일
0


BGP

Interdomain Routing

  • AS?

    • 단일 기술 관리자 하에 관리되는 네트워크의 집합
    • BGP는 다수의 IGP를 사용할 수 있음
    • AS내에서 공통 metric을 사용하여 라우팅 가능
    • AS는 BGP를 유일한 라우팅 프로토콜로 사용할 수 있음
    • 서로 다른 도메인 사이에 사용하는 라우팅 프로토콜을 EGP라고 함
  • 다른 AS에 있는 라우터는 신뢰할 수 없음

  • BGP는 늘 최적의 경로를 선택하는 것은 아님

    • 정책을 세워서 최적의 경로로 통신하도록 설정해야 함

특징

  • BGP는 (Distance Vector)Path vector 프로토콜
    • Reliable Updates
    • Triggered updates only
    • path attributes
    • 컨버전스 시간을 신경쓰지 않음

Reliable Updates

  • TCP를 전송 프로토콜로 사용
  • 비주기적 업데이트
  • 주기적인 keepalive 메시지를 통한 TCP의 연결성 확인
  • Triggered Update를 축적했다가 일정 시간이 지날 경우 라우팅 업데이트를 수행
    • 변경된 라우팅이 일정 시간 유지될 경우 라우팅 업데이트 진행
    • iBGP(internal peer) 사이에는 5초 동안 유지 확인
    • eBGP(external peer) 사이에는 30초 동안 유지 확인

BGP 개발 고려사항

  • 일반적인 BGP 사용
    • 고객이 다수의 Service Provider에 연결할 경우
    • Service Provider 네트워크
    • Exchange Point에서의 Service Provider 간의 xmfovlr ryghks
    • 대형 엔터프라이즈 고객들의 네트워크 코어

사용 가이드라인 - Single-Homed Customers

  • 고객과 service provider 사이에 다음과 같은 상황에서 BGP 사용
    • 고객들이 같은 service provider에 다중 접속
    • 결함 탐지를 위해 service provider 동적 라우팅 프로토콜이 필요한 고객
      • 해당 고객들의 경우 사설 AS number를 사용
    • 인터넷에서 자신들의 경로를 시작해야 하는 작은 ISP
  • 실질적으로 single homed일 경우 Static Routeing을 사용하자
    • BGP보다 늘 단순했음

사용 가이드라인 - Multihomed Customers

  • BGP는 multihomed 고객들의 경우 필수적
  • Multihomed 고객들은 공인 AS Number를 사용해야 함
  • Multihomed 고객들은 provider 의존적 주소 공간을 사용해야 함
  • AS 전송의 경우, BGP를 통한 경로 교환이 필수적

BGP 한계

  • BGP와 그와 연관된 tool은 모든 라우팅 정책을 표현할 수는 없음
    • BGP는 하위 AS의 라우팅 정책에 영향을 줄 수 없음

BGP Path Attributes

  • BGP metric은 path attributes로 불림
  • BGP attribute는 두 가지 항목으로 분류됨
    • well-known
      • 모든 준수 구현에 의해 인식되어야 함
    • optional
      • well-known과 다르게 모든 implementation에 의해 인식될 필요는 없음

Well-Known BGP Attributes

  • mandatory와 discretionay로 나뉨
  • 모든 well-known 속성은 다른 neighbor로 전파됨

Mandatory Well-Known BGP

  • 모든 업데이트 메시지에 필수적으로 표현되어야 함
  • Origin(Origin of BGP route)
    • i
      • IGP로부터의 경로
      • EIGRP, Static 등
      • Best Path 우선순위 1순위
      • Code Num 002
    • e
      • EGP로부터의 경로
      • 과거 라우팅 기술의 잔재
      • Best Path 2순위
      • Code Num 001
    • ?
      • BGP 안으로 재분배된 경로
      • Best Path 3순위
      • Code Num 000
  • AS-path
    • 네트워크에 접속할 수 있는 AS 번호 sequence
    • AS를 건널 때마다 어떤 AS를 거쳤나를 표시
  • Next-hop
    • next-hop router의 IP 주소

Discretionary Well-Known BGP

  • Discretionay well-known 속성은 선택적
    • 업데이트 메시지에 표현될 수도 있고 없을 수도 있음
  • Local preference
    • AS내에서 라우팅 정책 유지에 사용됨
    • 특정 AS에서 외부 AS로 나갈 때, 어떤 AS를 우선시할지 결정
    • default 값은 100
  • Atomic aggregate
    • neighbor AS에 근원지 라우터가 집계한 경로를 알림
    • Summary를 해야 Setting 되는 설정

Optional BGP Attributes

  • transitive와 nontransitive로 나뉨
  • Transitive
    • 만약 인지되지 않았을 경우, 다른 neighbor로 전파됨
      • 부분적 bit가 속성이 인지되지 않았음을 표시
  • Nontransitive
    • 인지되지 않았을 경우 무시됨

Nontransitive attributes

  • 다중 출구 식별자
    • 단일 AS로의 다중 입구 지점 사이의 식별

Transitive attributes

  • Aggregator

    • 경로 집계를 수행하는 라우터의 IP 주소와 AS 번호를 특정
  • Community

    • 경로 Tagging

AS-Path Attribute

  • BGP table로 local 경로가 들어왔을 때, AS-Path 속성은 빈 상태
  • AS 경계를 가로질러 라우팅 업데이트를 할 때, 전송자의 AS 번호가 AS-Path 속성에 추가됨
  • BGP 라우팅 정보의 수신자는 해당 정보가 어떤 AS를 거쳐서 왔는지를 AS-Path 속성으로 결정
  • AS 경로 내에서 자체 AS 번호로 라우팅 정보를 받는 AS는 해당 정보를 무시

Next-Hop Attributes

  • Packet Forwarding을 위한 next-hop IP 주소를 나타냄
  • 일반적으로 전송하는 External Border Gateway Protocol(EBGP) 라우터의 IP 주소로 설정
  • 라우팅을 최적화 하기 위해서 Third-Party IP 주소로 설정될 수 있음

example

  • IGP 도중 next-hop에 대한 정보가 없을 경우, next-hop 주소를 connected 된 본인의 IP 주소로 설정하여 패킷 전송
  • eBGP 도중 neighbor 라우터에서 인식이 불가능한 주소로 next-hop이 설정된 경우, neighbor 관계의 다른 AS에 존재하는 라우터로 next-hop 주소를 다른 AS와 연결된 본인 인터페이스의 주소로 설정하여 전송

BGP Neighbor Discovery

Discovered

  • BGP neighbor는 discovered 되지 않음
    • 수동적으로 설정되어야 함
  • Configuration은 연결된 양측에 모두 완료되어야 함
  • 두 라우터는 179번 포트로 TCP 세션으로 연결을 시도함
  • 오직 높은 라우터 ID 세션만이 연결 시도 이후에 잔류함
  • 수신 연결 시도의 근원지 IP 주소는 구성된 neighbor 리스트와 비교됨

  • 초기 BGP 세션 상태

BGP Open Message에 포함된 항목들

  • BGP version num
  • AS number of the local router
  • Holdtime
  • BGP Router identifier
  • Optional parameters

  • BGP neighbor 세션 구성 확인

BGP Keepalives

  • TCP 기반의 BGP 세션은 neighbor 존재 확인 수단을 제공하지 않음
    • BGP Traffic 전송할 경우 제외
  • BGP는 추가 메커니즘이 필요
    • Keepalive BGP 메시지는 neighbor 존재 증명 제공
    • Keepalive 메시지는 매 60초마다 전송됨
  • Keepalive 주기 값은 BGP Opne 메시지에서 전달되지 않음
  • Keepalive 값은 다음 사항들에서 결정됨
    • local holdtime이 사용될 경우의 구성된 값
    • neighbor의 holdtime이 사용되고 keepalive < (holdtime의 3분의 1)인 경우의 구성된 값
    • neighbor의 holdtime이 사용되고 keepalive > (holdtime의 3분의 1)인 경우에서, (holdtime의 3분의 1)과 비교했을 때 더 작은 수

MD5 인증

  • BGP Peer는 공유키를 사용하여 MD5 TCP 인증을 사용하는 경우도 있음
  • 모든 라우터는 같은 패스워드로 구성되어야 함
  • 각 TCP 세그먼트는 확인되어야 함

Processing BGP Routes

BGP Route Selection Criteria

  • Next hop으로 연결이 불가능한 경로 제외
    • next hop이 본인의 라우팅 테이블에 있어야 함
  • 더 높은 가중치 우선
    • 라우터의 정책
  • 가장 높은 local 우선순위를 우선시 (AS내 전역적)
    • AS의 정책(iBGP로만 업데이트됨)
  • 라우터에서 시작된 경로 우선
    • 본인이 광고한 경로를 더 우선시
  • AS 길이가 짧은 경로 우선
    • 오직 길이만 비교됨
  • 더 낮은 origin 코드 우선
    • IGP < EGP < Incomplete
  • 더 낮은 MED 우선
  • 외부 경로(EBGP)를 내부 경로(IBGP)보다 우선
  • IBGP의 경우, 가장 가까운 IGP next hop을 우선
  • EBGP의 경우, 더 오래된(가장 안정적인) 경로를 우선
  • 더 낮은 BGP Router-ID를 지닌 라우터의 경로를 우선
    • Router-ID가 낮다는 의미는 꽤 오래 전부터 현재 시점까지 문제 없이 동작했다는 의미(안정성이 좋다는 의미)이기에 Router-ID가 더 낮은 라우터 선택

  • 위의 11단계는 BGP를 이해하는 데에 가장 중요한 내용

MED

  • IGP의 Metric 개념
  • IGP의 Metric 값을 그대로 복사하여 사용
  • BGP로 전송되는 데이터에는 Metric 대신 MED가 저장되어 전송
  • AS path 값이 empty 상태가 아니면, MED 값은 사라짐
  • BGP의 경로 설정은 위의 11단계로 확인하는데, 임의로 어떤 사항을 체크할지 설정할 수 있음
    • 이때 MED 값까지만 보겠다고 설정할 수 있음
    • MED 값은 내부로 들어오는 데이터에 관한 관리를 목적으로 사용한다고 생각할 수 있으나, 실제로는 밖으로 나가는 데이터에 대해 최적 경로를 선정하는 데에 사용한다고 볼 수 있음

Advertising Local Networks

  • BGP 라우터 프로세스는 local network 리스트를 유지함
    • network 명령어 또는 재분배를 통해서 정의
  • 주기적으로 IP 라우팅 테이블을 스캔
    • IP 라우팅 테이블에 존재하는가에 따라서 BGP 라우팅 테이블에 경로를 추가 또는 삭제

Automatic Summarization

  • 자동 축약 기능은 기본적으로 활성화 상태
  • 자동 축약이 활성화되는 경우
    • Major Network Boundary로 재분배되는 IGP-to-BGP 경로의 요약
    • Classful network 명령어를 사용하는 경우, Major Network Boundary에 대한 서브넷 요약

  • 비활성화되는 경우
    • IGP-to-BGP 재분배가 필요하지 않은 경우
    • network 명령어의 classless 범위 사용

Configuring BGP

Starting

  • BGP 라우팅 시작
  • AS 번호는 사설을 사용하거나 공인 AS 번호를 구매

Neighbor Configure

  • External neighbor를 정의
  • External neighbor는 바로 연결된 서브넷 너머를 통해 도달할 수 있어야 함

Neighbor Shutdown

  • BGP neighbor와 통신 비활성화

Timer setting

  • BGP 프로세스마다 BGP Timer의 기본 값 변경 가능
  • BGP Open message를 통해 holdtime이 통신됨
  • 가장 작은 holdtime 값이 양쪽 피어 모두에 사용됨

  • 특정 neighbor나 피어 그룹에 BGP 기본 값을 변경할 수 있음

  • 특정 BGP 세션마다 MD5 인증 설정 가능
  • 두 라우터 사이의 패스워드 문자열은 반드시 같아야 함

Announcing Networks in BGP

  • 관리자가 직접 설정한 네트워크만 BGP에 홍보됨
    • 수동적으로 구성된 네트워크는 홍보됨
    • IGP에서 재분배 사용
    • prefix 요약을 홍보하기 위해 aggregation 사용

auto-summary

  • BGP Table 삽입 이전에 network 요약이 활성화 되거나 비활성화됨
    • 지역적으로 삽입된 네트워크(network 명령어를 사용)
    • 재분배 경로
  • 기본적으로 활성화된 상태

Major Network

  • BGP로 major network의 홍보를 허용
  • 적어도 서브넷 중 하나가 라우팅 테이블에 존재해야 함
  • auto-summary 명령어의 존재에 따라 동작이 바뀜
  • BGP의 network 명령어는 다른 모든 라우팅 프로토콜과 완벽히 다름

Redistributing

  • 큰 네트워크에서 BGP 프로세스 네트워크에 주소를 올리는 것보다 쉬움
  • 재분배 경로 origin attribute는 incomplete
  • 경로 유출을 막기 위해 항상 재분배 경로는 필터링
  • Service Provider 환경에서는 피해야 함

  • 간단한 IGP-BGP 재분배
  • Distributed-List를 통해 경로 필터

  • Route-Maps를 이용한 재분배
  • 근원지는 IGP로 설정
  • 다른 BGP 경로 속성은 아래 항목으로 설정됨
    • Metric
    • Next-hop
    • Community

Classless BGP 구성

Aggregation

  • BGP 라우팅 프로세스 집합 범위 정의
  • BGP 테이블에서 범위가 설정되어 있는 네트워크가 적어도 하나라도 있을 경우 집합이 홍보됨

LAB_BGP

토폴로지

조건

  • RIP와 OSPF로 라우팅
  • 단, 외부 본인 Area 내부와 라우팅시키고 외부로는 Routing X
  • BGP 설정 추가(다른 AS끼리 Neighbor 관계 맺기)

0개의 댓글