본문 바로가기
네트워크/BGP

Introduction to BGP Load Balancing

by 최개미의 세계 2024. 8. 11.
728x90
반응형

1. Introduction to BGP Load Balancing

  • BGP는 기본적으로 Load Balancing 기능이 비활성화되어 있지만 Command 입력으로 활성화 가능
    • Cisco는 IGP Load Balancing이 기본적으로 활성화
    • Nokia는 IGP Load Balancing이 기본적으로 비활성화

1) BGP Load Balancing 사용 조건

  • BGP에서 Load Balancing을 사용하려면 아래 Attribute가 일치해야 사용 가능
    • Weight
    • Local-Preference
    • AS Path(both AS number and AS path length → 설정으로 AS Number 조건 제거 가능)
    • Origin-Code
    • MED
    • IGP Metric
  • 각 RouteNext-Hop IP Address는 상이해야 사용 가능

 

 

2. BGP Load Balancing 방법

1) IGP 또는 Static Route 사용

  • eBGP Peer 간에 Static Route로, iBGP Peer 간에는 IGP로 Load Balancing 가능
    • eBGP Peer 간에 IGP를 사용하여 Neighbor를 맺어 구현은 가능하지만 실제 망에서는 사용하지 않는 방법
    • eBGP Peer 간에 Link Bandwidth가 다를 경우, EIGRP를 사용하여 Unequal Load Balancing 구현 가능
  • BGP로 학습한 네트워크의 Next-Hop으로 향하는 경로를 부하 분산시켜 결과적으로 BGP 경로가 부하 분산
    • AS 경계 라우터 간에 여러 개의 Link가 있는 R1↔R2만 가능
  • AS 경계 라우터가 여러 개일 때, BGP Load Balancing을 IGP 및 Static을 이용하여 구현하는 것을 비권장
    • 위 그림에서 R3 라우터에서 여러 경계 라우터로 BGP Load Balancing이 불가능하기 때문
    • 해당 문제를 해결한 방법이 'Multipath'를 사용하여 BGP Load Balancing을 구현하는 것
  • R1은 22.22.22.22/32 네트워크의 Next-Hop으로 가는 경로가 Static Routing에 의해 부하 분산되게 하여 22.22.22.22/32 네트워크로 가는 BGP 경로가 부하 분산
    • 이를 위해 eBGP Neighbor 설정 시, Physical Interface가 아닌 Loopback Interface IP를 사용
  • R3은 11.11.11.11/32 네트워크의 Next-Hop으로 가는 경로가 Static Routing에 의해 부하 분산되게 하여 11.11.11.11/32 네트워크로 가는 BGP 경로가 부하 분산

 

2) Multipath 사용

 

  • IGP 및 Static Routing을 이용한 BGP Load Balancing과 달리 여러 AS 경계 라우터로 BGP Load Balancing 구현 가능
  • 'multipath'를 사용하여 여러 개의 iBGP나 eBGP 경로에 대해 부하 분산 구현 가능 
    • eBGP Peer 간에는 'maximum-path'명령어를, iBGP Peer 간에는 'maximum-path ibgp'명령어를 사용하여 NLRI 당 최대 32개의 경로로 Load Balancing이 가능
    • Cisco는 'bgp bestpath as-path multipath-relax'를 사용하여 AS-Path Length와 AS-Path Number가 동일해야 하는 요구 사항을 AS-Path Length만 확인하도록 설정 가능
  • 'multipath'만을 사용한 경우, eBGP Peer 간에 Unequal Cost Load Balaning 구현 불가
    • 즉, R1↔R2 및 R1↔R4 간에 링크의 대역폭이 달라도 동일한 비율로 라우팅이 동작
    • 이와 같은 점을 개선한 것이 DMZ Link Bandwidth 기능을 사용한 Load Balancing

 

3) DMZ Link Bandwidth 기능 사용

  • 서로 다른 AS 간에 연결되는 구간을 DMZ로 명칭
  • DMZ Link Bandwidth 기능이란 DMZ 구간의 대역폭에 비례하여 Unequal Cost Load Balancing을 구현하는 것
  • eBGP 및 iBGP 경로 모두를 Unequal Cost Load Balancing 가능
  • Cisco 기준으로 DMZ Link Bandwidth 기능이 동작하는 방식
    • AS 경계 라우터가 DMZ 구간 Link Bandwidth를 확장 커뮤니티를 이용하여 iBGP Peer에게 광고
      • 위 그림에서 R2, R4가 R3에게 DMZ 구간 Link Bandwidth를 광고
    • 하나의 AS 경계 라우터에서 외부 AS와 연결되는 Link가 여러 개 존재한다면, 자신은 eBGP 부하 분산을 실행
      • 위 그림에서 Rl↔R2 간의 부하 분산이 해당
    • DMZ 구간 Link Bandwidth를 확장 커뮤니티로 수신한 iBGP 라우터들은 AS 경계 라우터까지 이르는 iBGP 구간에 대해 부하 분산을 실행
      • 위 그림에서 R3과↔R2, R3↔R4 간의 부하 분산이 해당
  • Cisco 기준으로 DMZ Link Bandwidth 기능이 동작하려면 만족해야 하는 조건
    • 모든 라우터에 CEF(Cisco Express Forwarding)나 dCEF(distributed CEF) 기능 활성화 필요
    • AS 경계 라우터에 'bgp dmzlink-bw'를 입력하여 BGP Link Bandwidth 기능 활성화
    • 'maximum-paths' 또는 'maximum-paths ibgp'를 입력하여 eBGP 또는 iBGP 부하 분산 기능 활성화 필요
    • 'neighbor x.x.x.x dmzlink-bw'를 입력하여 DMZ Link Bandwidth에 따라 BGP Load Balancing을 구현하고, iBGP Peer에게도 DMZ Link Bandwidth를 정보를 광고
    • DMZ Link Bandwidth 정보가 광고되는 iBGP Peer에 확장 커뮤니티를 전송할 수 있도록 설정
    • Weight, Local-Preference, AS-Path Length, MED, IGP Metric이 동일한 여러 경로가 필요

 

  • BGP 테이블에 각 BGP Peer 별로 DMZ Link Bandwidth를 kbyte 단위로 기록
  • 테스트 장비의 기본 대역폭이 10 Mbit이므로 Byte로 환산하면 1250 kbyte(10,000/8)
  • R2→R3에게는 R2의 DMZ Link Bandwidth(10 Mbits + 10 Mbits = 20 Mbits = 2500 kbyte)만큼 전송

 

  • 1.1.1.1/32 네트워크에 대해 R3↔R2와 R3R4 간에 iBGP 부하 분산이 구현되며 R2로 전송되는 트래픽은 OSPF에 의해서 부하 분산이 구현
  • 외부 AS로 라우팅 되는 트래픽은 DMZ Link Bandwidth에 따라 결정되므로 DMZ가 아닌 Link Bandwidth를 변경해도 외부 AS로 라우팅 되는 트래픽은 영향 없음

 

R2→R3 BGP Update Message
R4→R3 BGP Update Message

 

728x90
반응형