The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка устойчивого подключения к провайдеру Beeline (Corbina) в CentOS6/RHEL6
Настройка устойчивого подключения к провайдеру Internet Beeline (Corbina) в
CentOS6 и RHEL6 по протоколу l2tp, с
помощью openl2tp. Продолжение опуса - http://www.opennet.dev/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/* вносим необходимые изменения в файлы -

	/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:

   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 , Автор: Ilya , Источник: http://ilyx.ru/openl2tp/openl2tpCEn...
Ключи: l2tp, vpn, centos, rhel, linux, beeline, pptp
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / PPP, PPTP, PPPOE

Обсуждение [ RSS ]
  • 1.1, Аноним (-), 21:42, 20/09/2012 [ответить]  
  • +/
    Не проще ли провайдера сменить или операционку? Или роутер купить, заодно Wi-Fi-счастье наступит...
     
     
  • 2.4, Аноним (-), 15:22, 21/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Не проще ли провайдера

    Вообще, это лучшее решение. Особенно если на провайдера который предоставляет стандартный эзернет без всякой PPP-* дряни поверх него. Так и нагрузка на роутер (если есть) меньше, и надежность соединения намного лучше. Просто потому что нет зависимости от небольшого числа терминирующих серверов которые долбит толпа народа и вообще отпадать нечему.

    > Или роутер купить, заодно Wi-Fi-счастье наступит...

    Да, особенно на тарифе 40-50 Мбитов, особенно если на роутере сэкономить и купить нечто с дохлым процом. Оно как раз упрется в проц роутера и посадит скорость работы канала. Несомненно, нынче есть и приличные экспонаты которым 40Мбит L2TP не особо то и сложно (например, аппараты на основе AR7161), но они все-таки стоят денег. И не каждый догадается купить роутер подороже вот так сходу :).Кроме того, далеко не каждый роутер с фабричной прошивкой вообще нормально работает с горбиной вида "ой, а у нас тут 2 соединения: эзернет, но только для локалки и l2tp для интернета". Нет, бывают некоторые экспонаты где это учтено, а также прошивки типа openwrt, где допущений о том что в природе бывает только LAN + WAN просто не делается, но ... но это ж все надо знать. Желательно заранее. А вы про это ни звука. Купив роутер наобум - можно получить много счастья с билайно-горбиной.

     

  • 1.2, Алексей (??), 23:56, 20/09/2012 [ответить]  
  • +/
    =) ага, проще к соседу подключиться, что правильно настроил линк.
    По теме, что-то ключевая фича не раскрыта, где и вчем устойчивость предлагаемого решения? И не надо отправлять в тьмутаракань. Раз упомянули, так опишите хотя бы функционально о чем же речь? Или вся соль в патче на драйвер ядра?
     
     
  • 2.8, trader2k4 (?), 14:55, 22/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И кстати да, в чём преимущество перед другими решениями, например, xl2tpd ? почему взято именно то, что взято?
     

  • 1.3, анонимаус (?), 13:10, 21/09/2012 [ответить]  
  • +/
    Вся соль на поверхности статьи:
    В Debian(6) все нормально.
    идеи и скрипты были взяты из Debian(6).
    )))
     
  • 1.5, anonimaizer (?), 01:36, 22/09/2012 [ответить]  
  • +/
    Поясните пожалуйста, что даёт это правило?
    > 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
     
     
  • 2.6, ДорогойДрук (?), 03:16, 22/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Поясните пожалуйста, что даёт это правило?
    >> 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

    Это ограничение на максимальный размер пакета, передаваемого в туннеле.
    Обычно пишут короче:
    iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

     
     
  • 3.7, Ilya (??), 11:11, 22/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Короче нельзя, вдруг MSS, у кого-то, меньше чем у вас.
    Мало вероятно, но возможно.

     

  • 1.9, Stax (ok), 17:06, 22/09/2012 [ответить]  
  • +/
    Непонятно, а почему после расписанных ранее преимуществ x2ltpd и проблем openl2tpd тут делается решение на последнем? У меня соединение с корбиной работало на штатном (из epel по-моему) x2ltpd-1.3.1 под SL6 безо всяких патчей и модулей ядра.
     
     
  • 2.10, Ilya (??), 22:20, 22/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
      xl2tpd не работает на уровне ядра это вносит определенную,
    задержку - это раз.
      Код ужасен, несколько раз менялся сопровождающий, ну в общем поверьте мне,
    мои патчи приняты в версии 1.3.0
    * xl2tpd: field o_pad in "struct payload_hdr" unnecessary. RFC 2661 [Ilya]
    * Fix logging in write_packet() [Ilya]
    проект страшное недоразумение, написанное временно, но жалко бросить - это два.
      Я протестировал у себя openl2tp - работает, openl2tp идеологически более правильный.
    Я не навязываю никому свое мнение, пользуйтесь чем вам нравится.
    Цель - просто помочь тем, кому необходимо настроить подключение openl2tp именно на
    CEntOS6/RHEL6 к Beeline.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру