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

Исходное сообщение
"проблемы с natd+ipfw на mpd"

Отправлено Stranger.rus , 06-Мрт-07 12:01 
Приветствую !
Есть несколько winxp клиентов(172.16.0.X), есть freeBSD 6.2 c двумя сетевыми интерфейсами(172.16.0.1 - rl0 и 192.168.67.xx - nve0),
соединение с провайдером осуществляется путем установки vpn'a c адресом сервера авторизации(до него прописан статическ. маршрут) 192.168.64.X.
Интерфейс vpn'a - ng0.

========================================================================
nve0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.67.87 netmask 0xffffffe0 broadcast 192.168.67.95
        ether 00:04:61:62:5a:04
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 172.16.0.1 netmask 0xffffff00 broadcast 172.16.0.255
        ether 00:04:61:62:5a:68
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1300
        inet 85.142.3.xy --> 10.0.1.xy netmask 0xffffffff
=========================================================================
Соединение vpn устанавливается, дальше после sleep 5, выполняется следующий скрипт

========================================================================
#!/bin/sh
natd -use_sockets -same_ports -unregistered_only -dynamic -interface ng0

ipfw -f flush

ipfw -f add divert natd all from any to any via ng0

#Следующие правила уже скорее от безысходности :)
ipfw -f add allow all from any to any via ng0
ipfw -f add allow all from any to any via nve0
ipfw -f add allow all from any to any via rl0
========================================================================

И все ок на клиентских машинах чудесным образом начинает бегать пинг до ya.ru ....НО
99% сайтов не открываются,посмотрел tcpdump -i rl0 вижу что запрос уходит и на него приходит ответ...и все дальше пакетики не бегают...
сначала грешил на MTU, как видно выставил его 1300 (даже чуть пониже чем советует пров) -не помогло,
затем на днс прова(именно в соединении с ним, а не в самом серваке nslookup все резолвит без проблем)
поднял named выставил на нем форвардинг - та же фигня.

Никак не могу понять в чем может быть трабл, хелп плиз :)


Содержание

Сообщения в этом обсуждении
"проблемы с natd+ipfw на mpd"
Отправлено universite , 06-Мрт-07 12:44 
>Приветствую !
>=========================================================================
>Соединение vpn устанавливается, дальше после sleep 5, выполняется следующий скрипт
>
>========================================================================
>#!/bin/sh
>natd -use_sockets -same_ports -unregistered_only -dynamic -interface ng0

NAT вешайте на не на ng0, а на nve0!


"проблемы с natd+ipfw на mpd"
Отправлено Stranger.rus , 06-Мрт-07 13:09 
>>Приветствую !
>>=========================================================================
>>Соединение vpn устанавливается, дальше после sleep 5, выполняется следующий скрипт
>>
>>========================================================================
>>#!/bin/sh
>>natd -use_sockets -same_ports -unregistered_only -dynamic -interface ng0
>
>NAT вешайте на не на ng0, а на nve0!


Почему это ???
У меня в инет смотрит интерфейс ng0.
И default маршрут через ng0.
ИМХО дело не в этом - ping то проходит


"проблемы с natd+ipfw на mpd"
Отправлено universite , 06-Мрт-07 13:13 

>>NAT вешайте на не на ng0, а на nve0!
>
>
>Почему это ???
>У меня в инет смотрит интерфейс ng0.

Молодой человек, вам советует _как будет работать_.
В данном случае интерфейс nve0 смотрит на провайдера, на него и надо вешать NAT.


"проблемы с natd+ipfw на mpd"
Отправлено Stranger.rus , 06-Мрт-07 13:27 
>
>>>NAT вешайте на не на ng0, а на nve0!
>>
>>
>>Почему это ???
>>У меня в инет смотрит интерфейс ng0.
>
>Молодой человек, вам советует _как будет работать_.
>В данном случае интерфейс nve0 смотрит на провайдера, на него и надо
>вешать NAT.


nve0 смотрит в _локальную сеть_ провайдера...
в любом случае попробовал подставить вместо ng0, nve0...
перестали даже пинги проходить (в чем я и не сомневался)...


"проблемы с natd+ipfw на mpd"
Отправлено universite , 06-Мрт-07 13:43 
>>
>>>>NAT вешайте на не на ng0, а на nve0!
>>>
>>>
>>>Почему это ???
>>>У меня в инет смотрит интерфейс ng0.
>>
>>Молодой человек, вам советует _как будет работать_.
>>В данном случае интерфейс nve0 смотрит на провайдера, на него и надо
>>вешать NAT.
>
>
>nve0 смотрит в _локальную сеть_ провайдера...
>в любом случае попробовал подставить вместо ng0, nve0...
>перестали даже пинги проходить (в чем я и не сомневался)...

