nftlb 개발자 가이드

게시일: 30년 2019월 XNUMX일

Overview

nftlb netfilter / nftables 리눅스 네트워킹 스택에 의존합니다. 이 새로운 스택을 사용하면 현재의로드 균형 조정 설계에 적합한 새로운 개념과 기능이 제공됩니다.

이 기사는 nftables로드 밸런서 데이터 경로 및 제어 경로가 설계되는 방법에 대한 개요를 이해하는 것을 목표로합니다.

데이터 경로 후크

이것들은 nftlb가 사용하는 넷 필터 후크이며, 설정 가능한 체인을 이용합니다. 백엔드에 대한 전달 된 연결을 가속화하기 위해서는 연결 추적 오프로드와 같은 새로운 개념을 포함시켜야합니다.

                                                                  ------------
                                                                 |    DNSBL   |
                                                                  ------------
                                                                       |
                                                                     queue
                      ingress                                          |  prerouting                      forward         postrouting
      ------------ ------------- --------------                   ------------ -------                 --------------       -------
     |   filter   |    filter   |    filter    |                 |   filter   |  nat  |               |    filter    |     |  nat  |
     |     0      |    50-99    |     100      |                 |    -150    |   0   |               |      0       |     |  100  | 
 --> |            |             | Sec Policies |-( Conntrack )-> | Sec Limits |       |-( Routing )-> |              | --> |       |
     | Clustering | Flow tables | DSR          |           VS{}  | Helpers    | dNAT  |         VS{}  | Flow offload |     |  sNAT |
     |            |             | stless dNAT  |                 | Marks      |       |                --------------       -------
      ------------ ------------- --------------                   ------------ ------- 

입구

(0) 필터: 클러스터링 관리를 위해 예약되어 있습니다. 아직 nftlb에 포함되지 않았습니다.
(50-99) 필터: 유동 테이블 가속을 위해 예약되어 있습니다. 아직 nftlb에 포함되지 않았습니다.
(100) 필터: 보안 정책 (블랙리스트 및 화이트리스트), Direct Server Return 및 Stateless dNAT 토폴로지를 위해 예약되어 있습니다.

미리 루핑

(-150) 필터: 가상 서비스 또는 백엔드 당 보안 제한에 대해 예약 된 최대 연결 수, 초당 TCP RST 제한, 초당 TCP SYN 제한, 비 엄격 TCP 연결 삭제, DNSBL 서비스 대기열, 가상 서비스 및 백엔드 표시 등 , 헬퍼 사용, 가상 서비스 당 입력 연결 로깅.
(0) nat: 목적지 NAT 맹 글링을 위해 예약되어 있습니다.

앞으로

(0) 필터: 유량 오프로드 용으로 예약되어 있습니다. 아직 nftlb에 포함되지 않았습니다.

후행

(100) nat: 목적지 NAT 맹 글링을 위해 예약되어 있습니다.

제어 경로

nftlb 제어 경로는 API가있는 간단한 http 서버 또는 JSON 형식의 구성 파일을 허용하는 독립형 바이너리를 제공하는 데몬으로 설계되었습니다.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
공유 :

GNU Free Documentation License의 조건에 따른 문서.

이 글이 도움 되었나요?

관련 기사