nftlb란 무엇인가요?

카테고리 보기

nftlb란 무엇인가요?

4 분 읽음

회사 개요 #

nftlb 용 스탠드 nftables 로드 밸런서. 그것은 레버리지 지주iptables를 대체할 차세대 Linux 방화벽 세트이며, 모든 기능을 갖춘 로드 밸런서 및 트래픽 분배기로 작동하도록 조정되었습니다.

nftlb nftlb는 레이어 2, 3, 4에서 로드 밸런싱을 위한 가상 서비스를 생성하도록 설계된 nftables 규칙 관리자 역할을 합니다. 효율적인 데이터 구조를 사용하여 패킷을 매칭함으로써 필요한 규칙 수를 최소화합니다. 또한 사용자 친화적인 JSON API를 제공하여 원활한 프로그래밍 방식 상호작용 및 자동화를 지원합니다. 이러한 유연성 덕분에 nftlb를 선호하는 상태 확인 도구와 쉽게 통합할 수 있습니다.

nftlb의 핵심 철학은 데이터 경로를 Linux 커널 내에 유지하여 성능을 극대화하는 동시에 제어 플레인과 상태 점검을 사용자 공간에서 유지하는 것입니다. 이러한 분리를 통해 사용자 정의가 용이해지고, Linux 스택과의 호환성이 향상되며, 동작을 동적으로 조정할 수 있습니다.

At RELIANOIDiptables와 Netfilter 프레임워크를 사용하여 풍부한 기능을 갖춘 로드 밸런서를 구축해 온 풍부한 경험을 보유하고 있습니다. 이러한 경험을 통해 이러한 접근 방식의 한계를 이해하고 있으며, nftlb는 이러한 한계를 설계 과정에서 극복합니다.

왜? nftlb 필요한가요? #

리눅스 커널에는 IPVS (일반적으로 LVS, 즉 Linux Virtual Server로 알려짐)라는 내부 로드 밸런서가 포함되어 있습니다. IPVS는 수년간 사용되어 온 안정적이고 성숙한 소프트웨어 솔루션이지만, 몇 가지 제한 사항이 있습니다.

  • 사용자 공간에 더 적합한 작업은 커널에서 처리되므로 유연성이 떨어집니다.
  • 이는 Netfilter가 이미 제공하는 인프라를 복제합니다.
  • 투명 프록시, 멀티포트 또는 멀티프로토콜 지원과 같은 고급 기능을 위해 iptables와 같은 보조 도구를 사용합니다.
  • SNAT(소스 NAT) 및 DSR(직접 서버 반환) 토폴로지는 지원하지만 DNAT(대상 NAT)는 없습니다.

반면, iptables 기반 접근 방식에는 다음과 같은 제약 조건이 있습니다.

  • 각 가상 서비스에는 여러 개의 규칙이 필요하며, 백엔드당 최소 두 개의 규칙이 필요합니다. 백엔드가 추가될수록 복잡성은 선형적으로 증가합니다.
  • 많은 규칙이 관련되어 있을 때 순차적 규칙 처리는 성능을 저하시키며, 이는 고전적인 iptables 잠금 문제로 인해 더욱 악화됩니다.
  • IPv6를 지원하려면 별도의 명령인 ip6tables를 사용해야 하므로 구성이 복잡합니다.
  • iptables는 DNAT 및 SNAT 부하 분산을 지원하지만 DSR 토폴로지에서는 작동할 수 없습니다.

nftlb, 기반 지주, 보다 효율적이고 현대적인 접근 방식으로 이러한 모든 제한 사항을 해결합니다.
모든 토폴로지(SNAT, DNAT, DSR)를 지원하고 이들 간의 원활한 전환을 허용합니다.
기본적으로 멀티포트 및 멀티프로토콜 트래픽을 처리합니다.
단일 인터페이스를 통해 IPv4 및 IPv6 트래픽을 원활하게 관리합니다.
하나의 통합 인터페이스를 통해 필요한 모든 부하 분산 기능을 제공합니다.
nftables의 표현적 언어를 사용하여 두 개의 규칙만으로 완전한 로드 밸런서를 구축하여 백엔드 수에 관계없이 일정한 복잡성을 보장합니다.
가상 서비스별로 매치가 인덱싱되므로 순차적인 규칙 처리가 필요 없습니다.
RCU(읽기-복사-업데이트) 하위 시스템을 활용하여 규칙 업데이트 중 잠금 문제를 방지합니다.
제어 평면에 대한 사용자 공간 유연성을 유지하는 동시에 최적의 성능을 위해 커널 공간에서 데이터 경로를 유지합니다.
LVS보다 10배 빠른 성능을 제공하는 것으로 입증되었습니다.

nftlb 풍모 #

nftlb 로드 밸런서는 현재 다음과 같은 기능을 제공합니다.

지원되는 토폴로지 :

  • 대상 NAT(DNAT), 소스 NAT(SNAT), 직접 서버 반환(DSR), 상태 비저장 DNAT.
  • 이러한 토폴로지를 통해 nftlb는 1암형 및 2암형 네트워크 아키텍처 모두에서 작동할 수 있습니다.

IPv4 및 IPv6 지원: 최신 네트워크 환경을 위해 두 IP 제품군과 완벽하게 호환됩니다.
다중 계층 로드 밸런싱:

  • 2계층: DSR 기반 부하 분산.
  • 3계층: 프로토콜에 구애받지 않는 IP 기반 부하 분산.
  • 4계층: UDP, TCP, SCTP 프로토콜 지원.

멀티포트 지원: 유연한 트래픽 관리를 위해 포트 범위와 목록을 처리합니다.
여러 가상 서비스(팜): 여러 가상 서비스를 동시에 관리할 수 있습니다.
스케줄러: 가중치 기반 스케줄링, 라운드 로빈, 구성 가능한 해시(IP, 포트, MAC 또는 조합 기반), 대칭 해시가 포함됩니다.
구성 가능한 지속성(친화성): IP, 포트, MAC 또는 이들의 조합을 기반으로 하는 시간 초과를 통해 클라이언트-백엔드 친화성을 제공합니다.
보안 정책:

  • 유입 필터링을 위한 서비스별 허용 및 차단 목록.
  • 사용자 공간 필터링, 대기열 및 가짜 TCP 프레임 감지.
  • 최대 연결 수, 초당 TCP RST 패킷 수, 초당 새 연결 수에 대한 제한입니다.

백엔드 우선 지원: 트래픽 분산을 최적화하기 위해 백엔드에 우선순위를 지정할 수 있습니다.
라이브 관리: JSON API를 통한 가상 서비스와 백엔드의 프로그래밍 방식 관리.
웹 서비스 보안: API 접근을 보호하기 위한 보안 키를 통한 인증.
자동화된 테스트베드: 간소화된 테스트 및 검증을 위한 내장 테스트베드가 포함되어 있습니다.

공식 Git 저장소: https://github.com/relianoid/nftlb

변경 로그: https://www.relianoid.com/knowledge-base/nftlb/nftlb-changelog/

📄 이 문서를 PDF 형식으로 다운로드하세요 #

    이메일 : *

    BetterDocs 제공