Назад | Перейти на главную страницу

Как направить интернет-трафик через установленное L2TP-соединение?

Я изо всех сил пытаюсь подключиться и, что более важно, перенаправить трафик из 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-серверу, однако мой исходящий интернет-трафик, безусловно, не проходит через него. В чем может быть проблема?