URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85424
[ Назад ]

Исходное сообщение
"Подсчет траффика в FreeBSD 6.3 + Ipacctd"

Отправлено newchainik , 26-Май-09 17:48 
Здравствуйте, есть проблемка.

Считаю трафик на внешнем ифейсе, для того чтобы сверяться с провайдером. Пров выдает инет с PPPoE авторизацией, соотв. внешний ифейс - tun0, IP адрес - белый.

NAT для PPPoE пробовал обеспечивать ключом -nat при запуске ppp, проблема остается.

Вот кусок rc.firewall, обеспечивающий траффиком ipacctd и сам NAT.

#####################################################
$fwcmd add 210 tee 10003 ip from any to any via tun0

$fwcmd add 200 divert natd ip from $lan to any via tun0
$fwcmd add 201 divert natd ip from any to me via tun0

$fwcmd add 500 pass ip from $lan to any keep-state
#####################################################

ПРОБЛЕМА : В файле /var/log/ipacctd.tun0.log обнаруживаются записи о пакетах, с "серыми" адресами получателя, например вот так :

195.34.52.25   14928   192.168.х.х  2401    tcp     846     7       12433446

Почему так происходит ? Ведь в место "192.168.х.х" должен стоять белый IP адрес.
КАК сделать, чтобы в ipacctd попадали правильный IP белый IP, выдаваемый провайдером ?

ЗЫЖ trafshow и tcpdump на tun0 показывают "правильные" адреса.


Содержание

Сообщения в этом обсуждении
"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено Pahanivo , 26-Май-09 19:15 
>[оверквотинг удален]
>195.34.52.25   14928   192.168.х.х  2401    
>tcp     846     7
>      12433446
>
>Почему так происходит ? Ведь в место "192.168.х.х" должен стоять белый IP
>адрес.
>КАК сделать, чтобы в ipacctd попадали правильный IP белый IP, выдаваемый провайдером
>?
>
>ЗЫЖ trafshow и tcpdump на tun0 показывают "правильные" адреса.

что значит _обнаруживаются_ ?


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено NewChainik , 26-Май-09 21:09 
>[оверквотинг удален]
>>      12433446
>>
>>Почему так происходит ? Ведь в место "192.168.х.х" должен стоять белый IP
>>адрес.
>>КАК сделать, чтобы в ipacctd попадали правильный IP белый IP, выдаваемый провайдером
>>?
>>
>>ЗЫЖ trafshow и tcpdump на tun0 показывают "правильные" адреса.
>
>что значит _обнаруживаются_ ?

Это значит, что в логе ipacctd /var/log/ipacctd.tun0.log присутсвуют строки такого вида :

195.34.52.25   14928   192.168.х.х  2401    tcp     846     7       12433446

А ведь должно быть так :

95.34.52.25   14928   y.y.y.y  2401    tcp     846     7       12433446

где, y.y.y.y - белый IP внешнего ифейса.


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено NewChainik , 26-Май-09 21:11 
Сорри, адрес неверно написал

195.34.52.25   14928   y.y.y.y  2401    tcp     846     7       12433446

где, y.y.y.y - белый IP внешнего ифейса.


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено Pahanivo , 27-Май-09 07:31 
>Сорри, адрес неверно написал
>
>195.34.52.25   14928   y.y.y.y  2401    
>tcp     846     7
>      12433446
>
>где, y.y.y.y - белый IP внешнего ифейса.

что значит присутствуют??? как чать лога или вообще только с серым айпишником все строки??


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено newchainik , 27-Май-09 11:35 
>>Сорри, адрес неверно написал
>>
>>195.34.52.25   14928   y.y.y.y  2401    
>>tcp     846     7
>>      12433446
>>
>>где, y.y.y.y - белый IP внешнего ифейса.
>
>что значит присутствуют??? как чать лога или вообще только с серым айпишником
>все строки??

Если все компы локалки пущу в инет, то они и засвется с серыми IP.
Щас у меня только 2 машины напрямик бегают, без Сквидов.


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено Pahanivo , 27-Май-09 13:20 
>[оверквотинг удален]
>>>      12433446
>>>
>>>где, y.y.y.y - белый IP внешнего ифейса.
>>
>>что значит присутствуют??? как чать лога или вообще только с серым айпишником
>>все строки??
>
>Если все компы локалки пущу в инет, то они и засвется с
>серыми IP.
>Щас у меня только 2 машины напрямик бегают, без Сквидов.

русский язык дружу?


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено newchainik , 27-Май-09 14:37 
>>[оверквотинг удален]
> русский язык дружу?

Вы о чем ?
Что вам не понятно в описании проблемы ?

Скажу другими словами, откуда ipacctd "знает" о IP адресе получателя, СЛУШАЯ ВНЕШНИЙ ИФЕЙС?. Если IPFW сначала на порт ipacctd заворачивает, а потом уже в NATd ? Я так понимаю, что прилетающий пакет, попадать должен в Ipacctd, потом в NAT...
Но я менял порядок правил отсылающих пакеты в Natd и ipacctd, ничего не меняется...
Вернее меняется,

если номера правил в ipfw как в первом посте, то вот как видит ping ya.ru ( пинг с локальной сети) ipacctd :

213.180.204.8   0       x.x.91.254    0       icmp    240     4       12434215
192.168.1.1 8       213.180.204.8   0       icmp    240     4       12434215

Если сделать  вот так :

$fwcmd add 150 tee 10003 ip from any to any via tun0
$fwcmd add 200 divert natd ip from $lan to any via tun0
$fwcmd add 201 divert natd ip from any to me via tun0

То будет вот так в логе ипаццтд :

213.180.204.8   0       192.168.1.1 0       icmp    240     4       12434219
хх.хх.91.254    8       213.180.204.8   0       icmp    240     4       12434219


"Подсчет траффика в FreeBSD 6.3 + Ipacctd"
Отправлено newchainik , 28-Май-09 17:03 
>[оверквотинг удален]
>
>
>$fwcmd add 200 divert natd ip from $lan to any via tun0
>
>$fwcmd add 201 divert natd ip from any to me via tun0
>
>
>$fwcmd add 500 pass ip from $lan to any keep-state
>#####################################################
>

Все решилось просто,

$fwcmd add 190 tee 10003 ip from any to any via tun0 IN
$fwcmd add 200 divert natd ip from $lan to any via tun0
$fwcmd add 201 divert natd ip from any to me via tun0
$fwcmd add 210 tee 10003 ip from any to any via tun0 OUT

Я несразу допер о тонкостях работы natd. =)))