Суть вопроса такая: на freebsd 7.0 поднят mpd5, который настроен и как клиент и как сервер одновременно: клиент коннектится к серверу провайдера, а к серверу в свою очередь коннектятся свои клиенты, которых через всю эту городушку надо выпустить в интернет (пока всё это только в теории):
Код: Выделить всё
startup:
set user mpd_admin mpd_password
set console self 127.0.0.1 console_port
set console open
set web self 0.0.0.0 web_port
set web open
default:
load pptp_server
load pptp_client
pptp_server:
set ippool add pool1 10.53.1.2 10.53.1.99
create bundle template B
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
set ipcp ranges 10.53.1.1/32 ippool pool1
# DNS сервер провайдера:
set ipcp dns 192.168.X.Z
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link template L pptp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1460
# IP моего сервера в сети провайдера:
set pptp self 192.168.Х.Х
set link enable incoming
pptp_client:
create bundle static B1
# set iface route default
set iface up-script /usr/local/etc/mpd5/up.sh
set iface down-script /usr/local/etc/mpd5/down.sh
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L1 pptp
set link action bundle B1
set auth authname myname
set auth password mypass
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
# IP адрес VPN-сервера провайдера:
set pptp peer 192.168.XXX.XXX
set pptp disable windowing
open
Код: Выделить всё
#!/bin/sh
route change default 10.20.XX.XX # Адрес сервера провайдера в поднимаемой впн-сети
Код: Выделить всё
#!/bin/sh
route change default 192.168.YY.YY # Адрес шлюза в физической сети провайдера
# (он же прописан и в rc.conf)
А во-вторых, как бы обеспечить чёткое разделение ngХ интерфейсов на один (смотрящий к серверу провайдера - ng0) и все остальные (смотрящие в сторону клиентов - ng1....ngXX, которые соответственно будут динамически создаваться при подключении клиентов)? То есть, как забронировать статический ng0 строго для сервера?