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

Исходное сообщение
"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"

Отправлено AdVv , 13-Май-09 18:35 
Обнаружил что с 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"

то у всех работает нормально.

Кто нибудь победил ?


Содержание

Сообщения в этом обсуждении
"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено DN , 13-Май-09 19:36 
>Обнаружил что с 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 .

Слелайте поиск по этому сайту. Примеров была куча.


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено AdVv , 13-Май-09 20:38 
>[оверквотинг удален]
>Работает 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 7.1 IPFW KERNEL NAT и PPTP"
Отправлено DN , 13-Май-09 23:20 
>Уточняю. 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
  


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено AdVv , 14-Май-09 07:50 

>Каковы конечные точки 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

не работает. Видимо недопилили.


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено DN , 14-Май-09 12:51 
>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 загружен ?


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено NShut , 22-Июн-09 09:33 
>[оверквотинг удален]
>>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


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено AdVv , 22-Июн-09 11:55 
>[оверквотинг удален]
>>>
>>>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 попробовать.


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено Golub Mikhail , 13-Окт-09 17:00 
>[оверквотинг удален]
>>проблема решена?
>>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"


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено анонимоус , 15-Фев-10 15:19 
>[оверквотинг удален]
>>использованием памяти в контексте ядра и чтоб их устранить нужно половину
>>libalias переписать. Насколько я понимаю Frickin proxy работает в userspace и
>>принципиальной разницы между ipfw+natd и pf+frickin нет. Откатился на natd.
>>Надо будет еще ng_nat попробовать.
>
>Если вдруг еще ответ не найден, то надо подгрузить alias_pptp.
>kldload alias_pptp
>
>/boot/loader.conf
>alias_pptp_load="YES"

поднимайте нат в скрипте pptp после подняния канала и всё будет работать


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено NightDiver , 02-Мрт-10 18:49 
Смотрю тут нат керновый обсуждается, множественные коннекты до сервера за натом с локалки возможны в случае загруженного модуля 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

"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено Diverse , 19-Июн-10 17:16 
>Смотрю тут нат керновый обсуждается, множественные коннекты до сервера за натом с
>локалки возможны в случае загруженного модуля 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


"FreeBSD 7.1 IPFW KERNEL NAT и PPTP"
Отправлено AdVv , 09-Апр-10 13:27 
>поднимайте нат в скрипте pptp после подняния канала и всё будет работать
>

Да и не требуется поднимать pptp на FreeBSD. Она служит маршрутизатором.


Win XP (PPTP Client)---
Win 2000 (PPTP Client)----FreeBSD (NAT) ---- Cisco (PPTP Server)
Linux (PPTP Client)----