Страница 1 из 1

Проблема с маршрутизацией FreeBSD + mpd5

Добавлено: 2016-10-26 15:40:35
Гость
Здравствуйте!
Столкнулся , на первый взгляд, с заезженной проблемой маршрутизации при построении VPN на mpd5.
Дано :
сетка 172.16.0.0/16
FreeBSD 11, mpd5
Интерфейс на FreeBSD : 172.16.86.10

При подключении по vpn нужно получить доступ к серверам в этой сети, при этом не добавляя руками каких-либо маршрутов на подключающейся машине. Тоесть человек подключается, попадает в сеть 172.16.0.0/16 и, соответственно, получает доступ к серверам из этой подсети.

mpd.conf :

Код: Выделить всё

startup:
        # configure mpd users

        set user pupkin blablabla
        # configure the console

        set console self 127.0.0.1 5005
        set console open
        # configure the web server

        set web self 0.0.0.0 5006
        set web open
default:
        #load dialup

        load pptp_server
# Define dynamic IP address pool.

    set ippool add pool1 172.16.255.20 172.16.255.50
# Create clonable bundle template named B

    create bundle template B
    set iface enable proxy-arp
    set iface idle 1800
    set iface enable tcpmssfix
    set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.

    set ipcp ranges 172.16.255.1/32 ippool pool1
#    set ipcp dns 172.31.0.2
#    set ipcp nbns 172.31.0.2
# The five lines below enable Microsoft Point-to-Point encryption

# (MPPE) using the ng_mppc(8) netgraph node type.

    set bundle enable compression
    set ccp yes mppc
    set mppc yes e40
    set mppc yes e128
    set mppc yes stateless
# Create clonable link template named L

    create link template L pptp
# Set bundle template to use

    set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU.

    set link enable multilink
    set link yes acfcomp protocomp
    set link no pap chap eap
    set link enable chap
# We can use use RADIUS authentication/accounting by including

# another config section with label 'radius'.

#       load radius

    set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation.

#    set link mtu 1460
# Configure PPTP

    set pptp self 172.16.86.10
# Allow to accept calls
Подключаюсь, получаю IP :

Код: Выделить всё

 IPv4-адрес. . . . . . . . . . . . : 172.16.255.20
 Маска подсети . . . . . . . . . . : 255.255.255.255
Маршрут в сетку : 
  172.16.0.0      255.255.0.0     172.16.255.1    172.16.255.20     26
На сервере при этом :

Код: Выделить всё

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396
        inet 0.0.0.0 --> 255.255.255.255  netmask 0xff000000
        inet 172.16.255.1 --> 172.16.255.20  netmask 0xffffffff
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Маршрутизация включена :

Код: Выделить всё

sysctl net.inet.ip.forwarding=1
Из винды, все IP, присутствующие на интерфейсах FreeBSD доступны :

Код: Выделить всё

Ответ от 172.16.255.1: число байт=32 время=33мс TTL=64
Ответ от 172.16.255.1: число байт=32 время=32мс TTL=64
Ответ от 172.16.255.1: число байт=32 время=32мс TTL=64

Ответ от 172.16.86.10: число байт=32 время=34мс TTL=64
Ответ от 172.16.86.10: число байт=32 время=33мс TTL=64
Ответ от 172.16.86.10: число байт=32 время=32мс TTL=64
Но дальше сервера достучаться не получается.Пакеты приходят на ng0 и все... :

Код: Выделить всё

listening on ng0, link-type NULL (BSD loopback), capture size 262144 bytes
12:38:21.541252 IP 172.16.255.20 > 172.16.56.137: ICMP echo request, id 1, seq 8, length 40
12:38:26.069083 IP 172.16.255.20 > 172.16.56.137: ICMP echo request, id 1, seq 9, length 40
12:38:31.067891 IP 172.16.255.20 > 172.16.56.137: ICMP echo request, id 1, seq 10, length 40
При этом с сервера этот ИП удачно пингуется :

Код: Выделить всё

PING 172.16.56.137 (172.16.56.137): 56 data bytes
64 bytes from 172.16.56.137: icmp_seq=0 ttl=64 time=0.150 ms
64 bytes from 172.16.56.137: icmp_seq=1 ttl=64 time=0.169 ms
Подскажите, плиз, как можно решить эту проблему. Заранее спасибо!

Проблема с маршрутизацией FreeBSD + mpd5

Добавлено: 2016-10-27 12:42:56
LBV
Получается клиентам выдаетя из той же подсети адрес что и у серверов, так? А tcpdump при пинге с подключившейся машины в сторону нужного сервера на интерфесе внутренней сети что показивает?