Здравствуйте, есть проблемка.Считаю трафик на внешнем ифейсе, для того чтобы сверяться с провайдером. Пров выдает инет с 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 показывают "правильные" адреса.
>[оверквотинг удален]
>195.34.52.25 14928 192.168.х.х 2401
>tcp 846 7
> 12433446
>
>Почему так происходит ? Ведь в место "192.168.х.х" должен стоять белый IP
>адрес.
>КАК сделать, чтобы в ipacctd попадали правильный IP белый IP, выдаваемый провайдером
>?
>
>ЗЫЖ trafshow и tcpdump на tun0 показывают "правильные" адреса.что значит _обнаруживаются_ ?
>[оверквотинг удален]
>> 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 внешнего ифейса.
Сорри, адрес неверно написал195.34.52.25 14928 y.y.y.y 2401 tcp 846 7 12433446
где, y.y.y.y - белый IP внешнего ифейса.
>Сорри, адрес неверно написал
>
>195.34.52.25 14928 y.y.y.y 2401
>tcp 846 7
> 12433446
>
>где, y.y.y.y - белый IP внешнего ифейса.что значит присутствуют??? как чать лога или вообще только с серым айпишником все строки??
>>Сорри, адрес неверно написал
>>
>>195.34.52.25 14928 y.y.y.y 2401
>>tcp 846 7
>> 12433446
>>
>>где, y.y.y.y - белый IP внешнего ифейса.
>
>что значит присутствуют??? как чать лога или вообще только с серым айпишником
>все строки??Если все компы локалки пущу в инет, то они и засвется с серыми IP.
Щас у меня только 2 машины напрямик бегают, без Сквидов.
>[оверквотинг удален]
>>> 12433446
>>>
>>>где, y.y.y.y - белый IP внешнего ифейса.
>>
>>что значит присутствуют??? как чать лога или вообще только с серым айпишником
>>все строки??
>
>Если все компы локалки пущу в инет, то они и засвется с
>серыми IP.
>Щас у меня только 2 машины напрямик бегают, без Сквидов.русский язык дружу?
>>[оверквотинг удален]
> русский язык дружу?Вы о чем ?
Что вам не понятно в описании проблемы ?Скажу другими словами, откуда 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
>[оверквотинг удален]
>
>
>$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. =)))