FreeBSD. Использование mpd5 в качестве vpn-клиента (pptp)
После танцев с бубном с pptpclient, особенно напрягала проблема с "/bin/ip not found", я всётаки решил использовать в качестве vpn-клиента mpd5! :)
Предыстория
У меня не было интернета, поэтому я скачивал пакеты с ftp.freebsd.org (с другой машины), клал на флешку и устанавливал на "сервер" которому нужен был vpn-клиент для работы в интернете.
Итак, действующие лица:
На стороне клиента (то есть меня)
Лептоп с Windows XP
Сервер с FreeBSD 7.1
Сетевой интерфейс rl1 для подключения к интернету
Сетевой интерфейс rl0 для подключения к локальной сети (нам это не интересно)
На стороне сервера (Провайдер AirNet)
FreeBSD 5.2.1 (SPARC)
DHCP-сервер
Gateway: 192.168.128.33
DNS: 192.168.128.33
VPN: vpn.airnet.lan (192.168.128.7)
При подключении в Windows наблюдаем следующую картину:
# Запускаем при загрузке MPD
mpd_enable="YES"
# Для интерфейса rl1 используем DHCP
ifconfig_rl1="DHCP"
Отредактируем файл /etc/resolv.conf и добавим DNS-адреса
nameserver 192.168.128.33
Отредактируем файл /usr/local/etc/mpd5/mpd.conf до вида:
startup:
default:
load pptp_client
pptp_client:
create bundle static B1
set iface route default
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 "ЛОГИН"
set auth password "ПАРОЛЬ"
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer vpn.airnet.lan
set pptp disable windowing
open
Была найдена проблема, провайдер не выдавал нормальный IP-адрес по DHCP оборудованию, не закрепленному за пользователем. То есть моя сетевая карта на сервере являлась не зарегистрированной, а карта на лептопе - являлась зарегистрированной в биллинговой системе.
Было тут же найдено решение, использовать поддельный MAC-адрес от сетевой карты лептопа!
Подменяем MAC на сервере:
# ifconfig rl1 ether 00:00:00:00:00:00
И получилось у нас сменить MAC и получить по DHCP нормальный IP-адрес:
ng0: flags=88d1 metric 0 mtu 1456
inet 62.33.239.136 --> 172.18.100.1 netmask 0xffffffff
Коннект есть. Сессия весит около 1 мин, потом рвется, внешнея сеть не пингуется. МОжет маршрут нужен?
Вообще, столкнулся с ситуацией, когда невозможно было сделать ifconfig ether из rc-скрипта. Дело в том, что сеть (mpd5) поднималась быстрее, чем менялся MAC карты.
Выход:
touch /etc/start_if.%ifname%
echo ifconfig %ifname% ether 00:11:22:33:44:55 >/etc/start_if.%ifname%
где %ifname% - имя нужного нам сетевого интерфейса.
чисто для сведения, чтобы не городить в файрволле странных конструкций
00900 0 0 allow tcp from any to any via ng*
01000 10 1060 allow udp from any to any via ng*
01100 33 2604 allow icmp from any to any via ng*
01200 0 0 allow ip from any to any via ng*
Комментарии
Однако. Я почему-то всегда был уверен что к vpn можно средствами "по умолчанию" во FreeBSD приконнектится. Век живи век учись :)
Ну VPN это не обязаловка, даже в *ubunta, которые очень дружелюбны - нет pptp клиента :)
Похожая проблема, но не получается получить настройки по dhcp при подмене mac-адреса:
rc.conf:
когда вставляю "родную" сетевуху, dhcp отдается... :(
Может подменять надо раньше чем подключатся к DHCP?
Попробуйте:
2.
3.
ng0: flags=88d1 metric 0 mtu 1456
inet 62.33.239.136 --> 172.18.100.1 netmask 0xffffffff
Коннект есть. Сессия весит около 1 мин, потом рвется, внешнея сеть не пингуется. МОжет маршрут нужен?
Вообще, столкнулся с ситуацией, когда невозможно было сделать ifconfig ether из rc-скрипта. Дело в том, что сеть (mpd5) поднималась быстрее, чем менялся MAC карты.
Выход:
touch /etc/start_if.%ifname%
echo ifconfig %ifname% ether 00:11:22:33:44:55 >/etc/start_if.%ifname%
где %ifname% - имя нужного нам сетевого интерфейса.
А где мы говорим, что именно rl1 смотрит в нет???
Спасибо огромное !!!!!))))
неделю мучился и твой конфиг оказался 100% рабочий !!!
Думаю сменить мак-адрес и указать DHCP аналогично как тут
Не сработает только через alias:
ifconfig_r11_alias0="ether 00:00:00:00:00:00"
Раньше работало
есть такая штука, называется ман так вот - man dhclient.conf
и там:
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
Здравствуйте, а можно ли в freebsd подключить 2 параллельных vpn соединения?
Можно, разброс трафика можно сделать через ipfw, почитайте про шейпинг
Хорошая статья третий день ищу чтото подобное
чисто для сведения, чтобы не городить в файрволле странных конструкций
00900 0 0 allow tcp from any to any via ng*
01000 10 1060 allow udp from any to any via ng*
01100 33 2604 allow icmp from any to any via ng*
01200 0 0 allow ip from any to any via ng*
Оставьте свой комментарий