Приветствую !
Есть несколько 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 ng0ipfw -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 выставил на нем форвардинг - та же фигня.Никак не могу понять в чем может быть трабл, хелп плиз :)
>Приветствую !
>=========================================================================
>Соединение vpn устанавливается, дальше после sleep 5, выполняется следующий скрипт
>
>========================================================================
>#!/bin/sh
>natd -use_sockets -same_ports -unregistered_only -dynamic -interface ng0NAT вешайте на не на ng0, а на nve0!
>>Приветствую !
>>=========================================================================
>>Соединение vpn устанавливается, дальше после sleep 5, выполняется следующий скрипт
>>
>>========================================================================
>>#!/bin/sh
>>natd -use_sockets -same_ports -unregistered_only -dynamic -interface ng0
>
>NAT вешайте на не на ng0, а на nve0!
Почему это ???
У меня в инет смотрит интерфейс ng0.
И default маршрут через ng0.
ИМХО дело не в этом - ping то проходит
>>NAT вешайте на не на ng0, а на nve0!
>
>
>Почему это ???
>У меня в инет смотрит интерфейс ng0.Молодой человек, вам советует _как будет работать_.
В данном случае интерфейс nve0 смотрит на провайдера, на него и надо вешать NAT.
>
>>>NAT вешайте на не на ng0, а на nve0!
>>
>>
>>Почему это ???
>>У меня в инет смотрит интерфейс ng0.
>
>Молодой человек, вам советует _как будет работать_.
>В данном случае интерфейс nve0 смотрит на провайдера, на него и надо
>вешать NAT.
nve0 смотрит в _локальную сеть_ провайдера...
в любом случае попробовал подставить вместо ng0, nve0...
перестали даже пинги проходить (в чем я и не сомневался)...
>>
>>>>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 сервер провайдера
# разрешаем коннект к серверу по VPN
${fwcmd} add allow tcp from any to me 1723
${fwcmd} add allow gre from any to any
Как и было сказано работает(правда с большими глюками, но об этом позже)
следующая связка#!/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дньюс, майкрософт.ком/рус - не открываются вообще при этом я тут же подключаюсь к этому прову через машину с виндой и все работает просто замечательно.... может быть дело в мпд ???
>Как и было сказано работает(правда с большими глюками, но об этом позже)
>
>следующая связка
>
>#!/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 не на том интерфейсе - бред.
>ЗЫЖ То что написано выше про неправильные правила divert, natd не на
>том интерфейсе - бред.Тагда каким образом подобная схема работает больше полутора лет? :)
>
>>ЗЫЖ То что написано выше про неправильные правила divert, natd не на
>>том интерфейсе - бред.
>
>Тагда каким образом подобная схема работает больше полутора лет? :)
"Схема" абсолютно не соответствует поставленному вопросу.
Посмотри днсы на винде,и пропиши их на фре.Кажется проблема в днс(см. resolv.conf)
>Посмотри днсы на винде,и пропиши их на фре.
>
>Кажется проблема в днс(см. resolv.conf)
Читаем первый пост - все резолвится без проблем. Сейчас обновил mpd4.1 (c 3.18), обновил конфиги, включил tcpmssfix... через пару часов буду тестировать...
>>Посмотри днсы на винде,и пропиши их на фре.
>>
>>Кажется проблема в днс(см. resolv.conf)
>Читаем первый пост - все резолвится без проблем. Сейчас обновил mpd4.1 (c
>3.18), обновил конфиги, включил tcpmssfix... через пару часов буду тестировать...Появилась такая-же проблема. Решил ли ты ее? Поделись пожалуйста :-)
Постановка Задачи-есть сеть провайдера-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 client1client1:
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
===================================Плз, сильно не бить ногами я только учусь. Посоветуйте что нужно сделать и где и зачем?
Заранее благодарен...
>Постановка Задачи-есть сеть провайдера-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