Угу, вы забыли про gre-пакеты.
Эти правила, нужно выставить _перед_ дивертом NAT'a
add fwd 10.0.7.1 all from any to 10.128.4.1 via nve0 # point on the router
add allow 47 from 10.128.4.1 to 10.0.7.75
add allow tcp from 10.128.4.1 1723 to 10.0.7.75

где,
10.0.7.75 - ваш IP в сети провайдера
10.0.7.1  - шлюз в сети провайдера
10.128.4.1 - VPN сервер провайдера


"проблемы с natd+ipfw на mpd"
Отправлено anatolik.kiev , 07-Мрт-07 02:21 
# разрешаем коннект к серверу по VPN
${fwcmd} add allow tcp from any to me 1723
${fwcmd} add allow gre from any to any

"проблемы с natd+ipfw на mpd"
Отправлено Stranger.rus , 07-Мрт-07 04:10 
Как и было сказано работает(правда с большими глюками, но об этом позже)
следующая связка

#!/bin/sh

ipfw -f flush
ipfw -f add allow tcp from any to me 1723
ipfw -f add allow gre from any to any
ipfw -f add divert natd all from any to any via ng0

#!/bin/sh
natd -use_sockets -same_ports -unregistered_only -dynamic  -interface ng0

Собственно в чем глюки, этот сайт, гугл яндекс иксбит - открываются без проблем(только что не загружается некоторая реклама) а допустим 3дньюс, майкрософт.ком/рус - не открываются вообще при этом я тут же подключаюсь к этому прову через машину с виндой и все работает просто замечательно.... может быть дело в мпд ???


"проблемы с natd+ipfw на mpd"
Отправлено PavelR , 07-Мрт-07 06:41 
>Как и было сказано работает(правда с большими глюками, но об этом позже)
>
>следующая связка
>
>#!/bin/sh
>
>ipfw -f flush
>ipfw -f add allow tcp from any to me 1723
>ipfw -f add allow gre from any to any
>ipfw -f add divert natd all from any to any via ng0
>
>
>#!/bin/sh
>natd -use_sockets -same_ports -unregistered_only -dynamic  -interface ng0
>
>Собственно в чем глюки, этот сайт, гугл яндекс иксбит - открываются без
>проблем(только что не загружается некоторая реклама) а допустим 3дньюс, майкрософт.ком/рус -
>не открываются вообще при этом я тут же подключаюсь к этому
>прову через машину с виндой и все работает просто замечательно.... может
>быть дело в мпд ???


А какие значения MTU еще проверялись на работоспособность ?

MPD4 при установлении соединения использует ng_tcpmss,
что должно "корректировать" MSS в TCP соединениях.

[root@host /usr/local/etc/mpd4]# kldstat
Id Refs Address    Size     Name
1   15 0xc0400000 416f34   kernel
2    1 0xc0817000 59704    acpi.ko
3    1 0xc371b000 4000     ng_netams.ko
4   10 0xc371f000 a000     netgraph.ko
5    1 0xc3730000 2000     ng_ipfw.ko
6    1 0xc3732000 4000     ng_socket.ko
7    1 0xc38c2000 3000     ng_iface.ko
8    1 0xc38c6000 6000     ng_ppp.ko
9    1 0xc38cd000 4000     ng_bpf.ko
10    1 0xc38d1000 2000     ng_tcpmss.ko
11    1 0xc38d4000 4000     ng_vjc.ko
12    1 0xc38e2000 4000     ng_pptpgre.ko
13    1 0xc3992000 4000     ng_ksocket.ko


[root@host /usr/local/etc/mpd4]# ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1440


> сначала грешил на MTU, как видно выставил его 1300 (даже чуть пониже чем советует пров) -
> не помогло,

Каким образом менялся MTU ?


Eсли у вас есть внешний по отношению к локалке юниксовый сервер - нужно посмотреть tcpdump соединения с двух сторон, на локальной и удаленной - какие значения MSS приходят на хосты во время установления соединения.


ЗЫЖ То что написано выше про неправильные правила divert, natd не на том интерфейсе - бред.


"проблемы с natd+ipfw на mpd"
Отправлено universite , 07-Мрт-07 09:43 

>ЗЫЖ То что написано выше про неправильные правила divert, natd не на
>том интерфейсе - бред.

Тагда каким образом подобная схема работает больше полутора лет? :)


"проблемы с natd+ipfw на mpd"
Отправлено PavelR , 07-Мрт-07 11:07 
>
>>ЗЫЖ То что написано выше про неправильные правила divert, natd не на
>>том интерфейсе - бред.
>
>Тагда каким образом подобная схема работает больше полутора лет? :)


