Jump to content
Калькуляторы

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

Edited by Macro

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

Почему же?

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

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

 

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

 

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

Edited by Macro

Share this post


Link to post
Share on other sites
39 минут назад, Macro сказал:

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

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now