Comments 14
А я наоборот — спасибо скажу. За фронтом почти всегда кто-то мамонтячий, от того и балансируют. Конечно, обычно нужен https, но вот за nftables в подобном примере (да ещё и с тестами) — спасибо.
Ну и по настройке сети на линуксе не очень ясно — оптимизировались ли буферы, джамбо фреймы всякие, бэклог коннектов…
Популярным инструментом проброски пакетов был IPVS
Не был, а есть для тех, кто не может себе позволить XDP и прочие свежести в ядре. Джентельмены из Huawei даже притащили его в k8s, натурально устав ждать, пока изменения в iptables применятся в их кластерах на тысячу нод.
Как Xdp может заменить ipvs если работает в пределах одного интерфейса?
У меня прямо сейчас есть балансировщики на IPVS с одним интерфейсом (не считая lo), поэтому я не понял вопроса.
Популярным инструментом проброски пакетов был IPVS. Он выполнял задачи балансировки через тоннель и Direct Routing.
В первом случае, для каждого соединения устанавливался TCP-канал и пакет от пользователя шел на балансер, потом на миньон, а потом в обратном порядке.
Вот тут не совсем честно. У IPVS есть 3 метода доставки трафика до обслуживающих нод:
- Gatewaying, он же Direct Routing — пересылка пакетов в пределах одного броадкаст сегмента.
- Tunneling — туннелирование, работает в маршрутизируемых сетях, инкапсулирует пакеты в IPv4/IPv6.
- Masquerading — классический DNAT.
Так вот обратный трафик идет через балансер только в случае Masquerading. В остальных двух случаях настройки на облуживающих нодах позволяют возвращать трафик клиенту без задействования балансировщика.
Direct routing и балансировка с помощью NFT vs Nginx