После обновления до Fedora 25 одно из моих PPTP-подключений странно работает. Удаленная сеть недоступна.
Подключен, успешно получил удаленный сетевой IP-адрес. При подключенииничегодоступен в удаленной сети, но интернет работает нормально. Через несколько минут соединение обрывается само по себе.
Я заметил странную вещь: при включенном pptp-соединении передается слишком много данных TX packets
:
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400
inet 192.168.1.96 netmask 255.255.255.255 destination ___.__.___.___
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 10 bytes 172 (172.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9864041 bytes 5842982146 (5.4 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
За 10-15 секунд показывает до 5,4 ГиБ пакетов. Растет очень быстро.
То же самое, если firewalld отключен.
Я использую Network-Manager для подключения к pptp.
[root@c0rp ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 25 (Twenty Five)
Release: 25
Codename: TwentyFive
[root@c0rp ~]# uname -a
Linux c0rp 4.10.8-200.fc25.x86_64 #1 SMP Fri Mar 31 13:20:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Может ли кто-нибудь помочь мне разобраться в проблеме?
Обновление после предоставления решения
Я обнаружил, что вновь созданный маршрут указывает на себя, используя route
команду. Проверьте сразу после подключения pptp:
xxx.xxx.xxx.xxx 0.0.0.0 255.255.255.255 UH 50 0 0 ppp0
Вот что я сделал:
- Удалить удалить назначенный адрес из сетевого устройства
- Добавьте обратно назначенный адрес вместе с заменяющим адресом однорангового узла
Все именно так, как указано в ссылке.
Наконец, я добавляю в скрипт два следующих шага dispatcher.d
:
#!/bin/bash
INTERFACE=$1
ACTION=$2
SSID="Your vpn connection name in Network Manager"
if [[ $CONNECTION_ID == "$SSID" ]]; then
if [[ $ACTION = "vpn-up" ]]; then
IP4_ADDRESS=$(ifconfig "$1" | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
ip addr del "$IP4_ADDRESS" dev $INTERFACE
ip addr add "$IP4_ADDRESS" peer 192.168.1.9/24 dev $INTERFACE
fi
fi
Я поместил этот скрипт в/etc/NetworkManager/dispatcher.d
решение1
Проверь это:http://pptpclient.sourceforge.net/howto-diagnosis.phtml#ip_loop.
NM
(или pppd
) создает дополнительный, неправильный маршрут по умолчанию (даже если nodefaultroute
передается как параметр). route del
не удалит его.
Я обошёл эту проблему, сообщив NM, что соединение будет доступно и другим пользователям.
Скорее всего, это ошибка, но это решило проблему на какое-то время.