Подъем L2TP FreeBSD 10 beeline (ex Corbina)

Некоторое время назад я писал заметку здесь о том, как поднять туннель VPN в проводном БиЛайне, используя в качестве роутера сервер с FreeBSD.
Подход был забавный, но работал без проблем до 9 версии FreeBSD. Использовался демон mpd5
Но все течет и меняется, в том числе и FreeBSD. Начиная с 10 версии l2tp соединение устанавливалось, но не работало.

После нескольких довольно длительных танцев с бубнами экспериментов удалось написать следующий конфиг для mpd5:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
default:
        load bee
bee:
        create bundle static L2TP
        set iface up-script "/usr/local/etc/mpd5/up.sh"
        set iface down-script "/usr/local/etc/mpd5/down.sh"
        set bundle disable compression
        set bundle disable round-robin
        set bundle disable encryption
        set bundle disable crypt-reqd
        set bundle disable bw-manage
        set bundle disable ipv6cp
        set bundle enable ipcp
        set ipcp no vjcomp
        set iface idle 0
        set iface enable tcpmssfix
        set iface route 0.0.0.0/1
        set iface route 128.0.0.0/1
        set iface addrs 0.0.0.0 !1.0.0.1
        set iface route default
 
        create link static L2 l2tp
        set link action bundle L2TP
        set link latency 0
        set link max-redial 0
        set link disable incoming acfcomp protocomp magicnum check-magic
        set link deny chap-msv2 chap-msv1 pap eap acfcomp protocomp
        set link accept chap-md5
        set link keep-alive 15 30
        set l2tp peer l2tp.corbina.net BRAS
 
        set auth authname "0890*******"
        set auth password "*********"
        open


Прелесть данного конфига mpd5 в том, что не требуется менять дефолтовый роут на ваш локальный шлюз Билайна и писать костыли в up-down скрипты.
Обращаю ваше пристальное внимание, что интернет не появится сразу, так как требуется прописать статичные маршруты до ваших местных VPN серверов Корбины.
Я добавил их в rc.conf, чтобы они сразу появлялись в системе после загрузки. 10.213.32.1 — мой локальный шлюз Корбины. Синтаксис при этом будет такой:

defaultrouter=10.213.32.1
mpd_enable="Yes"

# routs
static_routes="b1 b2 b3"
route_b1="85.21.66.0/24 10.213.32.1"
route_b2="78.107.196.0/24 10.213.32.1"
route_b3="10/8 10.213.32.1

Вычислить ваши «местные» адреса VPN серверов вы можете, получив маршруты по умолчанию из DHCP, подключив кабель провайдера в компьютер с Linux или Windows. У меня под рукой была Ubuntu, я получил такую картинку:

$ netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.0.0.0 10.213.32.1 255.0.0.0 UG 0 0 0 eth0
10.213.32.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
78.107.196.0 10.213.32.1 255.255.252.0 UG 0 0 0 eth0
85.21.66.202 10.213.32.1 255.255.255.255 UGH 0 0 0 eth0
85.21.66.205 10.213.32.1 255.255.255.255 UGH 0 0 0 eth0
93.81.32.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
233.32.240.0 10.213.34.147 255.255.255.0 UG 0 0 0 eth0

И добавил подсети в rc.conf. У вас, вероятнее всего, будет чуть по-другому, но аналогично можно добавить роуты на шлюзы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *