Corbina VPN поднятие интернета под Gentoo

Материал из AlexNook
Перейти к навигацииПерейти к поиску

Провайдер Corbina Telecom (ныне принадлежит Вымпелкому) работает по технологии VPN. Начал пользоваться этим замечательным провайдером в декабре 2007 года, но вот статью по настройке соединения пишу только сейчас, и то потому, что со дня на день собираюсь уйти в Onlime, которая работает по технологии DHCP.

Предварительные настройки gentoo для работы по vpn

Сперва необходимо поставить все необходимые пакеты, для успешной работы в Корбине.

Используя стандартный emerge ставим эти пакеты.

emerge net-misc/dhcp
emerge net-dialup/ppp
emerge net-dialup/pptpclient
emerge net-dns/bind-tools
emerge net-dialup/xl2tpd

Теперь переходим к настройке конфигурационных файлов. Всех тех служб, которые мы установили.

Конфигурационные файлы и службы, которые надо настроить

Для корректной работы интернета нам потребуются следующие конфигурационные файлы:

  • /etc/dhcp/dhclient.conf
  • /etc/conf.d/net
  • /etc/xl2tpd/xl2tpd.conf
  • /etc/ppp/options.l2tp

Причём, если такого файла у вас нет изначально, то создайте его!

Начнём с настройки DHCP клиента

nano /etc/dhcp/dhclient.conf
File: /etc/dhcp/dhclient.conf
timeout 40;
retry 30;
request subnet-mask, broadcast-address, time-offset, routers;

Самое интересное - основные сетевые настройки - NET

nano /etc/conf.d/net
File: /etc/conf.d/net
config_eth1=("192.168.0.1 netmask 255.255.255.0")
#mtu_eth1=1500

GATEWAY="10.134.40.1"
config_eth0=( "dhcp" )
modules=( "dhclient" )
#avtoperehod v demona
#dhclient_eth0="-nw"
dns_servers_eth0="195.14.50.1 195.14.50.21"
#dns_servers_eth0="213.234.192.8 85.21.192.3"
dns_search_eth0="corbina.ru"
fallback_eth0=( "10.134.41.247 netmask 255.255.248.0" )

#bred polnyj - ne trogat
#dhcp_eth0="nogateway"

# lokalnye resursy
routes_eth0=(
    "195.14.50.1 via $GATEWAY"
    "195.14.50.21 via $GATEWAY"
    "85.21.138.214 via $GATEWAY"
    "85.21.138.210 via $GATEWAY"
    "85.21.88.130 via $GATEWAY"
    "85.21.52.254 via $GATEWAY"
   # "85.21.138.208/28 via $GATEWAY" #
  #  "83.102.146.96/27 via $GATEWAY" #

     "85.21.138.208 via $GATEWAY" #
     "83.102.146.96 via $GATEWAY" #


    "78.107.23.0/24 via $GATEWAY"
    "195.14.50.16 via $GATEWAY"
    "195.14.50.26 via $GATEWAY"
    "89.179.135.67 via $GATEWAY"
    "62.205.179.146 via $GATEWAY"
    "85.21.79.38 via $GATEWAY"
    "10.0.0.0/8 via $GATEWAY"
    "85.21.79.0/24 via $GATEWAY"
    "85.21.90.0/24 via $GATEWAY"
#    "85.21.72.80/28 via $GATEWAY" #

    "85.21.72.80 via $GATEWAY" #

    "195.14.50.93 via $GATEWAY"
    "78.107.69.98 via $GATEWAY"
    "224.0.0.0/4 via $GATEWAY"
    "172.16.16.0/24 via $GATEWAY"
    "233.32.240.0/24 via $GATEWAY"
)

config_ppp0=( "ppp" )
#link_ppp0="pty 'pptp vpn.corbina.net --nolaunchpppd --nobuffer --loglevel 0'"
link_ppp0="pty 'xl2tpd'"
username_ppp0='YOUR_USERNAME'
password_ppp0='YOUR_PASSWORD'
pppd_ppp0=(
        #"nodefaultroute"
#izmenil nodefaultroute na defaultroute t.k. ranshe ne pahalo avtomaticheskoe dobavlenie marshrutov zi-za gluka v pppd_ppp0
        "defaultroute"
#ubral usepeerdns t.k. DHCP server vydae`t ne vernye dannye i my DNS propisyvaem ze`stko
        #"usepeerdns"
        "lock"
        "noauth"
# ubiraem kompressiju
        "noaccomp"
#noaccomp disables address/control compression in both directions.
        "nopcomp"
#nopcomp disables protocol field compression negotiation, in both the receive and the transmit direction
# zapretit vse` krome MSCHAPv2
        "refuse-eap"
        "refuse-chap"
        "refuse-mschap"
# zapretit protokoly szatija
        "nobsdcomp"
        "nodeflate"
        "debug"
#perepodnimat do upora
        "persist"
        "maxfail 0"
# vremia v sekundah mezdu popytkami perepodniatija upavshego VPN
        "holdoff 10"
# Cherez kakoj interval vremeni v sekundah posylat zaprosy chtoby proverit ziv li kanal ili net
        "lcp-echo-interval 10"
# esli lcp-echo-failure pingov ne proshlo znachit kanal otvalilsia i ego nado perepodnimat
        "lcp-echo-failure 9"
)

