Новости из Блогов Настройка устойчивого подключения к провайдеру Beeline (Corbina) в CentOS6/RHEL6

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 23 Sep 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Настройка устойчивого подключения к провайдеру Beeline (Corbina) в CentOS6/RHEL6


    Настройка устойчивого подключения к провайдеру Internet Beeline (Corbina) в
    CentOS6 и RHEL6 по протоколу l2tp, с
    помощью openl2tp. Продолжение опуса - http://www.opennet.ru/tips/info/2539.shtml

    Многие идеи и скрипты были взяты из Debian(6). Для краткости изложения,
    привожу, только имена скриптов и конфигурационных файлов задействованных в
    процессе соединения и описание происходящих событий.

    Совет: если нет необходимости, или выбор дистрибутива не имеет значения, в
    Debian настройка выполняется проще и без установки дополнительных пакетов.
    Все необходимые пакеты (x86_64), скрипты, исходники можно найти по адресу http://www.ilyx.ru/openl2tp

    Дано:

    1. Локальное подключения: ethernet 100Mb(eth0).
    2. Login и Password для подключения к серверу tp.internet.beeline.ru.

    Необходимо:

    1. Получить настройки по DHCP (локальный IP, маршруты, DNS сервера) через eth0.
    2. Подключиться к Internet: с помощью openl2tp через сервер tp.internet.beeline.ru.

    Начнем с принципиальных трудностей и их устранения.

    Ядро (на данный момент 2.6.32-279.5.2.el6) собрано без заплатки для модуля
    "pppol2tp" - https://lkml.org/lkml/2011/5/5/416 - "Fix UDP socket reference
    count bugs in the pppol2tp driver", что не даст нам получить устойчивое
    соединение. В Debian(6) все нормально.
    Чтобы не пересобирать этот модуль для каждого нового ядра, я, воспользовавшись
    наработками http://elrepo.org, собрал пакет с пропатченным модулем.

    Устанавливаем "kmod-pppol2tp".

    "pppd" нас "радует" отсутствием необходимых плагинов openl2tp.so и pppol2tp.so
    из-за ошибок при сборке.

    Установим пакет - "openl2tp-ppp" - который является побочным продуктом при
    сборке openl2tp для RHEL6 после внесения
    необходимых изменений см. openl2tp-1.8-1.el6.src.rpm. Опять же, в Debian(6) все нормально.

    После этого устанавливаем сам openl2tp.

    Далее устанавливаем все необходимое из архива в /etc/* вносим необходимые изменения в файлы -
    Code:
    /etc/sysconfig/network-scripts/ifcfg-* ; Если надо.
    	/etc/openl2tpd.conf ; Меняем user_name= и dest_ipaddr=
    	/etc/ppp/chap-secrets ; Меняем client, secret
    
    	chkconfig openl2tpd on
    	semodule -i pppol2tp.pp ; Если включен SELINUX.
    	shutdown -r now
    Пояснение:

    Каталог /etc/dhcp - содержит конфигурационный файл dhclient.conf и скрипты для
    обработки параметров полученных по DHCP и не обрабатываемых по умолчанию
    утилитой dhclient. Результатом работы
    dhclient после поднятия eth0 должно быть: присвоение IP адреса (10.*.*.*)
    интерфейсу eth0, заполнение довольно внушительной,
    таблицы маршрутов к локальным сервисам Beeline, доступным без подключения к
    Internet, заполнение /etc/resolv.conf и установка временного маршрута по умолчанию.

    Также в файле /etc/dhcp-default-router сохраняется, IP адрес, полученного
    маршрута по умолчанию, для последующей настройке маршрутов при запуске и
    завершение openl2tpd(pppd).

    В файле /etc/openl2tpd.conf рекомендую в поле dest_ipaddr= указать IP адрес
    tp.internet.beeline.ru, а не tp.internet.beeline.ru, т.к. в случае если при
    разыменование произойдет сбой, openl2tpd завершится, без дальнейших попыток
    переустановить соединение. Можно выбрать понравившийся IP адрес, несколько раз
    запустив "ping -c 1 tp.internet.beeline.ru".

    Каталог /etc/ppp - содержит простейшие скрипты и необходимые настройки,
    спецефичные для RHEL6, для настройки таблицы маршрутов
    при поднятие "pppX" интерфейса используя файл /etc/dhcp-default-router.

    Если используем как маршрутизатор, добавляем где-нибудь в iptables:
    Code:
      iptables -t mangle -A FORWARD -o pppX -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1421:65496 -j TCPMSS --clamp-mss-to-pmtu
    P.S. В некоторых скриптах используется, при настройке маршрутов, параметр
    metric 10, это только для отладочных целей, чтобы определенные маршруты
    выделить из общей массы, никакой иной роли, этот параметр, в данном случае не имеет.

    P.S.2. У меня конечная таблица маршрутов выглядит так: http://ilyx.ru/openl2tp/openl2tpCEntOS.txt

    19.09.2012
    http://www.opennet.ru/tips/2714_l2tp_vpn_centos_rhel_linux_beeline_pptp.shtml