Метка: 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.ххх