Главная
Главная Руководства Debian › Debian - подключаемся к проводному beeline



Автор:

Статья опубликована: 2015-07-17 12:22:52
Последние правки: 2018-03-11 20:17:00

It worked! Здесь вы найдете реально работающие настройки для подключения к beeline из Debian. Сам Debian установлен на виртуальной машине (virtualbox).

До того я уже подключался к Билайну под FreeBSD, но в связи со сменой основного провайдера на ДомРу а также с несовместимостью двух провайдеров на одной машине, Билайну пришлось переехать на виртуальный сервер. Я решил теперь попробовать Debian, благо ничего серьезного я на доп.провайдера навешивать не собирался.

Билайн ориентирован на Windows-клиентов и поэтому подключение к Beeline для юниксоида - всегда экстрим. Начать с того, что девочки саппорта Билайна залипают когда ты говоришь им, что у тебя FreeBSD, а после отлипания выдают из скрипта "мы не занимаемся поддержкой клиентов с не Виндой". Настройка на FreeBSD проходила очень увлекательно, вплоть до мониторинга через tcpdump "а куда идут пакеты". Так что тренируйте пальцы - набирать конфигов придется много.
  • Исходные данные
    # uname -vr
    3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24)
    
    Настраиваем для eth0

  • Подготовка:
    В системе должны быть установлены пакеты: udhcpcd, dnsutils и xl2tpd. Как вы их будете устанавливать - без разницы, я добавил в виртуалку eth1 со статическим ip и выпустил сервер в инет через хост-сервер, который подключен к основному провайдеру.
    # apt-get install udhcpd
    # apt-get install dnsutils
    # apt-get install xl2tpd
    
  • Настраиваем eth0 и dhcpd:
    Запись для eth0 в /etc/network/interfaces
    auto eth0
    iface eth0 inet dhcp
    
    Настраиваем dhcpd.
    /etc/dhcp/dhclient.conf
    Ищем строчку
    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
    
    и меняем её на
    option rfc3442-classless-static-routes code 249 = array of unsigned integer 8;
    
    Чтобы через три дня наш сервер смог найти dhcp-сервер Билайна, ниже пишем ещё одну строчку:
    supersede dhcp-server-identifier 255.255.255.255;
    
    Потом ищем строку, которая начинается на request и меняем её:
    request subnet-mask, broadcast-address, time-offset, routers, static-routes,
            domain-name, domain-name-servers, domain-search, host-name,
            netbios-name-servers, netbios-scope, interface-mtu,
            rfc3442-classless-static-routes, ntp-servers;
    
    С настройкой dhcpd.conf закончили.

    Команда для добавления udhcpd в автозапуск:
    # systemctl enable dhcpcd
    
    Для чистоты эксперимента перезагружаем.
    После перезагрузки смотрим таблицу маршрутизации. Должно быть что-то вроде этого:
    ~# netstat -nr
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         10.63.224.1     0.0.0.0         UG        0 0          0 eth0
    10.63.224.0     0.0.0.0         255.255.248.0   U         0 0          0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
    
    Смотрим, какие dns записало в /etc/resolv.conf
    ~# cat /etc/resolv.conf
    domain beeline
    search beeline
    nameserver 213.234.192.8
    nameserver 85.21.192.3
    
    Пробуем трассировку до dns-серверов из /etc/resolv.conf
    ~# traceroute 85.21.192.3
     1  10.63.224.1 (10.63.224.1)  1.638 ms  2.212 ms  2.927 ms
    ...
    11  nlb1.beeline.ru (85.21.192.11)  11.813 ms  11.774 ms 8m-iptv-bb-vl23.corbina.net (85.21.226.75)  12.600 ms
    ~# traceroute 213.234.192.8
    traceroute to 213.234.192.8 (213.234.192.8), 30 hops max, 60 byte packets
     1  10.63.224.1 (10.63.224.1)  1.497 ms  2.076 ms  2.792 ms
    ...
    10  nlb1.beeline.ru (85.21.192.11)  11.863 ms  11.821 ms  11.773 ms
    
  • Далее, пробуем выяснить ip-адреса vpn-серверов
    ~# host tp.internet.beeline.ru
    tp.internet.beeline.ru has address 89.179.75.238
    tp.internet.beeline.ru has address 89.179.75.225
    
    Пробуем пинговать
    ~# ping 89.179.75.225
    PING 89.179.75.225 (89.179.75.225) 56(84) bytes of data.
    64 bytes from 89.179.75.225: icmp_seq=1 ttl=251 time=0.607 ms
    64 bytes from 89.179.75.225: icmp_seq=2 ttl=251 time=0.430 ms
    64 bytes from 89.179.75.225: icmp_seq=3 ttl=251 time=0.437 ms
    64 bytes from 89.179.75.225: icmp_seq=4 ttl=251 time=0.443 ms
    64 bytes from 89.179.75.225: icmp_seq=5 ttl=251 time=0.412 ms
    ^C
    --- 89.179.75.225 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 3998ms
    rtt min/avg/max/mdev = 0.412/0.465/0.607/0.076 ms
    ~# ping 89.179.75.238
    PING 89.179.75.238 (89.179.75.238) 56(84) bytes of data.
    64 bytes from 89.179.75.238: icmp_seq=1 ttl=252 time=0.433 ms
    64 bytes from 89.179.75.238: icmp_seq=2 ttl=252 time=0.355 ms
    64 bytes from 89.179.75.238: icmp_seq=3 ttl=252 time=0.467 ms
    64 bytes from 89.179.75.238: icmp_seq=4 ttl=252 time=0.795 ms
    ^C
    --- 89.179.75.238 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 2997ms
    rtt min/avg/max/mdev = 0.355/0.512/0.795/0.169 ms
    
  • Настраиваем xl2tpd:

    /etc/xl2tpd/xl2tpd.conf
    [global]
    access control = yes
    auth file = /etc/ppp/chap-secrets
    [lac beeline]
    lns = tp.internet.beeline.ru
    redial = yes
    redial timeout = 5
    require chap = yes
    require authentication = no
    name = <логин_beeline>
    ppp debug = no
    pppoptfile = /etc/ppp/peers/options.xl2tpd
    require pap = no
    autodial = yes
    tx bps = 1000000000
    
    /etc/ppp/peers/options.xl2tpd
    lcp-echo-interval 10
    lcp-echo-failure 2
    name <логин_beeline>
    remotename l2tp
    ipparam corbina
    connect /bin/true
    mtu 1460
    nodeflate
    nobsdcomp
    persist
    maxfail 0
    nopcomp
    noaccomp
    noauth
    noproxyarp
    
    <логин_beeline> - это ваш логин для подключения (без угловых скобок, конечно)

    /etc/ppp/chap-secrets
    # Secrets for authentication using CHAP
    # client server secret IP addresses
    <логин_beeline> * <пароль_beeline>
    
    /etc/ppp/options
    lcp-echo-failure 10
    lcp-echo-adaptive
    lcp-echo-interval 60
    
    Теперь пишем скрипты для смены маршрутов.

    - при поднятии ppp-интерфейса, файл /etc/ppp/ip-up.d/0010beeline-up
    #!/bin/sh
    
    #GW="10.63.224.1"
    GW=`cat /var/lib/dhcp/dhclient.eth0.leases | grep 'option routers' | tail -1 | awk '{print $3}' | sed 's/;//'`
    /sbin/route del $5 dev $1
    /sbin/route add -host $5 gw $GW
    /sbin/route add -net 10.63.0.0 netmask 255.255.0.0 gw $GW
    for i in $(grep "^nameserver" /etc/resolv.conf | awk '{print $2}'); do
     /sbin/route add -host $i gw $GW
    done
    /sbin/route del default
    /sbin/route add default dev $1
    
    Здесь мы:
    - узнаем маршрут по умолчанию (GW) из файла dhcpd нашего интерфейса (/var/lib/dhcp/dhclient.eth0.leases)
    - удаляем маршрут до vpn-сервера через его же vpn-туннель (в Windows такой маршрут не вызывает никаких проблем, но то в Windows, а в unix получается петля и ничего не работает)
    - добавляем маршрут до vpn-сервера через eth0
    - добавляем маршрут на билайновскую сеть 10.63.0.0 через eth0 (этот момент нужно будет периодически проверять, чтобы сеть вдруг не изменилась)
    - добавляем маршрут на dns-сервера через eth0
    - удаляем маршрут по умолчанию
    - задаем адрес vpn-сервера в качестве маршрута по умолчанию

    - при выключении ppp-интерфейса, файл /etc/ppp/ip-down.d/0010beeline-down
    #!/bin/sh
    
    #GW="10.63.224.1"
    GW=`cat /var/lib/dhcp/dhclient.eth0.leases | grep 'option routers' | tail -1 | awk '{print $3}' | sed 's/;//'`
    /sbin/route del default
    /sbin/route add default gw $GW
    
    как видите, ничего сложного:
    - снова находим адрес маршрута по умолчанию из dhcp
    - удаляем маршрут по умолчанию (он сейчас ведет на vpn-сервер)
    - добавляем маршрут по умолчанию на eth0

  • Запускаем
    - добавляем в автозагрузку:
    ~# systemctl enable xl2tpd
    
    - запускаем:
    ~# service xl2tpd start
    
    - посмотреть что происходит:
    ~# systemctl status xl2tpd.service
    
    или же в файле /var/log/syslog

    Если все подключение прошло удачно, то у вас появится новый сетевой интерфейс
    ppp0      Link encap:Point-to-Point Protocol  
              inet addr:XXX.XXX.XXX.XXX  P-t-P:XXX.XXX.XXX.XXX  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1460  Metric:1
              RX packets:4548 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3109 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3 
              RX bytes:5925964 (5.6 MiB)  TX bytes:234571 (229.0 KiB)