Использование NETGRAPH для NAT и NetFlow с mpd (FreeBSD6+)

Форум для размещения материалов по реализации различных схем использования ПО, решению частых проблем и предупреждению частых ошибок
Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

kaN5300 писал(а): "pf ipfw" я так понимаю подразумевается связка двух пакетных фильтров. А почему "если 7.х", почему на шестерке нельзя?
Виноват имелось в виду
pf или ipfw

В 7 в ipfw есть NAT. В 6.x "ядерный" NAT есть только в pf, ipf, ng_nat. Просто использование natd видится мне мало перспективным.

Не совсем понял что не так с mpd5 ?

set iface enable netflow-in
set iface enable netflow-out

Это если средствами mpd. Хотя при таком подходе межабонентский трафик дублируется.

Аватара пользователя
kaN5300
Сообщения: 480
Зарегистрирован: Пт янв 21, 2005 17:27
Откуда: Ыукзгрщм
Контактная информация:

Сообщение kaN5300 »

Спасибо за напоминание на счет ната встроенного в ipfw. Думаю, будет очень удобно.

Про
set iface enable netflow-in
set iface enable netflow-out

я знаю, но вот работало одно время, потом перестало и неясно в чем дело. КОнфиг вот такой:

Код: Выделить всё

        set netflow export 127.0.0.1 9996
        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:
        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 netflow-in
        set iface enable netflow-out
        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
tcpdump -i lo0 port 9996 глухо =(

ngctl:

Код: Выделить всё

There are 18 total nodes:
  Name: ngctl2550       Type: socket          ID: 0000001a   Num hooks: 0
  Name: mpd2527-B-1-mss Type: tcpmss          ID: 00000019   Num hooks: 2
  Name: mpd2527-nfso    Type: ksocket         ID: 00000018   Num hooks: 1
  Name: mpd2527-nf      Type: netflow         ID: 00000017   Num hooks: 5
  Name: mpd2527-stats   Type: socket          ID: 00000015   Num hooks: 0
  Name: mpd2527-B-1     Type: ppp             ID: 00000014   Num hooks: 3
  Name: ng0             Type: iface           ID: 00000013   Num hooks: 1
  Name&#58; <unnamed>       Type&#58; ksocket         ID&#58; 00000012   Num hooks&#58; 1
  Name&#58; <unnamed>       Type&#58; pptpgre         ID&#58; 00000011   Num hooks&#58; 2
  Name&#58; mpd2527-L-1-lt  Type&#58; tee             ID&#58; 0000000f   Num hooks&#58; 2
  Name&#58; mpd2527-eso     Type&#58; socket          ID&#58; 0000000e   Num hooks&#58; 0
  Name&#58; mpd2527-cso     Type&#58; socket          ID&#58; 0000000d   Num hooks&#58; 0
  Name&#58; mpd2527-lso     Type&#58; socket          ID&#58; 0000000c   Num hooks&#58; 1
  Name&#58; nat             Type&#58; nat             ID&#58; 00000006   Num hooks&#58; 2
  Name&#58; ipfw            Type&#58; ipfw            ID&#58; 00000004   Num hooks&#58; 2
  Name&#58; bge1            Type&#58; ether           ID&#58; 00000003   Num hooks&#58; 0
  Name&#58; bge0            Type&#58; ether           ID&#58; 00000002   Num hooks&#58; 0
  Name&#58; fxp0            Type&#58; ether           ID&#58; 00000001   Num hooks&#58; 0
+ show mpd2527-nf&#58;
  Name&#58; mpd2527-nf      Type&#58; netflow         ID&#58; 00000017   Num hooks&#58; 5
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  iface3          mpd2527-B-1-mss tcpmss       00000019        in
  out3            mpd2527-nf      netflow      00000017        out2
  out2            mpd2527-nf      netflow      00000017        out3
  iface2          mpd2527-B-1     ppp          00000014        inet
  export          mpd2527-nfso    ksocket      00000018        inet/dgram/udp

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

Что-то меня смущает висящая в воздухе строка

set netflow export 127.0.0.1 9996

Я бы в startup поставил.

У самого netflow конфигурируется во внешнем скрипте во время старта системы.

Аватара пользователя
kaN5300
Сообщения: 480
Зарегистрирован: Пт янв 21, 2005 17:27
Откуда: Ыукзгрщм
Контактная информация:

Сообщение kaN5300 »

Прикол в том, чо в раздел startup эти строки никак не клеются. Получается следующее при старте системы:

Код: Выделить всё

mpd.conf&#58;26&#58; Unknown command&#58; 'set netflow export 127.0.0.1 9996'. Try "help".
"*" is unknown. Enter "log" for list.

Код: Выделить всё

startup&#58;
        # 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
        set netflow export 127.0.0.1 9996
        log +*
UPD: Во как! взял, ради интереса в интерактивном режиме решил netflow включить и получил синтаксис, отличный от мануала:

Код: Выделить всё

Available commands&#58;
 bundle   &#58; Choose/list bundles          close    &#58; Close a layer
 create   &#58; Create new item              destroy  &#58; Destroy item
 exit     &#58; Exit console                 iface    &#58; Choose bundle by iface
 help     &#58; Help on any command          link     &#58; Choose link
 load     &#58; Read from config file        log      &#58; Set/view log options
 msession &#58; Ch. bundle by msession-id    open     &#58; Open a layer
 quit     &#58; Quit program                 repeater &#58; Choose/list repeaters
 session  &#58; Choose link by session-id    set      &#58; Set parameters
 show     &#58; Show status
&#91;L&#93; set netflow ?
Commands available under "set netflow"&#58;
 peer     &#58; Set export destination       self     &#58; Set export source
 timeouts &#58; Set NetFlow timeouts         node     &#58; Set node name to use
 hook     &#58; Set initial hook number
&#91;L&#93; set netflow peer ?
Usage&#58; set netflow peer &#123;ip&#125; &#123;port&#125;
&#91;L&#93; set netflow peer ip port
в то время, как в мане пишет:

set netflow export ip port

Set destination IP address and port, where NetFlow export datagrams will be sent. This options is important to have working NetFlow.

В результате такой конфиг вышел (при котором всё работает):

Код: Выделить всё

startup&#58;
        # 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
        set netflow peer 127.0.0.1 9996
        #set log +*

Закрыто