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

IP NAT translation logging Как настроить с нуля?

Всем доброго времени суток!

 

Возникла острая необходимость изучить и настроить логирование NAT.

 

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

Если ткнете носом в материалы для изучения (как настраивается и т.д) буду премного благодарен! :)

 

 

Кто чем пользуется для логирования трансляций NAT? через что идет "поток" логирования - netflow? Сколько места выделять на сервере для логов? Нужен ли отдельный сервер? Какую систему ставить под сервер логирования (какие утилиты/пакеты/зависимости ставить)? Как логировать трансляции CGN - ведь там нет Outside global адресов в трансляции (и что делать тогда при запросе из ФСБ)?

 

Вообщем вопросов у меня очень много - потому что я никогда не сталкивался с этим. Но буду очень рад научиться этому, поэтому прошу помощи!:)

Share this post


Link to post
Share on other sites

У меня на cisco 7204vxr сделано так.

На интересующих интерфейсах сделано

 ip flow ingress
ip flow egress

и глобально

ip flow-export source FastEthernet0/0
ip flow-export version 5
ip flow-export destination 212.ххх.ххх.61 9996

 

Соответственно на сервере 212.ххх.ххх.61 стоит netams, который все это складывает в mysql-базу.

Т.к. объем получается приличный и в соответствии с требованиями СОРМа, из этой базы раз в час все выгребается и кладется в ИС СОРМа, а сама база очищается.

Вместо netams наверное можно поставить другой коллектор типа flow-tool и т.п.

Share this post


Link to post
Share on other sites

У меня на cisco 7204vxr сделано так.

На интересующих интерфейсах сделано

 

 ip flow ingressip flow egress

 

и глобально

 

ip flow-export source FastEthernet0/0ip flow-export version 5ip flow-export destination 212.ххх.ххх.61 9996

 

 

Соответственно на сервере 212.ххх.ххх.61 стоит netams, который все это складывает в mysql-базу.

Т.к. объем получается приличный и в соответствии с требованиями СОРМа, из этой базы раз в час все выгребается и кладется в ИС СОРМа, а сама база очищается.

Вместо netams наверное можно поставить другой коллектор типа flow-tool и т.п.

 

 

А что такое ИС СОРМА, их хранилище какое то?

 

От LB не используете LBucd и учитывать ресурс\порт? У нас загибается так же из-за объёма...

Share this post


Link to post
Share on other sites

А что такое ИС СОРМА, их хранилище какое то?

 

Вот тут на днях обсуждали - http://forum.nag.ru/forum/index.php?showtopic=110203&view=findpost&p=1200518

 

От LB не используете LBucd и учитывать ресурс\порт? У нас загибается так же из-за объёма...

 

Для тех абонентов, которые тарифицируются агентом LBucd, использую. База пухнет - да. :( Правда задачи учитывать порты не стоит, только ресурсы.

Но у меня используется ЛБ для авторизации абонентов по pptp/pppoe (основная масса абонентов), это делает другой агент - LBarcd, а он не умеет собирать netflow. Вариант скрестить LBarcd и LBucd обсуждался вот тут http://forum.nag.ru/forum/index.php?showtopic=97064&view=findpost&p=1132660 , но я на него так и не решился, т.к. не откликнулся никто из тех, кто его на практике использовал. Представитель разработчика ЛБ тоже высказался супер кратко. Из всего этого я сделал вывод, что может функционал и есть, но быть его бета-тестером мне не захотелось.

Share this post


Link to post
Share on other sites

У меня на cisco 7204vxr сделано так.

На интересующих интерфейсах сделано

 ip flow ingress
ip flow egress

и глобально

ip flow-export source FastEthernet0/0
ip flow-export version 5
ip flow-export destination 212.ххх.ххх.61 9996

 

Соответственно на сервере 212.ххх.ххх.61 стоит netams, который все это складывает в mysql-базу.

Т.к. объем получается приличный и в соответствии с требованиями СОРМа, из этой базы раз в час все выгребается и кладется в ИС СОРМа, а сама база очищается.

Вместо netams наверное можно поставить другой коллектор типа flow-tool и т.п.

 

 

 

Это же простой Netflow "всего"? Я думал, что именно для NAT идет отдельный поток Netflow.. Или я ошибаюсь?

Share this post


Link to post
Share on other sites

Это же простой Netflow "всего"? Я думал, что именно для NAT идет отдельный поток Netflow.. Или я ошибаюсь?

Не понял вопрос. Если для СОРМа, то netflow надо снимать ДО NAT-а.

В моем случае я делаю ip flow и тут

interface Virtual-Template1
description PPTP VPN template interface
ip unnumbered Loopback0
...
ip flow ingress
ip flow egress
...

и тут:

interface Loopback0
ip address 10.1.1.1 255.255.255.0
ip flow ingress
ip flow egress

В результате трансляции снимаются до NAT-а и в обе стороны.

Или вы что-то другое имели ввиду?

Share this post


Link to post
Share on other sites

Он имеет ввиду логирование трансляций NAT, чтобы делать сопоставление публичный адрес к приватному. Об этом в первом сообщении и пишет:

Кто чем пользуется для логирования трансляций NAT?

 

Мы логируем на ASR1k через NetFlow v9.

Здесь в соседней теме пробегала ссылка на общую статью про NAT на IOS-XE (CSR1000v и ASR 1k). http://goo.gl/0e9N9B

Share this post


Link to post
Share on other sites

tehmeh прав - я именно логирование NAT трансляций имею ввиду.

 

Статья хорошая - я её уже видел. Со стороны сети настроить для меня это труда не составляет (настройка сенсора элементарна). Но я не очень хорошо разбираюсь в остальной части NetFlow (настройка коллектора и т.д) - ни разу этого не делал и, соответственно, запара в этом.

 

Самый главный вопрос для меня в этой статье - в конце : "Остаётся лишь научить коллектор понимать такие flow-потоки". И он не раскрыт :))

 

