Я изо всех сил пытаюсь подключиться и, что более важно, перенаправить трафик из Ubuntu сервер (это означает, что Network-Manager и любые инструменты графического интерфейса исключены) на сервер L2TP-IPSec VPN, работающий на другом компьютере Ubuntu в совершенно другой сети.
VPN-сервер настроен в этот контейнер докеров и работает хорошо: я могу легко подключиться к нему со своего настольного ноутбука Ubuntu почти без дополнительных настроек.
Прочитав множество статей, в которых, казалось, чего-то не хватает, я сумел добраться до середины результата, основывая свой подход на этот другой контейнер докеров. Единственная разница в том, что я вынул все файлы конфигурации из контейнера и запустил все непосредственно на хосте.
# ipsec status
Security Associations (1 up, 0 connecting):
L2TP-PSK[1]: ESTABLISHED 3 minutes ago, 192.168.234.5[192.168.234.5]...VPN-SERVER-IP[VPN-SERVER-IP]
L2TP-PSK{1}: INSTALLED, TRANSPORT, reqid 1, ESP in UDP SPIs: c36b6571_i ee9aeaf1_o
L2TP-PSK{1}: 192.168.234.5/32[udp/l2f] === VPN-SERVER-IP/32[udp/l2f]
Все идет нормально.
После выполнения следующей пары команд
(sleep 3 && echo "c strong-vpn" > /var/run/xl2tpd/l2tp-control) &
/usr/sbin/xl2tpd -p /var/run/xl2tpd.pid -c /etc/xl2tpd/xl2tpd.conf -C /var/run/xl2tpd/l2tp-control -D
Я получаю следующий результат
xl2tpd[17164]: Not looking for kernel SAref support.
xl2tpd[17164]: Using l2tp kernel support.
xl2tpd[17164]: xl2tpd version xl2tpd-1.3.10 started on mn-hdap05 PID:17164
xl2tpd[17164]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc.
xl2tpd[17164]: Forked by Scott Balmos and David Stipp, (C) 2001
xl2tpd[17164]: Inherited by Jeff McAdams, (C) 2002
xl2tpd[17164]: Forked again by Xelerance (www.xelerance.com) (C) 2006-2016
xl2tpd[17164]: Listening on IP address 0.0.0.0, port 1701
xl2tpd[17164]: Connecting to host VPN-SERVER-IP, port 1701
xl2tpd[17164]: Connection established to VPN-SERVER-IP, 1701. Local: 21439, Remote: 14830 (ref=0/0).
xl2tpd[17164]: Calling on tunnel 21439
xl2tpd[17164]: Call established with VPN-SERVER-IP, Local: 21474, Remote: 10460, Serial: 1 (ref=0/0)
xl2tpd[17164]: start_pppd: I'm running:
xl2tpd[17164]: "/usr/sbin/pppd"
xl2tpd[17164]: "plugin"
xl2tpd[17164]: "pppol2tp.so"
xl2tpd[17164]: "pppol2tp"
xl2tpd[17164]: "7"
xl2tpd[17164]: "passive"
xl2tpd[17164]: "nodetach"
xl2tpd[17164]: ":"
xl2tpd[17164]: "debug"
xl2tpd[17164]: "file"
xl2tpd[17164]: "/etc/ppp/options.l2tpd.client"
А также новый сетевой интерфейс, ppp0
появляется. Таблица маршрутизации также претерпела некоторые изменения, поскольку изначально была такой.
0.0.0.0 192.168.234.1 0.0.0.0 UG 0 0 0 bond0
192.168.234.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
к этому
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
VPN-SERVER-IP 192.168.234.1 255.255.255.255 UGH 0 0 0 bond0
192.168.42.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.234.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
Для сравнения: на моем ноутбуке, когда я подключаюсь к тому же VPN, таблица маршрутизации меняется так:
BEFORE
0.0.0.0 172.22.44.1 0.0.0.0 UG 600 0 0 wlp59s0
172.22.44.0 0.0.0.0 255.255.252.0 U 600 0 0 wlp59s0
AFTER
0.0.0.0 0.0.0.0 0.0.0.0 U 50 0 0 ppp0
0.0.0.0 172.22.44.1 0.0.0.0 UG 600 0 0 wlp59s0
VPN-SERVER-IP 172.22.44.1 255.255.255.255 UGH 600 0 0 wlp59s0
172.22.44.0 0.0.0.0 255.255.252.0 U 600 0 0 wlp59s0
172.22.44.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp59s0
192.168.42.1 0.0.0.0 255.255.255.255 UH 50 0 0 ppp0
Я почему-то подозреваю, что моя проблема действительно связана с таблицами маршрутизации, но попытка вручную реплицировать структуру таблицы маршрутизации на моем ноутбуке на сервере не помогла. Если на моем ноутбуке curl ifconfig.me
возвращается VPN-SERVER-IP
, на сервере я обычно вообще не могу связаться с каким-либо хостом. Лучшее, что я могу сделать, это ping
или curl
IP 192.168.42.1
и получаю ожидаемый результат, подтверждающий, что я, по крайней мере, подключен к своему VPN-серверу, однако мой исходящий интернет-трафик, безусловно, не проходит через него. В чем может быть проблема?