Обнаружил что с KERNEL NAT не работает NAT для PPTP. Одновременно через VPN может работать только 1 пользователь. Конфигурация:firewall_enable="YES"
firewall_type="OPEN"firewall_nat_enable="YES"
firewall_nat_interface="vlan0"
firewall_nat_flags="same_ports redirect_port tcp 192.168.1.30:210 210 redirect_port tcp 192.168.2.1:6112 6112"
Если так:natd_enable="YES"
natd_flags="-redirect_port tcp 192.168.1.30:210 210 -redirect_port tcp 192.168.2.1:6112 6112 -unregistered_only -use_sockets -same_ports -punch_fw 19000:100"
natd_interface="vlan0"то у всех работает нормально.
Кто нибудь победил ?
>Обнаружил что с KERNEL NAT не работает NAT для PPTP. Одновременно через
>VPN может работать только 1 пользователь. Конфигурация:Работает KERNEL NAT c NAT в PPP для PPTP и много пользователей работает.
У Вас какой PPTP клиент ?
Для mpd надо два nat или две instance конфигурить.
Для pptpclient ( http://pptpclient.sourceforge.net/ ) с ppp можно nat и nat в ppp.
Не забудьте про опцию -dynamic .Слелайте поиск по этому сайту. Примеров была куча.
>[оверквотинг удален]
>Работает KERNEL NAT c NAT в PPP для PPTP и много пользователей
>работает.
>
>У Вас какой PPTP клиент ?
>Для mpd надо два nat или две instance конфигурить.
>Для pptpclient ( http://pptpclient.sourceforge.net/ ) с ppp можно nat и nat в
>ppp.
>Не забудьте про опцию -dynamic .
>
>Слелайте поиск по этому сайту. Примеров была куча.Уточняю. FreeBSD работает раутером между интернетом и локалкой. Реальный IP один и он на внешнем интерфейсе, машины в локалке имеют IP из частного диапазона и работают через NAT. Несколько клиентов (Win XP) ходят через VPN (PPTP) на один и тот-же сервер, который расположен снаружи. Так вот когда NAT реализован через natd клиенты могут работать через VPN все одновременно, если же через in kernel nat, то нормально работает только один, остальные при попытке подключения получают (не уверен, т.к. уже перенастроил) ошибку 619.
Насколько я знаю для работы нескольких пользователей с одним VPN сервером через NAT система должна уметь делать nat для протокола GRE. И natd, и in kernel nat основаны на libalias, и я предполагал что проблем не возникнет, однако вылезли грабли. Примеры конфигурации выше были максимально упрощены чтобы убедиться что проблема действительно возникает именно из-за подсистемы NAT.
>Уточняю. FreeBSD работает раутером между интернетом и локалкой. Реальный IP один и
>он на внешнем интерфейсе, машины в локалке имеют IP из частного
>диапазона и работают через NAT. Несколько клиентов (Win XP) ходят через
>VPN (PPTP) на один и тот-же сервер, который расположен снаружи. ТакКаковы конечные точки PPTP туннеля?
VPN (PPTP) реализован между FreeBSD и внешним сервером?Или между несколькими WinXP и внешним сервером? :-(
Или Вы PPTP трафик, таким образом, закрываете с помощью MPPE?>вот когда NAT реализован через natd клиенты могут работать через VPN
>все одновременно, если же через in kernel nat, то нормально работает
>только один, остальные при попытке подключения получают (не уверен, т.к. уже
>перенастроил) ошибку 619.
>Насколько я знаю для работы нескольких пользователей с одним VPN сервером через
>NAT система должна уметь делать nat для протокола GRE. И natd,Без поддержки GRE PPTP не работает.
echo "if_gre_load=\"YES\"" >> /boot/loader.conf
>Каковы конечные точки PPTP туннеля?
>VPN (PPTP) реализован между FreeBSD и внешним сервером?
>
>Или между несколькими WinXP и внешним сервером? :-(
>Или Вы PPTP трафик, таким образом, закрываете с помощью MPPE?
>Между несколькими WinXP внутри сети и одним внешним сервером _одновременно_.
>
>Без поддержки GRE PPTP не работает.
>echo "if_gre_load=\"YES\"" >> /boot/loader.conf
>FreeBSD _не_ подключается к VPN.
#ipfw list
00050 divert 8668 ip4 from any to any via vlan0
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
65000 allow ip from any to any
65535 deny ip from any to anyТак работает.
А так:
#ipfw list
00050 nat 123 ip4 from any to any via vlan0
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
65000 allow ip from any to any
65535 deny ip from any to any#ipfw nat 123 show config
ipfw nat 123 config if vlan0 log
не работает. Видимо недопилили.
>00200 deny ip from any to 127.0.0.0/8
>00300 deny ip from 127.0.0.0/8 to any
>65000 allow ip from any to any
>65535 deny ip from any to any
>
>#ipfw nat 123 show config
>
>ipfw nat 123 config if vlan0 log
>
>не работает. Видимо недопилили.Поддержка GRE в ядре FreeBSD имеется , модуль GRE загружен ?
>[оверквотинг удален]
>>65000 allow ip from any to any
>>65535 deny ip from any to any
>>
>>#ipfw nat 123 show config
>>
>>ipfw nat 123 config if vlan0 log
>>
>>не работает. Видимо недопилили.
>
>Поддержка GRE в ядре FreeBSD имеется , модуль GRE загружен ?проблема решена?
c pf nat + gre такие же проблемы, решение через frickin прокси для gre
>[оверквотинг удален]
>>>
>>>ipfw nat 123 config if vlan0 log
>>>
>>>не работает. Видимо недопилили.
>>
>>Поддержка GRE в ядре FreeBSD имеется , модуль GRE загружен ?
>
>проблема решена?
>c pf nat + gre такие же проблемы, решение через frickin прокси
>для greНет, решения для kernel nat не нашел. Накопал переписку во FreeBSD maillists, из которой понял что там все не радужно. Там проблемы с использованием памяти в контексте ядра и чтоб их устранить нужно половину libalias переписать. Насколько я понимаю Frickin proxy работает в userspace и принципиальной разницы между ipfw+natd и pf+frickin нет. Откатился на natd.
Надо будет еще ng_nat попробовать.
>[оверквотинг удален]
>>проблема решена?
>>c pf nat + gre такие же проблемы, решение через frickin прокси
>>для gre
>
>Нет, решения для kernel nat не нашел. Накопал переписку во FreeBSD maillists,
>из которой понял что там все не радужно. Там проблемы с
>использованием памяти в контексте ядра и чтоб их устранить нужно половину
>libalias переписать. Насколько я понимаю Frickin proxy работает в userspace и
>принципиальной разницы между ipfw+natd и pf+frickin нет. Откатился на natd.
>Надо будет еще ng_nat попробовать.Если вдруг еще ответ не найден, то надо подгрузить alias_pptp.
kldload alias_pptp/boot/loader.conf
alias_pptp_load="YES"
>[оверквотинг удален]
>>использованием памяти в контексте ядра и чтоб их устранить нужно половину
>>libalias переписать. Насколько я понимаю Frickin proxy работает в userspace и
>>принципиальной разницы между ipfw+natd и pf+frickin нет. Откатился на natd.
>>Надо будет еще ng_nat попробовать.
>
>Если вдруг еще ответ не найден, то надо подгрузить alias_pptp.
>kldload alias_pptp
>
>/boot/loader.conf
>alias_pptp_load="YES"поднимайте нат в скрипте pptp после подняния канала и всё будет работать
Смотрю тут нат керновый обсуждается, множественные коннекты до сервера за натом с локалки возможны в случае загруженного модуля alias_pptp.ko. GRE трафик нужно дополнительным правилом открыть после ната.
ipfw add allow gre from any to any
Ну и не забыть запихнуть трафик в нат от клиента
ipfw add nat 123 (or any) all from any to any via vlan0
>Смотрю тут нат керновый обсуждается, множественные коннекты до сервера за натом с
>локалки возможны в случае загруженного модуля alias_pptp.ko. GRE трафик нужно дополнительным
>правилом открыть после ната.
>ipfw add allow gre from any to any
>Ну и не забыть запихнуть трафик в нат от клиента
>ipfw add nat 123 (or any) all from any to any via
>vlan0а вот почему может переставать работать nat при отключении/подключении заново через pptp?
описал проблему тут http://www.opennet.me/openforum/vsluhforumID10/4617.html#0
>поднимайте нат в скрипте pptp после подняния канала и всё будет работать
>Да и не требуется поднимать pptp на FreeBSD. Она служит маршрутизатором.
Win XP (PPTP Client)---
Win 2000 (PPTP Client)----FreeBSD (NAT) ---- Cisco (PPTP Server)
Linux (PPTP Client)----