Как настроить коллектор и научить его понимать эти потоки - я не смог ничего найти..(

Edited by iostream

Share this post


Link to post
Share on other sites

Он имеет ввиду логирование трансляций NAT, чтобы делать сопоставление публичный адрес к приватному. Об этом в первом сообщении и пишет:

Кто чем пользуется для логирования трансляций NAT?

То, что циска выдает по sh ip nat tr ?

У меня как раз это и собирает.

Share this post


Link to post
Share on other sites

Как настроить коллектор и научить его понимать эти потоки - я не смог ничего найти..(

netams настраивал не я, но в /etc/netams/netams.conf:

service storage 1
type mysql
socket /var/run/mysqld/mysqld.sock
user netams
password xxxxxxxxxxxxxxxxxxxxx
dbname netams
accept all

service data-source 1
type netflow
listen 0.0.0.0 9996
source 212.ххх.ххх.230

service quota
policy ip
notify soft owner
notify hard owner
notify return owner

service alerter 0
report oid 06100 name rep1 type traffic period day detail simple
smtp-server localhost

service scheduler

service monitor 0
monitor to storage 1
monitor unit u_all

Share this post


Link to post
Share on other sites

То, что циска выдает по sh ip nat tr ?

У меня как раз это и собирает.

 

Да, то что циска собирает по этой команде.

Но ведь, судя по представленной конфигурации, в netflow идет весь трафик - и который за NAT, и который без NAT. Так?

 

 

Не секрет, что NetFlow и NAT - ресурсоемкие операции, поэтому я хотел бы их разнести по разным железкам:

 

- Обычный Netflow мне кажется целесообразным сделать на Border'е (нашем PE роутере) - через него идет весь поток трафика ( который "натился" и "без ната").

 

- "ip nat translation logging" с помощью Netflow v9 сделать на BRAS, которые и занимаются CGN c PAP и BPA (на этих BRAS, так же терминируются обычные клиенты - без NAT).

 

Если брать простой NetFlow для всех IP потоков, как Вы описали выше - будет "писаться" весь трафик (с NAT и без NAT). К этому же потеряется преимущество Block Port Allocation, который, как я понял, в случае "ip nat translation logging" снижает объем записываемых данных в значительное количество раз ( до 200, а может и больше - в зависимости от количества трансляций NAT на клиента)

 

 

P.S: Netams насколько я понял не opensource решение и стоит денег. А денег нет) Нужно opensource :)

Share this post


Link to post
Share on other sites

Где-то (может даже на этом форуме) читал и про другой подход.

Включается дебаг на NAT и отправляется на внешний syslog.

А внешний syslog парсить данные и складывает в базу данных.

Но поток данных будет большой, агрегацию нужно будет прикручивать обязательно и делать ее самому.

Share this post


Link to post
Share on other sites

Включается дебаг на NAT и отправляется на внешний syslog.

 

Мне кажется уже когда будет 5к абонентов за NAT - BRAS захочет "отдохнуть" )) Хотя может и ошибаюсь.. Но дебажить NAT для логирования трансляций это хардкор ИМХО :)

Edited by iostream

Share this post


Link to post
Share on other sites

А что такое ИС СОРМА, их хранилище какое то?

 

Вот тут на днях обсуждали - http://forum.nag.ru/forum/index.php?showtopic=110203&view=findpost&p=1200518

 

От LB не используете LBucd и учитывать ресурс\порт? У нас загибается так же из-за объёма...

 

