panduan pengembang nftlb

DIKIRIM PADA 30 Juli 2019

Pengantar

nftlb bergantung pada tumpukan jaringan linux netfilter / nftables. Dengan tumpukan baru ini disediakan konsep dan kemampuan baru yang kami butuhkan agar sesuai dengan desain penyeimbangan beban saat ini.

Artikel ini bertujuan untuk memberikan pemahaman umum tentang bagaimana jalur data penyeimbang beban nftables dan jalur kontrol dirancang.

Kait Jalur Data

Ini adalah kait Netfilter yang digunakan nftlb, mengambil keuntungan dari rantai yang dapat dikonfigurasi. Konsep-konsep baru seperti koneksi pelepasan koneksi perlu dimasukkan untuk mempercepat koneksi penerusan ke backend.

                                                                  ------------
                                                                 |    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      |       |                --------------       -------
      ------------ ------------- --------------                   ------------ ------- 

masuk

(0) filter: Dicadangkan untuk manajemen pengelompokan. Belum termasuk dalam nftlb.
(50-99) filter: Dicadangkan untuk akselerasi tabel aliran. Belum termasuk dalam nftlb.
(100) filter: Dicadangkan, secara berurutan, untuk: Kebijakan Keamanan (daftar hitam dan daftar putih), Pengembalian Server Langsung dan topologi dNAT Tanpa Kewarganegaraan.

prerouting

(-150) filter: Dicadangkan untuk Batas Keamanan per layanan virtual atau per backend seperti: jumlah maksimum koneksi yang dibuat, batas TCP RST per detik, batas TCP SYN per detik, penurunan koneksi TCP yang tidak ketat, antrian ke layanan DNSBL, layanan virtual dan tanda backend , penggunaan pembantu, pencatatan koneksi input per layanan virtual.
(0) nat: Dicadangkan untuk tujuan NAT mangling.

meneruskan

(0) filter: Dicadangkan untuk aliran offload. Belum termasuk dalam nftlb.

postrouting

(100) nat: Dicadangkan untuk tujuan NAT mangling.

Jalur Kontrol

Jalur kontrol nftlb dirancang sebagai daemon yang menyediakan server http sederhana dengan API, atau biner mandiri yang menerima file konfigurasi dalam format JSON.

                -------------    traduction     -------------             --------
   JSON API    |             |   objs to nft   |             |  netlink  |        |
 ------------> | http server | --------------> | libnftables | --------> | kernel |
               |             |        |        |             |           |        |
                -------------         |         -------------             --------
                                      |               netlink                |
                                       ---------------------------------------
Bagikan ke:

Dokumentasi di bawah ketentuan Lisensi Dokumentasi Bebas GNU.

Apakah artikel ini berguna?

Artikel terkait