xl2tpd - подключить интернет
Добавлено: 29 окт 2023, 19:49
Firewall и NAT: Убедитесь, что порты для L2TP (UDP 1701), IPsec (UDP 500 и 4500) открыты на всех промежуточных устройствах, включая маршрутизаторы и фаерволы.
Оптимальный размер mru и mtu лучше устанавливать опытным путём, пингом до впн-сервера провайдера:
https://hamy.io/post/000c/how-to-find-the-correct-mtu-and-mru-of-your-link/
/bin/bash
cmd
Автоматически отрегулирует размер пакета в локальную сетку (при наличии локальной сети)
Если адрес впн-сервера не входит в диапазон адресов выданных dhcp-сервером провайдера, то нужно до него прописать маршрут
На примере beeline:
Интерфейс сетевой карты для интернета: enp1s0
Адрес сетевой карты: 10.116.51.3/24 (выдан провайдером по dhcp)
Основной шлюз: 10.116.51.1
Адрес vpn-сервера провайдера: 172.18.48.194
Прописываем маршруты до провайдерского dns-сервера (это не обязательно) и до провайдерского vpn-сервера (это обязательно):
mcedit /etc/network/if-up.d/beeline_route (имя файла может быть абсолютно любым, главное чтобы этот файл находился в этом каталоге)
Предпочтительнее, создать демона и использовать Автозагрузка пользовательского демона/скрипта
mcedit /etc/xl2tpd/xl2tpd.conf
mcedit /etc/ppp/options.xl2tpd
mcedit /etc/ppp/chap-secrets
Перезапускаем xl2tpd:
systemctl restart xl2tpd
Немного подождать, если интернет подключился, то команда ifconfig покажет ppp-интерфейс в своём списке
За ходом подключения ppp-сетевого интерфейса можно наблюдать в логах командой:
Проверить стабильность подключения через тот же лог-файл
после этого можно xl2tpd можно ставить в автозагрузку (если она не стоит в автозагрузке), командой:
systemctl enable xl2tpd
Примечание: на билайне ipv6 является помехой для корректной работы xl2tpd, поэтому ipv6 отключить командой:
https://serverfault.com/questions/524656/openswan-xl2tpd-connections-time-out-after-a-while
Оптимальный размер mru и mtu лучше устанавливать опытным путём, пингом до впн-сервера провайдера:
https://hamy.io/post/000c/how-to-find-the-correct-mtu-and-mru-of-your-link/
/bin/bash
Код: Выделить всё
ping -c 4 -s 1472 -M do 172.18.48.194
Код: Выделить всё
ping -l 1472 -f 172.18.48.194
Код: Выделить всё
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Код: Выделить всё
route add -net 172.18.48.0 netmask 255.255.255.0 gw 10.116.51.1 dev enp1s0
route add -net 172.18.49.0 netmask 255.255.255.0 gw 10.116.51.1 dev enp1s0
Интерфейс сетевой карты для интернета: enp1s0
Адрес сетевой карты: 10.116.51.3/24 (выдан провайдером по dhcp)
Основной шлюз: 10.116.51.1
Адрес vpn-сервера провайдера: 172.18.48.194
Прописываем маршруты до провайдерского dns-сервера (это не обязательно) и до провайдерского vpn-сервера (это обязательно):
mcedit /etc/network/if-up.d/beeline_route (имя файла может быть абсолютно любым, главное чтобы этот файл находился в этом каталоге)
Код: Выделить всё
#!/bin/sh
### BEGIN INIT INFO
# Provides: MyScript
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 1 0 6
# Short-Description: ...
# Description: ...
### END INIT INFO
#/etc/init.d/xl2tpd stop
##############################################################################
# маршрут vpn-серверов билайн
route add -net 172.18.48.0 netmask 255.255.255.0 gw 10.116.51.1 dev enp1s0
route add -net 172.18.49.0 netmask 255.255.255.0 gw 10.116.51.1 dev enp1s0
exit 0
mcedit /etc/xl2tpd/xl2tpd.conf
Код: Выделить всё
[global]
access control = yes
port = 1701
[lac beeline]
lns = 172.18.48.194 (адрес vpn-сервера провайдера, заменить на свой)
redial = yes
redial timeout = 30
require chap = yes
require authentication = no
name = логин (заменить на свой)
autodial = yes
pppoptfile = /etc/ppp/options.xl2tpd
ppp debug = yes
mcedit /etc/ppp/options.xl2tpd
Код: Выделить всё
unit 0
name логин (заменить на свой)
linkname beeline-l2tp
mru 1460
mtu 1460
remotename beeline
#ipparam beeline
#connect /bin/true
nodeflate
noauth
asyncmap 0
ms-dns 127.0.0.1
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
refuse-eap
refuse-pap
refuse-mschap
refuse-mschap-v2
debug
lcp-echo-interval 30
lcp-echo-failure 60
defaultroute
replacedefaultroute
lcp-echo-interval и lcp-echo-failure: Эти параметры управляют механикой проверки соединения. Если они установлены слишком агрессивно, это может привести к обрывам. Попробуйте увеличить значение lcp-echo-interval (например, до 30 секунд) и lcp-echo-failure (например, до 60)
Логин и пароль прописать в файл /etc/ppp/chap-secrets, в данном случае запись beeline - можно делать произвольную, указав её в remotename файла /etc/ppp/options.xl2tpdНа случай если имеется свой днс ms-dns 10.152.2.1
mcedit /etc/ppp/chap-secrets
Код: Выделить всё
логин beeline пароль *
Перезапускаем xl2tpd:
systemctl restart xl2tpd
Немного подождать, если интернет подключился, то команда ifconfig покажет ppp-интерфейс в своём списке
За ходом подключения ppp-сетевого интерфейса можно наблюдать в логах командой:
Код: Выделить всё
sudo tail -f /var/log/messages
Код: Выделить всё
sudo less /var/log/messages | grep "Connect time"
systemctl enable xl2tpd
Примечание: на билайне ipv6 является помехой для корректной работы xl2tpd, поэтому ipv6 отключить командой:
Код: Выделить всё
sysctl -w net.ipv6.conf.enp1s0.disable_ipv6=1