Для тех абонентов, которые тарифицируются агентом LBucd, использую. База пухнет - да. :( Правда задачи учитывать порты не стоит, только ресурсы.

Но у меня используется ЛБ для авторизации абонентов по pptp/pppoe (основная масса абонентов), это делает другой агент - LBarcd, а он не умеет собирать netflow. Вариант скрестить LBarcd и LBucd обсуждался вот тут http://forum.nag.ru/forum/index.php?showtopic=97064&view=findpost&p=1132660 , но я на него так и не решился, т.к. не откликнулся никто из тех, кто его на практике использовал. Представитель разработчика ЛБ тоже высказался супер кратко. Из всего этого я сделал вывод, что может функционал и есть, но быть его бета-тестером мне не захотелось.

 

 

У нас используется как раз в режиме эмуляции, то есть переносить учётки не требуется, но итог тот же самый от БД.

Share this post


Link to post
Share on other sites

Гугли nfdump nsel

 

а давайте общаться )

уже сутки ломаю голову над NFDUMP, есть ASR + CGN + BPA

 

не хочет, зараза, правильно порты логировать, пишет "0"

и время-дата какое-то кривое ) 1970 год на дворе

 

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

пытался поправить как тут пишут - http://sourceforge.net/p/nfdump/mailman/message/31951163/, не очень что-то оно взлетело.

 

думаю посмотреть в сторону ipt netflow

Share this post


Link to post
Share on other sites

 

# cat /etc/rc.local#!/bin/bash/bin/nfcapd -z -w -D -T all -l /store/flows/asr-1002-x-NAT -p 8889 -I asr-1002-x-NAT -S 1/bin/nfcapd -z -w -D -T all -l /store/flows/asr-1002-x-DATA -p 9995 -I asr-1002-x-DATA -S 1

 

 

 

flow exporter FEX1destination x.x.x.xsource Loopback0export-protocol netflow-v5flow monitor MON1exporter FEX1record netflow ipv4 original-outputip flow monitor MON1 inputip flow monitor MON1 output!interface TenGigabitEthernet0/1/0.9encapsulation dot1Q 9ip nat outsideip flow monitor MON1 inputip flow monitor MON1 output!

 

 

 

ip nat log translations flow-export v9 udp destination x.x.x.x 8889 source Loopback0

 

Share this post


Link to post
Share on other sites

flow record V4_2

match ipv4 source address

match ipv4 destination address

match transport destination-port

!

!

flow exporter NETFLOW-V9

destination 10.0.2.10

transport udp 8888

!

!

flow monitor FLOW_MONITOR

description # description Used for basic ipv4 traffic analysis

exporter NETFLOW-V9

record V4_2

 

interface TenGigabitEthernet0/1/0.3

description # server NAT2 1.1.1.1

encapsulation dot1Q 3

ip vrf forwarding xxxx

ip address 1.1.1.1 255.255.255.240

ip flow monitor FLOW_MONITOR output

 

Вывод

 

http://c2n.me/3qHnNfm

 

13Гбит/c в чнн, 20k subscriber

 

Объем флоу за день от 11 до 13Г, за октябрь 347Г.

Храним только src dst port, парсим через nfdump

Все просто, дешево и сердито

Share this post


Link to post
Share on other sites

#nfdump -o raw -r /store/flows/asr-1002-x-NAT/nfcapd.current.2401......Flow Record: Flags        =              0x46 EVENT, Unsampled export sysid =                 1 size         =               116 first        =        1448262218 [2015-11-23 12:03:38] last         =        1448262218 [2015-11-23 12:03:38] msec_first   =               806 msec_last    =               806 src addr     =    100.64.228.174 dst addr     =           0.0.0.0 src port     =             41131 dst port     =                 0 fwd status   =                 0 tcp flags    =              0x00 ...... proto        =                17 UDP (src)tos     =                 0 (in)packets  =                 0 (in)bytes    =                 0 ip router    =      x.x.x.x engine type  =                 0 engine ID    =               200 received at  =     1448262218889 [2015-11-23 12:03:38.889] connect ID   =                 0 fw event     =                 1: CREATE fw ext event =                 0 Event time   =     1448262218806 [2015-11-23 12:03:38.806] src xlt port =             21213 dst xlt port =                 0 src xlt ip   =    x.x.x.113 dst xlt ip   =           0.0.0.0 nat event    =                 1: ADD ingress VRF  =                 0 egress VRF   =                 0

 

Share this post


Link to post
Share on other sites

вопрос снимается, в шары долблюсь похоже :) дата-время ок,

block start/end тоже нашел при указании -o raw

{noformat}

pblock start = 2048

pblock end = 3071

pblock step = 1

pblock size = 1024

{noformat}

Share this post


Link to post
Share on other sites

Че-то у меня в BPA не срослось, даже в TAC заводил, достаточно часто НАТ отказывался работать, хотя в пуле гора свободных адресов была. TAC не помог, сказали все правильно работает. т.е. правильно отказывает. Был в шоке.

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.