Как ускорить работу Firewalld или от него лучше отказаться в пользу nftables?

. У нас возникла проблема: мы настроили сервер, на котором запущена служба, и он способен поддерживать сотни одновременных подключений к порту 3535 (, произвольно назначенному для этого приложения). На этом ближнем-конечном-узле запущен firewalld, разрешающий соединения с дальнего-конечного узла, и все работает нормально. Проблема, с которой мы столкнулись, заключается в том, что дальний-конечный-хост может устанавливать только несколько соединений за раз, и для получения этих соединений требуется более 30 секунд. Максимум, что мы видели на ближнем-конце-получателя, составляет в среднем около 35 соединений. Мы выключили брандмауэр, и сразу же количество подключений достигло 850, а дальний-конец не сообщал об отсутствии проблем и задержек при подключении и работал безупречно в течение 15 минут (, пока мы снова не включили брандмауэр).

У нас очень простой набор правил, и мы не применяем никаких ограничений. Есть ли дросселирование по умолчанию в firewalld, которое мне нужно отключить, или мне следует перейти к nftables, и если да, то действительно ли оно будет работать лучше, или я гонюсь за призраком? Мой интернет-провайдер не использует VMWARE, поэтому внешнее решение недоступно.

Заранее спасибо. Дэвид

0
задан 16 October 2021 в 17:34
3 ответа

После долгих исследований выяснилось, что nftables здесь не спасает. В этой ситуации он работает не лучше, чем iptables, и поэтому бесполезен.

Проблема общей производительности связана с ограничением программного брандмауэра брандмауэра и должна решаться с помощью внешнего брандмауэра и т. д. У других была такая же проблема, и она осталась нерешенной:https://forums.centos.org/viewtopic.php?t=58673

0
ответ дан 17 October 2021 в 03:15

специалист по обслуживанию брандмауэра здесь.

Firewalld в настоящее время не поддерживает ускорение (программного быстрого пути или аппаратную разгрузку). Однако я думаю, что и то, и другое можно добавить, используя инфраструктуру nftables flowtable. Однако только несколько сетевых карт поддерживают разгрузку потоковой таблицы.

При этом то, что вы описываете, звучит неправильно. Это ужасная производительность. Firewalld на самом деле не выполняет брандмауэр. Он создает наборы правил iptables/nftables и применяет их. Выполнение правила iptables/nftables происходит в ядре/сетевом фильтре.

Вы можете рассмотреть возможность отключения некоторых дополнительных функций брандмауэра. Известно, что IPv6_rpfilterимеет проблемы с производительностью в масштабируемых средах, поскольку требует поиска в FIB. Также рассмотрите другие факторы, которые могут привести к частым обновлениям правил или добавлению большого количества правил, например. фейл2бан.

1
ответ дан 18 October 2021 в 20:25

Вы можете попробовать скопировать правила iptables/nftables, сгенерированные firewalld, отключить firewalld, а затем снова вставить правила iptables/nftables, чтобы вы могли подтвердите, что firewalld имеет некоторые другие ограничивающие параметры.

Если он все еще ограничен, это сгенерированные правила, и вы можете попытаться оптимизировать правила или создать их с нуля с помощью iptables/nftables.

Если это не так, то это может быть ограничение брандмауэра или, что более вероятно, ошибка брандмауэра.

0
ответ дан 2 November 2021 в 21:18

Теги

Похожие вопросы