Использование NETGRAPH для NAT и NetFlow с mpd (FreeBSD6+)
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Использование NETGRAPH для NAT и NetFlow с mpd (FreeBSD6+)
Крайне рекомендую.
организация NAT на два интерфейса(по адресу источника), прямое прохождение для пакетов с реальными адресами, снятие статистики NetFlow. Натит только семейство ng*.
http://wiki.bsdportal.ru/doc:netgraph_ng_nat
Апробировано на себе.
Два ната пока не сильно нужны, но есть два канала + спутниковый анлим, почему бы не пользоваться? Трафик считает, работает шустро, все исполняется в ядре.
По поводу работы mpd в качестве PPTP-сервера. Наблюдались тормоза до тех пор, пока не изменил mtu до 1300
Кто скажет оптимальное значение?
Есть еще такое мнение: стоит ставить mpd4, там можно netflow снимать прямо с бандлов. Кто осваивал?
Из непознанного: непонятно пока время реакции системы(на быстрых каналах актуально). Для ndsad была подсказана незадокументированная настройка - ng_lifetime. Здесь пока не понятно, скорее всего все будет рулиться настройками типа aggregation interval и aggregation to disk barrier
Собсно, рад тому, что нашел.
организация NAT на два интерфейса(по адресу источника), прямое прохождение для пакетов с реальными адресами, снятие статистики NetFlow. Натит только семейство ng*.
http://wiki.bsdportal.ru/doc:netgraph_ng_nat
Апробировано на себе.
Два ната пока не сильно нужны, но есть два канала + спутниковый анлим, почему бы не пользоваться? Трафик считает, работает шустро, все исполняется в ядре.
По поводу работы mpd в качестве PPTP-сервера. Наблюдались тормоза до тех пор, пока не изменил mtu до 1300
Кто скажет оптимальное значение?
Есть еще такое мнение: стоит ставить mpd4, там можно netflow снимать прямо с бандлов. Кто осваивал?
Из непознанного: непонятно пока время реакции системы(на быстрых каналах актуально). Для ndsad была подсказана незадокументированная настройка - ng_lifetime. Здесь пока не понятно, скорее всего все будет рулиться настройками типа aggregation interval и aggregation to disk barrier
Собсно, рад тому, что нашел.
-
- Сообщения: 131
- Зарегистрирован: Ср авг 10, 2005 21:32
- Откуда: Москва
а чего там писать то ? в самом общем случае в ядро <- ng_netflow, в описании бандлов: new -n -i далее по тексту, в общую часть описания : set netflow export ip (куда лить) port (на какой порт) т.е set netflow export 127.0.0.1 9996
получаем нормальный цисковый нетфлоу прям с бандлов !!! считает только входящий траф
далее внимательно курим man mpd4 и man ng_netflow на предмет учета трафика в обе стороны
сказанное справедливо для FreeBSD от 6,0 и дальше и для mpd4b5 - пока он самый свежий
получаем нормальный цисковый нетфлоу прям с бандлов !!! считает только входящий траф
![Smile :)](./images/smilies/icon_smile.gif)
сказанное справедливо для FreeBSD от 6,0 и дальше и для mpd4b5 - пока он самый свежий
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Не могу понять, что глючит.
В статистике диалапов биллинг рапортует о 200 соединениях(бред)
С указанными настройками(немного под себя перешаманивал) начинается жопа
Выражается жопа в потере пакетов. Замечено: у клиента на диалапе пакеты идут через один, часто через два(один прошел, два потерялось), а с рутера туда же все отлично. Крайне редко так, что без потерь замечательный пинг. Такое наблюдается при плотном использовании канала.
ng_netflow отдает статистику каждые 3 секунды биллингу. Нужен именно максимальный риалтайм. Железо точно не нагружено, ядро жрет не больше 8% если верить top
Есть подозрение(возникло на почве чтения мэйллистов), что виноват корявый алгоритм хеширования в ng_netflow.
С другой стороны есть вопрос: если запустить ndsad, то как будет он себя вести, если интерфейс(ng*) поднимется после запуска ndsad?
Пока в логах вижу, что ndsad цепляет только те ng*, у которых на момент запуска состояние UP.
В статистике диалапов биллинг рапортует о 200 соединениях(бред)
С указанными настройками(немного под себя перешаманивал) начинается жопа
![Smile :)](./images/smilies/icon_smile.gif)
ng_netflow отдает статистику каждые 3 секунды биллингу. Нужен именно максимальный риалтайм. Железо точно не нагружено, ядро жрет не больше 8% если верить top
Есть подозрение(возникло на почве чтения мэйллистов), что виноват корявый алгоритм хеширования в ng_netflow.
С другой стороны есть вопрос: если запустить ndsad, то как будет он себя вести, если интерфейс(ng*) поднимется после запуска ndsad?
Пока в логах вижу, что ndsad цепляет только те ng*, у которых на момент запуска состояние UP.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Не могу понять, что глючит.
В статистике диалапов биллинг рапортует о 200 соединениях(бред)
С указанными настройками(немного под себя перешаманивал) начинается жопа
Выражается жопа в потере пакетов. Замечено: у клиента на диалапе пакеты идут через один, часто через два(один прошел, два потерялось), а с рутера туда же все отлично. Крайне редко так, что без потерь замечательный пинг. Такое наблюдается при плотном использовании канала.
ng_netflow отдает статистику каждые 3 секунды биллингу. Нужен именно максимальный риалтайм. Железо точно не нагружено, ядро жрет не больше 8% если верить top
Есть подозрение(возникло на почве чтения мэйллистов), что виноват корявый алгоритм хеширования в ng_netflow.
С другой стороны есть вопрос: если запустить ndsad, то как будет он себя вести, если интерфейс(ng*) поднимется после запуска ndsad?
Пока в логах вижу, что ndsad цепляет только те ng*, у которых на момент запуска состояние UP.
В статистике диалапов биллинг рапортует о 200 соединениях(бред)
С указанными настройками(немного под себя перешаманивал) начинается жопа
![Smile :)](./images/smilies/icon_smile.gif)
ng_netflow отдает статистику каждые 3 секунды биллингу. Нужен именно максимальный риалтайм. Железо точно не нагружено, ядро жрет не больше 8% если верить top
Есть подозрение(возникло на почве чтения мэйллистов), что виноват корявый алгоритм хеширования в ng_netflow.
С другой стороны есть вопрос: если запустить ndsad, то как будет он себя вести, если интерфейс(ng*) поднимется после запуска ndsad?
Пока в логах вижу, что ndsad цепляет только те ng*, у которых на момент запуска состояние UP.
У ng_netflow есть такое сообщение settimeouts. Я поставил туда 30 секунд. Выглядит это так msg nfg: settimeouts { active=30 inactive=30 }
Уже давно крутится рабочая связка ng_ipfw+ng_netflow+ng_nat, жалоб нету. Чтобы не было головной боли с сотнями интерфейсов ng*, берется подсеть без привязок к интерфейсам, которая обрабатывается после правил с привязкой, и адреса на ng* вешаются только из этой подсети.
Уже давно крутится рабочая связка ng_ipfw+ng_netflow+ng_nat, жалоб нету. Чтобы не было головной боли с сотнями интерфейсов ng*, берется подсеть без привязок к интерфейсам, которая обрабатывается после правил с привязкой, и адреса на ng* вешаются только из этой подсети.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
- kaN5300
- Сообщения: 480
- Зарегистрирован: Пт янв 21, 2005 17:27
- Откуда: Ыукзгрщм
- Контактная информация:
Поставил mpd5, с Netflow всё понятно, непонятно только по NAT. Согласно доке достаточно в общем конфиге включить "set nat address ip", а в контексте инетрфейса его включить. Всё так и сделал, в ядро загрузил модуль ng_nat, нифига. С внешнего интерфейса NAS уходят пакеты без алиасинга, тоесть от имени "серого" пользователя.
КТо-то настраивал натирование чисто конфигом Mpd5? Или только через утилиту ng_ctl можно?
UPD: Через example из "man ng_nat" у меня всё работает. Я просто люблю, когда всё красиво сделано. Если это предусмотрено самим mpd5, то почему бы и нет?
Код: Выделить всё
set netflow export 127.0.0.1 9996
set nat address 33.62.70.2
set nat enable log
log +*
startup:
# configure mpd users
set user foo bar admin
set user foo1 bar1
# configure the console
set console self 127.0.0.1 5005
set console open
# configure the web server
set web self 0.0.0.0 5006
set web open
default:
load pptp_server
pptp_server:
set ippool add pool1 10.10.1.1 10.10.254.254
create bundle template B
set iface idle 1800
set iface enable tcpmssfix
set iface enable nat
set ipcp yes vjcomp
set ipcp ranges 10.10.254.254/32 ippool pool1
set ipcp dns 192.168.254.241
set ipcp nbns 217.150.34.129
create link template L pptp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1460
set pptp self 192.168.254.133
set link enable incoming
set auth enable radius-auth
set radius config /etc/radius.conf
set radius server 127.0.0.1 radius 1812 1813
set radius timeout 10
set radius retries 3
UPD: Через example из "man ng_nat" у меня всё работает. Я просто люблю, когда всё красиво сделано. Если это предусмотрено самим mpd5, то почему бы и нет?
- kaN5300
- Сообщения: 480
- Зарегистрирован: Пт янв 21, 2005 17:27
- Откуда: Ыукзгрщм
- Контактная информация:
"pf ipfw" я так понимаю подразумевается связка двух пакетных фильтров. А почему "если 7.х", почему на шестерке нельзя?Arti писал(а):Не тот это нат. Используйте pf ipfw (если 7.x) или отдельно создавать ноду ng_nat и использовать ng_ipfw.
А еще у меня netflow самопроизвольно перестал считать. Да и считал только в одну сторону. Опять же вопрос. Одним лишь кофигом mpd.conf кто-нибудь "научил" считать трафик "в обе стороны"?