"Схема" абсолютно не соответствует поставленному вопросу.


"проблемы с natd+ipfw на mpd"
Отправлено anatolik.kiev , 07-Мрт-07 21:48 
Посмотри днсы на винде,и пропиши их на фре.

Кажется проблема в днс(см. resolv.conf)


"проблемы с natd+ipfw на mpd"
Отправлено Stranger.rus , 07-Мрт-07 22:53 
>Посмотри днсы на винде,и пропиши их на фре.
>
>Кажется проблема в днс(см. resolv.conf)
Читаем первый пост - все резолвится без проблем. Сейчас обновил mpd4.1 (c 3.18), обновил конфиги, включил tcpmssfix... через пару часов буду тестировать...

"проблемы с natd+ipfw на mpd"
Отправлено AFEN , 09-Июн-07 18:38 
>>Посмотри днсы на винде,и пропиши их на фре.
>>
>>Кажется проблема в днс(см. resolv.conf)
>Читаем первый пост - все резолвится без проблем. Сейчас обновил mpd4.1 (c
>3.18), обновил конфиги, включил tcpmssfix... через пару часов буду тестировать...

Появилась такая-же проблема. Решил ли ты ее? Поделись пожалуйста :-)


"проблемы с natd+ipfw на mpd"
Отправлено Arsenal_StarNET , 07-Фев-08 22:04 
Постановка Задачи-есть сеть провайдера-192.168.100.0/24 шлюз в следующую сеть 192.168.100.2, мой айпи в сети провайдера-192.168.100.251 (rl0) 192.168.101.1(rl1)-внутренний
так же есть подключение к провайдеру VPN где 10.0.0.1: VPN-IP шлюза инета, 10.0.0.11: VPN-IP мой(мого сервака).
Итак MPD:
=============/usr/local/etc/mpd/mpd.conf======================
default:
    load client1

client1:
    new -i ng0 pptp0 pptp0
    set iface disable on-demand
    set iface idle 0
    set bundle disable multilink
    set bundle authname "user"
    set bundle password "pass"
    set link yes acfcomp protocomp
    set link keep-alive 10 60
    set ipcp ranges 0/0
    open
==============================================================

=======/usr/local/etc/mpd/mpd.secret==========================
login        passwd        0.0.0.0
==============================================================

======/usr/local/etc/mpd/mpd.links============================
pptp0:
    set link type pptp
    set pptp peer 192.168.100.2
    set pptp enable originate outcall
==============================================================
VPN-работает(есть инет на сервере), после:
bsd# route delete default
bsd# route add 0.0.0.0 10.0.0.1
Версия FreeBSD 5.1
Нужно сделать так чтобы у пользователей работала и сеть провайдера и инет.
Доступ Сеть провайдера установил так:
==================/usr/local/etc/rc.d/firewall.sh=========
#!/bin/sh
#Очищаем предыдущие правила
/sbin/ipfw -f flush
# Разрешаем NATD
/sbin/ipfw add divert natd ip from 192.168.101.0/24 to any out via rl0
/sbin/ipfw add divert natd ip from any to 192.168.100.251 in via rl0
# Ниже идет строка открывающая работу по всем портам снаружи
# вы должны сами написать правила фильтрации под вашу сеть
/sbin/ipfw add pass all from any to any via rl1
/sbin/ipfw add pass all from any to any
============================================================

bsd# chmod -x /usr/local/etc/rc.d/firewall.sh


=========/usr/local/etc/rc.d/natd.sh===========
#!/bin/sh
# Запускаем при старте natd и указываем чтобы он работал с rl0 (ключ -n)
/sbin/natd -f /etc/natd.conf -n rl0
===============================================

bsd# chmod -x /usr/local/etc/rc.d/natd.sh


==========/etc/natd.conf ==========
same_ports yes
use_sockets yes
===================================

Плз, сильно не бить ногами я только учусь. Посоветуйте что нужно сделать и где и зачем?
Заранее благодарен...


"проблемы с natd+ipfw на mpd"
Отправлено stranger.rus , 08-Фев-08 00:11 
>Постановка Задачи-есть сеть провайдера-192.168.100.0/24 шлюз в следующую сеть 192.168.100.2, мой айпи в
>сети провайдера-192.168.100.251 (rl0) 192.168.101.1(rl1)-внутренний
>так же есть подключение к провайдеру VPN где 10.0.0.1: VPN-IP шлюза инета,
>10.0.0.11: VPN-IP мой(мого сервака).

советую попробовать ipnat... имхо понятней он сам на него перешел когда стало лениво думать и  писать правила для ipfw