Перейти к содержимому
Калькуляторы

Мониторинг NAT сервера на Linux

Добрый день, коллеги

Поднял 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 в пике было занято.

Изменено пользователем Macro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Немного неверно вопрос поставлен.

 

sysctl net.netfilter.nf_conntrack_max - максимально возможное число трансляций

sysctl net.netfilter.nf_conntrack_count - текущее число трансляций

 

Это все что нужно мониторить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему же?

А возможный случай, когда закончатся свободные порты и внешние IP закончатся?

Тем более при условии правила --persistent ?

 

sysctl net.netfilter.nf_conntrack_max - это показатель только для количества трансляций, только IP и порты могут закончиться раньше чем количество трансляций достигнет максимума.

 

Да увидел, что max вместо count был, исправил, но вопрос мониторинга свободных IP и портов не снимается.

Изменено пользователем Macro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

39 минут назад, Macro сказал:

А возможный случай, когда закончатся свободные порты и внешние IP закончатся?

посмотрите conntrack-tools:
conntrack -S/conntrack -C
может ещё что  полезное из ss -s можно взять

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пологаю можно ещё получить любопытную статистику по результатам работы 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 минут. Так же наверное, правильным будет учесть живучесть сессии, при временном диапазоне.

Изменено пользователем bomberman

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.