Помогите пожалуйста с этим делом..
Дано: FreeBSD 9.0 Release.. в ядре включен pf.. но НАТ работать отказывается.
Простенькие правила для самопроверки:
pf.conf
#################################
int_if="dc0"
ext_if="tun0"
set skip on lo0
scrub in
nat on $ext_if from 10.25.1.0/24 to any -> ($ext_if)
pass all
#################################
На FreeBSD 8.2 работает без проблем.
Есть ли соображения
в 9ку закоммитили свежий pf - может какие правила поменялись?
pf не использую, только предполагаю
> в 9ку закоммитили свежий pf - может какие правила поменялись?
> pf не использую, только предполагаюДа! Они впилили pf из OpenBSD 4.5
Смотрел документацию ничего не менялось... по крайней мере документация о pf не менялась... а вот НАТ не работает... где грабли... черт его знает..
>[оверквотинг удален]
> #################################
> int_if="dc0"
> ext_if="tun0"
> set skip on lo0
> scrub in
> nat on $ext_if from 10.25.1.0/24 to any -> ($ext_if)
> pass all
> #################################
> На FreeBSD 8.2 работает без проблем.
> Есть ли соображенияа они нормально загрузились?
pfctl -sn
pfctl -sr
>[оверквотинг удален]
>> set skip on lo0
>> scrub in
>> nat on $ext_if from 10.25.1.0/24 to any -> ($ext_if)
>> pass all
>> #################################
>> На FreeBSD 8.2 работает без проблем.
>> Есть ли соображения
> а они нормально загрузились?
> pfctl -sn
> pfctl -srзагрузились без всяких проблем... ошибки негде не проявляются... но НАТ все равно не работает
>[оверквотинг удален]
>>> nat on $ext_if from 10.25.1.0/24 to any -> ($ext_if)
>>> pass all
>>> #################################
>>> На FreeBSD 8.2 работает без проблем.
>>> Есть ли соображения
>> а они нормально загрузились?
>> pfctl -sn
>> pfctl -sr
> загрузились без всяких проблем... ошибки негде не проявляются... но НАТ все равно
> не работаетПопробуйте не использовать макросы, не упрощать синтаксис (pass in on $your_if inet from any to any вместо pass in и т.д.). Лично у меня была похожая ситуация с макросами. Если указать ext_if=tun0 без кавычек, то правила грузились без ошибок но НАТ не работал. Чего не наблюдал в предыдущих версиях ОС.
>[оверквотинг удален]
>>> а они нормально загрузились?
>>> pfctl -sn
>>> pfctl -sr
>> загрузились без всяких проблем... ошибки негде не проявляются... но НАТ все равно
>> не работает
> Попробуйте не использовать макросы, не упрощать синтаксис (pass in on $your_if
> inet from any to any вместо pass in и т.д.). Лично
> у меня была похожая ситуация с макросами. Если указать ext_if=tun0 без
> кавычек, то правила грузились без ошибок но НАТ не работал. Чего
> не наблюдал в предыдущих версиях ОС.Пробовал без макросов... не помагает
>[оверквотинг удален]
>>>> pfctl -sn
>>>> pfctl -sr
>>> загрузились без всяких проблем... ошибки негде не проявляются... но НАТ все равно
>>> не работает
>> Попробуйте не использовать макросы, не упрощать синтаксис (pass in on $your_if
>> inet from any to any вместо pass in и т.д.). Лично
>> у меня была похожая ситуация с макросами. Если указать ext_if=tun0 без
>> кавычек, то правила грузились без ошибок но НАТ не работал. Чего
>> не наблюдал в предыдущих версиях ОС.
> Пробовал без макросов... не помагает0. просто предположение а роутинг у вас включен ?
1. показывайте вывод конкретных команд а не свою интерпритацию
2. включите логинг и покажите куда (не)идут пакеты и как
>[оверквотинг удален]
>>>> не работает
>>> Попробуйте не использовать макросы, не упрощать синтаксис (pass in on $your_if
>>> inet from any to any вместо pass in и т.д.). Лично
>>> у меня была похожая ситуация с макросами. Если указать ext_if=tun0 без
>>> кавычек, то правила грузились без ошибок но НАТ не работал. Чего
>>> не наблюдал в предыдущих версиях ОС.
>> Пробовал без макросов... не помагает
> 0. просто предположение а роутинг у вас включен ?
> 1. показывайте вывод конкретных команд а не свою интерпритацию
> 2. включите логинг и покажите куда (не)идут пакеты и как###########################
rc.conf
gateway_enable="YES"
###########################
sysctl.conf
net.inet.ip.forwarding = 1
###########################
pf -sn
nat log on tun0 inet from 10.25.1.0/24 to any -> (tun0) round-robin
###########################
pf -sr
scrub in all fragment reassemble
pass log all flags S/SA keep state
###########################
tcpdump -n -e -ttt -r /var/log/pf | grep 10.25.1.250
00:00:08.090005 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13477 > 173.194.70.138.80: Flags [S], seq 2442200688, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
00:00:00.146568 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13478 > 173.194.70.138.80: Flags [S], seq 1603204610, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
00:00:00.759482 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13479 > 173.194.70.113.443: Flags [S], seq 3127474626, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
00:00:00.244582 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13480 > 173.194.70.113.443: Flags [S], seq 718251779, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
00:00:00.859203 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13481 > 88.85.93.101.80: Flags [S], seq 3533047478, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
00:00:00.247623 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13482 > 88.85.93.101.80: Flags [S], seq 2888303267, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
Это маленький кусок...
Не работает... ничего в нет не пингуется... сайты не открываются
С локальным хостом всё нормально?
Попробуйте:
nat pass on tun0 inet from 10.25.1.0/24 to any -> (tun0)Покажи
sysctl net.inet.ip.forwarding> 00:00:00.859203 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13481 > 88.85.93.101.80:
> Flags [S], seq 3533047478, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK],
> length 0
> 00:00:00.247623 rule 0..16777216/0(match): pass in on dc0: 10.25.1.250.13482 > 88.85.93.101.80:
> Flags [S], seq 2888303267, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK],
> length 0
> Это маленький кусок...
> Не работает... ничего в нет не пингуется... сайты не открываются
>[оверквотинг удален]
> #################################
> int_if="dc0"
> ext_if="tun0"
> set skip on lo0
> scrub in
> nat on $ext_if from 10.25.1.0/24 to any -> ($ext_if)
> pass all
> #################################
> На FreeBSD 8.2 работает без проблем.
> Есть ли соображенияЕсли актуально, покажи rc.conf, думаю забыл прописать gateway_enable="YES"
В FreeBSD 9 строка, отвечающая за NAT немного изменилась:nat on $ext_if from !($ext_if) -> ($ext_if:0)
После перезагрузки сервера, перестал работать НАТ, интернет через Сквид работает, аська через Сок4 работает, а Ната нету... Нат организован через PF.
> После перезагрузки сервера, перестал работать НАТ, интернет через Сквид работает, аська
> через Сок4 работает, а Ната нету... Нат организован через PF.Ну а сам pf загружен? kldstat|grep pf?
pfctl -e -f /etc/pf.conf ?
>> После перезагрузки сервера, перестал работать НАТ, интернет через Сквид работает, аська
>> через Сок4 работает, а Ната нету... Нат организован через PF.
> Ну а сам pf загружен? kldstat|grep pf?
> pfctl -e -f /etc/pf.conf ?[root@inter /etc/rc.d]# kldstat|grep pf
[root@inter /etc/rc.d]# kldstat
Id Refs Address Size Name
1 6 0xc0400000 56c79c kernel
2 1 0xc096d000 6a500 acpi.ko
3 1 0xc43ff000 e000 fuse.ko
4 1 0xc458e000 4000 logo_saver.ko[root@inter /etc/rc.d]# pfctl -e -f /etc/pf.conf
pfctl: pf already enabledкусок all.log:
Jan 28 09:59:56 inter kernel: Starting pflog.
Jan 28 09:59:56 inter kernel: Jan 28 09:59:55 pflogd[520]: [priv]: msg PRIV_OPEN_LOG received
Jan 28 09:59:56 inter kernel: Enabling pf.
Jan 28 09:59:56 inter kernel: pf enabled
Помогите плиз кто чем может, готов выложить любую инфу с сервака. :(
> Помогите плиз кто чем может, готов выложить любую инфу с сервака. :(Влючен форвардинг пакетов? Один должно стоять.
sysctl net.inet.ip.forwardingНу и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают во внешку?
>> Помогите плиз кто чем может, готов выложить любую инфу с сервака. :(
> Влючен форвардинг пакетов? Один должно стоять.
> sysctl net.inet.ip.forwardingСтоит 0, прописал в sysctl.conf строку net.inet.ip.forwarding=1, рестартанул сервак, всё равно стоит 0
> Ну и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают
> во внешку?
>>> Помогите плиз кто чем может, готов выложить любую инфу с сервака. :(
>> Влючен форвардинг пакетов? Один должно стоять.
>> sysctl net.inet.ip.forwarding
> Стоит 0, прописал в sysctl.conf строку net.inet.ip.forwarding=1, рестартанул сервак,
> всё равно стоит 0
>> Ну и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают
>> во внешку?Поставь принудительно
sysctl net.inet.ip.forwarding=1
Собсно после этого и проверяй как работает.
в /etc/rc.conf должна быть строка
gateway_enable="YES"
>>> Помогите плиз кто чем может, готов выложить любую инфу с сервака. :(
>> Влючен форвардинг пакетов? Один должно стоять.
>> sysctl net.inet.ip.forwarding
> Стоит 0, прописал в sysctl.conf строку net.inet.ip.forwarding=1, рестартанул сервак,
> всё равно стоит 0
>> Ну и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают
>> во внешку?Сделал sysctl net.inet.ip.forwarding=1 и сразу всё заработало, как бы его теперь закрепить чтобы оно после рестарта не сбрасывалось на 0, раньше рестартовал неоднократно и всё было типтоп.
Спасибо за советы!
>[оверквотинг удален]
>>> Влючен форвардинг пакетов? Один должно стоять.
>>> sysctl net.inet.ip.forwarding
>> Стоит 0, прописал в sysctl.conf строку net.inet.ip.forwarding=1, рестартанул сервак,
>> всё равно стоит 0
>>> Ну и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают
>>> во внешку?
> Сделал sysctl net.inet.ip.forwarding=1 и сразу всё заработало, как бы его теперь закрепить
> чтобы оно после рестарта не сбрасывалось на 0, раньше рестартовал неоднократно
> и всё было типтоп.
> Спасибо за советы!в /etc/rc.conf должна быть строка
gateway_enable="YES"Эта строчка и включает форвардинг.
>[оверквотинг удален]
>>> всё равно стоит 0
>>>> Ну и не плохо было бы посмотреть тебе tcpdump. Пакеты вообще вылетают
>>>> во внешку?
>> Сделал sysctl net.inet.ip.forwarding=1 и сразу всё заработало, как бы его теперь закрепить
>> чтобы оно после рестарта не сбрасывалось на 0, раньше рестартовал неоднократно
>> и всё было типтоп.
>> Спасибо за советы!
> в /etc/rc.conf должна быть строка
> gateway_enable="YES"
> Эта строчка и включает форвардинг.Эта строка есть и была всегда.