UMGUM.COM (лучше) 

PPPoE + ID-Net Megaline ( Подключение Debian Linux к ID-Net Megaline (PPPoE). )

26 марта 2011  (обновлено 31 января 2015)

OS: Debian GNU/Linux Squeeze.

И вот, случилось "это" - пришли к нам супер-скоростя. На днях в телефонной трубке раздался женский голос, приятного тембра, преисполненный сдержанной гордости за содеянное и предвосхищения предстоящим, вежливый, но непреклонный в намерении не дать мне уклонится от чести приобщения к высокому. Голос сказал, что ID-Net от АО "Казахтелком" заменяет в моём доме услугу предоставления доступа к сети Интернет по ADSL. Голос в трубке дал мне понять, что если я не подключу себе ID-Net вместо ADLS, то доступ к "одноклассникам" и "весёлой ферме" очень скоро перестанет иметь место быть. По случайности, в это время в моём подъезде проходила бригада из трёх монтёров с бухтами кабелей, стремянками и перфораторами. Не желаю ли я, раз уж так совпало, переключится на ID-Net прямо сейчас? Желаю.

После того, как Ethernet кабель был проложен и расключен, сотрудники провайдера-"не монополиста" оставили меня наедине с моим Linux-ом, сказав, что с такими задротами, как я, растрачивающими время на возню со всякой хренью, вместо того, чтобы своровать Windows и спокойно пить пиво, возится не имеют времени и желания. Поспрашивав их, пришёл к предположению, что для авторизации используется технология PPPoE.

На сайте провайдера настроек или объяснения процесса подключения не нашлось, разумеется. Сделаем это сами, исходя из предположения, что подключение можно провернуть с помощью PPPoE.


Для начала устанавливаем необходимый пакет:

# aptitude install pppoe

Загружаем модуль ядра поддержки PPPoE, имеющийся во всех распространённых дистрибутивах Linux:

# modprobe pppoe

# lsmod | grep pppoe

....
pppoe    8445  0
....

Велим модулю загружаться при старте системы:

# echo "pppoe" >> /etc/modules

Создадим конфигурацию PPPoE подключения:

# touch /etc/ppp/peers/idnet

Приведём содержимое файла к следующему виду:

# cat /etc/ppp/peers/idnet

# Логин пользователя
user username
# Способ и параметры запуска подключения
pty "/usr/sbin/pppoe -I eth0 -T 80"
# Указание использовать полученные от провайдера IP
noipdefault
# Согласие использовать полученные от провайдера адреса DNS серверов
usepeerdns
# Указание использовать подключение в качестве маршрута по умолчанию
defaultroute
# Скрываем пароль из отображения в терминал и журнал событий
hide-password

# Если я верно понял - это указание переопределить все параметры, примененные до указанных в этой конфигурации
connect /bin/true
# Указание пере-подключатся в случае потери соединения
persist

# Что-то умное
lcp-echo-interval 20
lcp-echo-failure 3
mtu 1492
noauth
noaccomp
default-asyncmap

Описываем сетевые интерфейсы так, какими мы желаем их видеть:

# cat /etc/network/interfaces

....
# Разрешаем Ethernet интерфейсу, к которому подключен "линк" автоматически включатся и быть управляемым сторонними приложениями
auto eth0
allow-hotplug eth0
....
# Придумываем виртуальный сетевой интерфейс ppp0, работающий по технологии PPP, используя конфигурацию, размещённую в файле с именем idnet (в директории /etc/ppp/peers)
auto ppp0
iface ppp0 inet ppp
    provider idnet
....

Размещаем, в положенном ему месте, пароль, используемый подключением PPPoE:

# cat /etc/ppp/pap-secrets

....
megaline  *  megaline
username  *  password

Практически - на этом всё. Можно перезапустить сетевую подсистему. Сразу после того, как она перечитает конфигурацию, соединение PPPoE, настроенное на автоматический запуск, будет инициировано:

# /etc/init.d/networking restart

Проверяем, запустилось ли приложение pppoe:

# ps waxf | grep -v grep | grep ppp

3442 ?    S    0:00 /usr/sbin/pppd call idnet
3444 ?    S    0:00  \_ sh -c /usr/sbin/pppoe -I eth0 -T 80
3447 ?    S    0:00      \_ /usr/sbin/pppoe -I eth0 -T 80

Возможно даже, сразу заработает "сеть":

# ifconfig

eth0
  Link encap:Ethernet  HWaddr ....
  UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
  RX packets:760 errors:0 dropped:0 overruns:0 frame:0
  TX packets:791 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:130351 (127.2 KiB)  TX bytes:86394 (84.3 KiB)
  Interrupt:16

ppp0
  Link encap:Point-to-Point Protocol  
  inet addr:95.59.193.67  P-t-P:95.58.144.8  Mask:255.255.255.255
  UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
  RX packets:276 errors:0 dropped:0 overruns:0 frame:0
  TX packets:327 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:3
  RX bytes:113252 (110.5 KiB)  TX bytes:35949 (35.1 KiB)

Если что-то не пошло - начинаем рыть.

Для начала, следовало бы попробовать заслать запрос на все сетевые интерфейсы на предмет обнаружения оборудования, осуществляющего терминирование сессий PPPoE:

# pppoe-discovery

Замечательно, если таковое обнаружится:

Access-Concentrator: Megaline-OPTS73
Got a cookie: da 27 01 8e b8 3a 87 3e 19 8e 06 e1 44 d7 a5 25
--------------------------------------------------
AC-Ethernet-Address: 00:90:1a:a3:d4:9f

Тут всё просто: наше оборудование посылает в линию пакеты PADI (Initiation) и ждет в ответ пакеты PADO (Offer) от концентратора провайдера. Если оно не дожидается ответа, то далее дороги нет. Варианта развития событий три: неисправно наше оборудование, повреждена линия связи или имеют место быть проблемы у провайдера, связанные с нестабильной работой используемого нами физического порта (DSL или Ethernet). Если первый вариант отпадает, второй отработан, то остаётся лишь звонить в службу поддержки провайдера в надежде достаточно быстро попасть на вменяемого специалиста.

Для дальнейшей локализации проблемы стоит запустить подключение вручную, указав ему не "отрываться" от терминала:

# pppd call idnet nodetach

Классно, если увидим нечто, вроде этого:

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/pts/4
PAP authentication succeeded
local  IP address 95.59.193.67
remote IP address 95.58.144.8
primary   DNS address 212.154.163.162
secondary DNS address 95.56.237.24
....

Пробежимся по сайтам и прервём соединение:

Ctrl+C

....
^CTerminating on signal 2
Connect time 18.9 minutes.
Sent 38803 bytes, received 116323 bytes.
Connection terminated.
pppoe: read (asyncReadFromPPP): Session 2381: Input/output error
Child process /usr/sbin/pppoe -I eth0 -T 80 (pid 3100) terminated with signal 2

Возможно, что мы получим отказ в доступе:

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/pts/4
Remote message: Access Denied
PAP authentication failed
Modem hangup
Connection terminated.

Скорее всего дело в том, что не была использована авторизация PAP, в то время как провайдер АО "Казахтелеком" поддерживает только её. При попытке анонимного доступа или использования CHAP - получим в логи следующее:

....
pppoe: Timeout waiting for PADO packets
....

Ну и, напоследок:

Запуск PPPoE:

# pon idnet

Останов PPPoE:

# poff idnet


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )