Вечер добрый :)
Я только начинаю осваивать все прелести фрихи и хотел бы узнать как совместить на одной машине mpd client и mpd server.
собсно нужно оное для сервачка, который будет коннектися к другому серваку на фри по средствам vpn, и будет раздавать инэт тоже по средствам vpn в маленькую офисную сеть из 5-6 компов. стандартная схема: инэт <-> фри <-> минисеть.
Первую часть постоавленной задачи я, можно сказать, выполнил: установил mpd-3.18_4 и настроил его как клиент, всё работает, пинги проходят и на ftp.freebsd.org тоже получается поиметь доступ. вот файлы конфигурации:
mpd.confdefault:
load vpn
default:
load vpn
vpn:
new -i ng0 vpn vpn
set iface idle 0
set iface up-script /usr/local/etc/mpd/vpn-up.sh
set iface down-script /usr/local/etc/mpd/vpn-down.sh
set bundle disable multilink
set bundle authname "_USERNAME_"
set bundle password "_PASSWORD_"
set link yes acfcomp protocomp
set link disable chap pap
set link accept chap pap
set link enable no-orig-auth
set link keep-alive 10 75
set ipcp yes vjcomp
# set bundle enable compression закоментил компрессию. или она нужна?
set ccp yes mppc
set ccp yes mpp-e40
set bundle enable crypt-reqd
set ccp yes mpp-stateless
open
mpd.links
vpn:
set link type pptp
set pptp self 192.168.151.190
set pptp peer 192.168.151.1
set pptp enable originate incoming outcall
файлы vpn-up.sh
#!/bin/sh
ROUTE="/sbin/route"
NETSTAT="/usr/bin/netstat"
LINKFILE="/usr/local/etc/mpd/mpd.links"
IFACE=$1
if ! test -f $ROUTE ; then
echo Cannot find program route.
exit 1
fi
CAT="/bin/cat"
if ! test -f $CAT ; then
echo Cannot find program cat.
exit 1
fi
if ! test -f $NETSTAT ; then
echo Cannot find program netstat.
exit 1
fi
GATEWAY=`$NETSTAT -rn |grep UG|tail -1|awk ' { print $2}'`
if test -z "$GATEWAY" ; then
echo Cannot find any default gateway
exit 1
fi
VPNSERVER=`$CAT $LINKFILE |grep peer|tail -1|awk ' { print $4}'`
if test -z "$VPNSERVER" ; then
echo Cannot find vpn server
exit;
fi
$ROUTE delete $VPNSERVER
$ROUTE add $VPNSERVER $GATEWAY
$ROUTE delete default
$ROUTE add default -interface $IFACE
и vpn-down.sh
#!/bin/sh
ROUTE="/sbin/route"
NETSTAT="/usr/bin/netstat"
LINKFILE="/usr/local/etc/mpd/mpd.links"
if ! test -f $ROUTE ; then
echo Cannot find program route.
exit 1
fi
CAT="/bin/cat"
if ! test -f $CAT ; then
echo Cannot find program cat.
exit 1
fi
if ! test -f $NETSTAT ; then
echo Cannot find program netstat.
exit 1
fi
GATEWAY=`$NETSTAT -rn |grep UG|tail -1|awk ' { print $2}'`
if test -z "$GATEWAY" ; then
echo Cannot find any default gateway
exit 1
fi
VPNSERVER=`$CAT $LINKFILE |grep peer|tail -1|awk ' { print $4}'`
if test -z "$VPNSERVER" ; then
echo Cannot find vpn server
exit;
fi
$ROUTE delete $VPNSERVER
$ROUTE delete default
$ROUTE add default $GATEWAY
ipfw пока не настраивал, а ядро соответственно скомпилено с FIREWALL_DEFAULT_TO_ACCEPT.
на машине стоит две сетевухи,вторая пока не включена, вот ifconfig до включения mpd:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 #внутренний iface
options=18<VLAN_MTU,VLAN_HWTAGGING>
inet 10.10.1.1 netmask 0xffffff00 broadcast 10.10.1.255
ether 00:13:46:3b:c6:eb
media: Ethernet autoselect (none)
status: no carrier
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 #внешний iface
options=8<VLAN_MTU>
inet 192.168.151.190 netmask 0xffffff00 broadcast 192.168.151.255
ether 00:16:ec:f4:ea:6f
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
ifconfig после подключения:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=18<VLAN_MTU,VLAN_HWTAGGING>
inet 10.10.1.1 netmask 0xffffff00 broadcast 10.10.1.255
ether 00:13:46:3b:c6:eb
media: Ethernet autoselect (none)
status: no carrier
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 192.168.151.190 netmask 0xffffff00 broadcast 192.168.151.255
ether 00:16:ec:f4:ea:6f
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 1492
inet 87.236.42.9 --> 87.236.42.1 netmask 0xffffffff
собсно сам вопрос: каким образом можно и нужно :) совместить клиент и сервер чтобы машины в минисети могли свободно пользоваться инэтом?