preup() {
if [ "${IFACE}" = "ppp0" ]; then
    /bin/mknod /dev/ppp c 108 0
    route del default
fi
return 0
}

postup() {
    if [ "${IFACE}" = "eth0" ]; then
# adresa VPN servakov berutsia s DNS-servera Korbiny
        for vpnaddr in $(host vpn.corbina.net | grep has | awk '{ print $NF }'); do route add $vpnaddr gw $GATEWAY dev eth0; done;
        for vpnaddr in $(host tp.corbina.net | grep has | awk '{ print $NF }'); do route add $vpnaddr gw $GATEWAY dev eth0; done;
    fi

    if [ "${IFACE}" = "ppp0" ]; then
# iz-za togo chto adres VPN servera sovpadaet s adresom shluza to sozdavaemyj avtomaticheski
#  marshrut k VPN serveru ispolzuet inerfejs ppp0 a ne eth0 - ispravliaem
        VPN=`ifconfig | grep 'P-t-P' | awk '{print $3}' | awk -F: '{print $2}'`
        route del $VPN dev ppp0
#udalenie shluza po umolchaniju v lokalku i dobavlenie shluza po umolchaniju v inet
        route del default
        route add default dev ppp0
    fi

return 0
}


postdown() {
# dobavlenie marshruta po umolchaniju v lokalku
    if [ "${IFACE}" = "ppp0" ]; then
       killall xl2tpd pppd
        route add default dev eth0
    fi
return 0
}


# pered zapuskom VPN dolzen byt podniat eth0
depend_ppp0() {
        need net.eth0
}
Note: Файл постарался где возможно снабдить комментариями. Часть строчек (закомментированных осталась с прошлой версии конфигурационного файла, и вполне возможно их удалить. Оставил их, т.к. возможно к ним прийдётся отказтится в будущем в случае каких-то неожиданностей.

Под себя нужно в конфиге изменить:

  • eth0 - название сетевого интерфейса
  • fallback_eth0 - адрес, назначаемый в случае неполучения его по dhcp (можно взять из своих же, выданных ранее).
  • username_ppp0='Ваш логин в корбине'
  • password_ppp0='Ваш пароль в корбине'
  • GATEWAY - шлюз по умолчанию

Так же для избежание автоматического запуска необходимо переименовать или перенести в другое место файлы /etc/ppp/ip-up.local и /etc/ppp/ip-down.local

Note: Обратите внимание - первой строчкой у меня происходит попутная конфигурация интерфейса eth1, т.к. дело происходит на моём внутреннм домашнем сервачке и он попутно раздаёт инет на мой дом.

Конфигурирование L2TP

nano /etc/xl2tpd/xl2tpd.conf
File: /etc/xl2tpd/xl2tpd.conf
[global]
access control = yes

[lac corbina]
lns = tp.corbina.net
redial = yes
redial timeout = 10
require chap = yes
require authentication = no
name = YOUR_USERNAME
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
refuse pap = yes
autodial = yes
Note: Опять же под себя измените ваш логин в Корбине.

Ну и последний конфиг L2TP.

nano /etc/ppp/options.l2tp
File: /etc/ppp/options.l2tp
name corbina
remotename l2tp
ipparam corbina
connect /bin/true
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
nodefaultroute
mru 1460
mtu 1460
noauth
user YOUR_USERNAME
password YOUR_PASSWORD

Пароль и логин меняем на свой!

Настраиваем автозапуск

Добавляем в автозапуск нашу ppp0 службу. То есть по сути создаваемый нами сетевой интерфейс ppp0 должен запускаться =).

rc-update add net.ppp0 default

Возможные ошибки

Различные ошибки, баги и косяки, которые могут возникнуть при работе по впн Корбины.

Зависание конекта по L2TP

Основная ошибка которая может возникать это не верное срабатывание соединения по l2tp с VPN сервером - tp.corbina.net. В таком случае есть смысл либо несколько раз переконекчиваться в надежде что DNS сбросит на рабочий сервак либо попробовать вот эти адреса l2tp серверов: 85.21.0.251-255