Архивы: route

OpenVPN поверх PPPOE ( openvpn over pppoe redirect-gateway def1 )

Существует проблема замены маршрута по умолчанию при использовании openvpn поверх pppoe
дело в том, что pppoe поднимается с неправильным маршрутом по умолчанию, выглядит он вот так

Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0

опенвпну не нравится gateway поэтому его нужно исправить, например на вот такой

Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         222.222.222.22  0.0.0.0         UG    0      0        0 ppp0

для этого создадим файл

/etc/ppp/ip-up.d/default-gateway

не забываем задать ему chmod u+x
с таким содержимым

#!/bin/bash

if [ $(ip route list exact default |\
  awk '/^default/ {print $2}') = dev ];
then
         IF=$(ip route | awk '/^default/ {print $3}')
         GW=$(ip address show $IF |\
  awk '/peer/ {print $4}' | cut -d"/" -f1)
         ip route replace default via $GW dev $IF
fi

если руками выполнить этот скрипт то он предложит сделать примерно вот такое

ip route replace default via 222.222.222.22 dev ppp0

После чего опенвпн успешно подменит маршрут на свой, и трафик полетит в нужную сторону.

если до какого-то хоста нам нужно пустить трафик вне ОпенВПна, например до своего хоста, для подключения по ssh, то в этот же файл добавляем

#my route 91.91.91.91
route add 91.91.91.91 gw 222.222.222.22 dev ppp0

если шлюз динамический, то используем $GW вместо 222.ххх