경로에 동일하지 않은 대역폭이 할당된 BGP 트래픽에 대한 로드 밸런싱 이해하기
multipath 옵션은 활성 경로 결정 프로세스에서 타이브레이커를 제거하므로 여러 소스에서 학습된 동일한 비용의 BGP 경로를 포워딩 테이블에 설치할 수 있습니다. 그러나 사용 가능한 경로가 동일한 비용이 아닌 경우 트래픽을 비대칭적으로 로드 밸런싱할 수 있습니다.
포워딩 테이블에 여러 개의 다음 홉이 설치되면 Junos OS 접두사별 로드 밸런싱 알고리즘에 의해 특정 포워딩 다음 홉이 선택됩니다. 이 프로세스는 패킷의 원본 및 목적지 주소에 대해 해시하여 접두사 페어링을 사용 가능한 다음 홉 중 하나에 결정적으로 매핑합니다. 접두사별 매핑은 인터넷 피어링 교환에서와 같이 해시 함수에 접두사가 많이 제공될 때 가장 잘 작동하며, 통신 노드 쌍 간에 패킷이 재정렬되는 것을 방지하는 역할을 합니다.
엔터프라이즈 네트워크는 일반적으로 패킷당 로드 밸런싱 알고리즘을 유발하기 위해 기본 동작을 변경하려고 합니다. 여기서 패킷당이 강조된 이유는 원래 인터넷 프로세서 ASIC의 기존 동작에서 비롯된 잘못된 명칭으로 사용되기 때문입니다. 실제로 현재 주니퍼 네트웍스 라우터는 접두사별(기본값) 및 플로우별 로드 밸런싱을 지원합니다. 후자의 경우 원본 주소, 목적지 주소, 전송 프로토콜, 수신 인터페이스 및 애플리케이션 포트의 일부를 포함하여 다양한 레이어 3 및 레이어 4 헤더에 대한 해시가 포함됩니다. 그 결과 이제 개별 흐름이 특정 다음 홉으로 해시되므로 특히 더 적은 수의 원본 및 대상 쌍 간에 라우팅할 때 사용 가능한 다음 홉 전체에 더 균일한 배포가 가능합니다.
패킷당 로드 밸런싱을 사용하면 두 엔드포인트 간의 통신 스트림을 구성하는 패킷의 순서가 변경될 수 있지만 개별 흐름 내의 패킷은 올바른 순서를 유지합니다. 접두사별 로드 밸런싱을 선택하든 패킷당 로드 밸런싱을 선택하든 액세스 링크의 비대칭으로 인해 기술적인 문제가 발생할 수 있습니다. 어느 방법으로든 예를 들어 T1 링크에 매핑되는 접두사 또는 흐름은 고속 이더넷 액세스 링크에 매핑되는 흐름과 비교할 때 성능이 저하됩니다. 설상가상으로 트래픽 부하가 높을 경우 동일한 로드 밸런싱을 시도하면 T1 링크가 완전히 포화 상태가 되고 패킷 손실로 인해 세션이 중단될 가능성이 높습니다.
다행히 주니퍼 네트웍스 BGP 구현은 대역폭 커뮤니티라는 개념을 지원합니다. 이 확장 커뮤니티는 지정된 다음 홉의 대역폭을 인코딩하며, multipath와 결합될 경우 로드 밸런싱 알고리즘이 상대적 대역폭에 비례하여 다음 홉 세트에 플로우를 배포합니다. 다시 말해, 10Mbps 및 1Mbps 다음 홉이 있는 경우 평균 9개의 흐름이 저속을 사용하는 모든 흐름에 대해 고속 다음 홉에 매핑됩니다.
BGP 대역폭 커뮤니티 사용은 패킷당 로드 밸런싱에서만 지원됩니다.
구성 작업은 다음 두 부분으로 구성됩니다.
외부 BGP(EBGP) 피어링 세션을 구성하고, multipath를 활성화하고, 링크 속도를 반영하는 대역폭 커뮤니티로 경로를 태깅하는 가져오기 정책을 정의합니다.
최적의 트래픽 분산을 위해 패킷당(실제로 per-flow) 로드 밸런싱을 활성화합니다.