Macro Posted April 4, 2018 Posted April 4, 2018 (edited) Добрый день, коллеги Поднял NAT на Debian 9.3, покрутил параметры sysctl, подключил ipt_NETFLOW. Встал вопрос мониторинга, через sysctl net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_count - получаю текущее количество нат трансляций. А как получить количество свободных IP? На циске это бралось из вывода команды: show ip nat translations total Всего 60 IP на сервере, НАТю так: -A POSTROUTING -s 10.2.0.0/15 -o vlanXXX -j SNAT --to-source xx.xx.xx.3-xx.xx.xx.62 --persistent net.netfilter.nf_conntrack_count = 345683 Трафик до 3 Гб/с, клиентов за НАТ несколько тысяч. На циске 90 IP в пике было занято. Edited April 4, 2018 by Macro Вставить ник Quote
kayot Posted April 4, 2018 Posted April 4, 2018 Немного неверно вопрос поставлен. sysctl net.netfilter.nf_conntrack_max - максимально возможное число трансляций sysctl net.netfilter.nf_conntrack_count - текущее число трансляций Это все что нужно мониторить. Вставить ник Quote
Macro Posted April 4, 2018 Author Posted April 4, 2018 (edited) Почему же? А возможный случай, когда закончатся свободные порты и внешние IP закончатся? Тем более при условии правила --persistent ? sysctl net.netfilter.nf_conntrack_max - это показатель только для количества трансляций, только IP и порты могут закончиться раньше чем количество трансляций достигнет максимума. Да увидел, что max вместо count был, исправил, но вопрос мониторинга свободных IP и портов не снимается. Edited April 4, 2018 by Macro Вставить ник Quote
anix Posted April 4, 2018 Posted April 4, 2018 39 минут назад, Macro сказал: А возможный случай, когда закончатся свободные порты и внешние IP закончатся? посмотрите conntrack-tools: conntrack -S/conntrack -C может ещё что полезное из ss -s можно взять Вставить ник Quote
kayot Posted April 4, 2018 Posted April 4, 2018 3 часа назад, Macro сказал: А возможный случай, когда закончатся свободные порты и внешние IP закончатся? Тем более при условии правила --persistent ? sysctl net.netfilter.nf_conntrack_max - это показатель только для количества трансляций, только IP и порты могут закончиться раньше чем количество трансляций достигнет максимума. Да увидел, что max вместо count был, исправил, но вопрос мониторинга свободных IP и портов не снимается. Давайте с начала. 1. В линуксовом НАТе нет понятия свободных и занятых IP. Запросы любого количества клиентов равномерно размазываются по выделенному блоку адресов, в вашем случае 60шт. Будет 60 клиентов - каждый получит уникальный IP(грубо говоря, реально это не совсем так), будет их 60.000 - получите распределение 1000 клиентов на 1 внешний IP. 2. В линуксовом же НАТе трансляции не привязываются к открытым портам(так когда-то в BSD вроде было?). Можно держать миллионы трансляций на 1 сером IP без каких-либо ограничений. Итого, мониторить нужно только загрузку CPU и размер таблицы conntrack. Вставить ник Quote
bomberman Posted April 13, 2018 Posted April 13, 2018 (edited) Пологаю можно ещё получить любопытную статистику по результатам работы ipt_NETFLOW. К примеру выбирая кол-во созданных,удалённых сессий по каждому ip из диапазона --persistent (это если интересно смотреть распределение по внешним ip.) ну и прочие выриации с выборкой статистики из netflow/ipfix. к примеру количество трансляций в xx.xx.xx.3 и статусом CREATE: nfdump -T -r nat/nfcapd.current.288 'src nip xx.xx.xx.3 and nat event add' | wc -l количество ip транслирующихся в xx.xx.xx.3 nfdump -T -r nat/nfcapd.current.288 'src nip x.x.x.3' -s srcip -n 0 | wc -l Можно расширить выбирая по критерию интересующих портов назначения. В общем, тут зависит от фантазии и потребности. Правильнее будет делать выбор во временной промежуток. Или по последнему файлу, если ротация файла каждые 5 минут, то получим статистику за послеине 5 минут. Так же наверное, правильным будет учесть живучесть сессии, при временном диапазоне. Edited April 13, 2018 by bomberman Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.