Linux32 - Блог



LINUX32

Свобода выбирать


ArchLinux
Блог >> 2014 >> Ноябрь


27.11.2014

Проводной Beeline. Часть 2




Всем привет. Настройка проводного билайн-интернета в обход NeyworkManager'a долго не давала мне покоя и вот наконец-то мне удалось с ней более-менее разобраться. Спешу поделиться с вами своими результатами.

Итак, нам понадобятся следующие пакеты: dhcpcd, dnsutils и xl2tpd. Первый из них обычно входит в состав всех популярных на сегодняшний момент дистрибутивов линукс, а вот с остальными загвоздка. Получается замкнутый круг: чтобы настроить интернет, нужно скачать из интернета эти пакеты. Решение проблемы в общем-то очевидное - найти другой компьютер с подключенным интернетом, скачать необходимые пакеты вместе со всеми их зависимостями отсюда, перенести их на флешке на наш компьютер и установить.

С установкой разобрались. Переходим к настройке. Заранее отмечу, что все команды в консоли выполняются от рута.

Первым делом добавим в автозапуск dhcpcd:

systemctl enable dhcpcd


И запустим dhcpcd применительно к нашему сетевому интерфейсу (обычно это eth0):

systemctl start dhcpcd@eth0


Вместо это шага можно перезагрузиться (привет Windows).

Теперь у нас появился интерфейс eth0. В этом можно убедиться выполнив в консоли команду ifconfig (эта команда входит в состав пакета net-tools, который может быть установлен таким же образом как и предыдущие пакеты на случай если его не окажется в вашей системе).

После поднятия eth0 смотрим адреса билайновских DNS-серверов, которые dhcpcd записал в файл /etc/resolv.conf:

cat /etc/resolv.conf
# Generated by dhcpcd from eth0
# /etc/resolv.conf.head can replace this line
domain beeline
nameserver 213.234.192.8
nameserver 85.21.192.3
# /etc/resolv.conf.tail can replace this line


У вас будет что-то подобное. А также с помощью программы host из пакета dnsutils определяем IP-адреса билайновского VPN-сервера с именем tp.internet.beeline.ru:

host tp.internet.beeline.ru
tp.internet.beeline.ru has address 89.179.75.225
tp.internet.beeline.ru has address 89.179.75.238


Теперь необходимо добавить маршруты к полученным предыдущими двумя командами IP-адресам. Чтобы эти маршруты добавлялись автоматически при загрузке системы, я набросал небольшой юнит-файл для системд. Назвал его add-beeline-routes.service:

[Unit]
Description=Add beeline routes
After=network.target
After=dhcpcd.service

[Service]
Type=forking
ExecStartPre=/usr/bin/sleep 10
ExecStartPre=/usr/bin/route add -host 89.179.75.225 gw 10.63.24.1
ExecStartPre=/usr/bin/route add -host 89.179.75.238 gw 10.63.24.1
ExecStart=/usr/bin/route add -host 213.234.192.8 gw 10.63.24.1

[Install]
WantedBy=multi-user.target


Я добавил маршруты не ко всем адресам потому что после этого минимума все заработало. А заработать должен пинг до tp.internet.beeline.ru. Если есть, то продолжаем. Кстати, обращаю внимание что в юнит-файле строка:

ExecStartPre=/usr/bin/sleep 10


необходима для того чтобы компьютер успел поднять сеть прежде чем начнут прописываться указанные маршруты. Хотя, как я думал, должны были помочь строки:

After=network.target
After=dhcpcd.service


Но не помогли...

Теперь перейдем к настройке 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 = 10
require chap = yes
require authentication = no
name = <ваш_логин>
ppp debug = yes
pppoptfile = /etc/ppp/peers/options.xl2tpd
require pap = no
autodial = yes


Где вместо <ваш_логин> прописать соответственно ваш логин (кавычки, разумеется, убрать).

В папке /etc/ppp/peers создаем файл options.xl2tpd с таким содержимым:

lcp-echo-interval 10
lcp-echo-failure 2
name <ваш_логин>
remotename l2tp
ipparam corbina
connect /bin/true
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
defaultroute
noauth


С полем <ваш_логин> повторяем предыдущие действия.

Далее в файл /etc/ppp/chap-secrets заносим ваши логин и пароль, выданные билайном. Должно быть вот так:

# Secrets for authentication using CHAP
# client server secret IP addresses
<ваш_логин> * <ваш_пароль>


Где поля в скобках заменяем на соответствующие свои значения (без кавычек опять же).

Теперь настроим автоматические действия при включении и выключении билайн-интернета. Для этого создаем в папке /etc/ppp/ip-up.d файл 10-beeline-start.sh с таким содержимым:

#!/bin/sh
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
route del default
route add default dev ppp0
(
echo '#!/bin/sh'
echo 'PATH="/sbin:/bin:/usr/sbin:/usr/bin"'
echo 'route del default'
echo "route add default dev eth0"
) >/etc/ppp/ip-down.d/10-beeline-stop.sh
chmod +x /etc/ppp/ip-down.d/10-beeline-stop.sh


И делаем его исполняемым:

chmod +x /etc/ppp/ip-up.d/10-beeline-start.sh


Этот файл при старте интернета будет удалять маршрут по умолчанию и добавлять новый маршрут по умолчанию через интерфейс ppp0 (это и есть интерфейс, через который будет доступен выход в интернет), а также создавать файл 10-beeline-stop.sh, который, в свою очередь, при отключении интернета - будет удалять маршрут через ppp0 и добавлять маршрут по умолчанию через eth0.

Вот мы и подходим к заключительной части. Теперь нужно в папке /etc/systemd/system создать файл xl2tpd.service со следующим содержимым:

.include /usr/lib/systemd/system/xl2tpd.service

[Unit]
After=add-beeline-routes.service


То есть мы задаем условие при выполнении которого будет запускаться сервис xl2tpd, а именно: после запуска ранее нами созданного add-beeline-routes.service. Это необходимо потому что интерфейс ppp0 не поднимается до тех пор пока не будут добавлены маршруты, описанные ранее, хотя сервис xl2tpd успешно стартует и без них, при этом его статус пишет что все в порядке.

Теперь последний штрих: добавим в автозагрузку сервисы:

systemctl enable add-beeline-routes
systemctl enable xl2tpd


И пробуем перезагрузиться. Интернет теперь должен работать сразу при старте системы, не запрашивая пароль и не требуя ручного запуска, в отличие от Windows. Что очень удобно. Убедится в наличии интернета можно введя команду ifconfig - в ней должен быть отображен интерфейс ppp0 с присвоенным IP-адресом.

Все. Объемная получилась статья и на первый взгляд сложная для понимания. Но если вдумчиво ее прочитать (пусть даже пару раз) все становится на свои места.

Я не стал разбирать опции файлов xl2tpd.conf и options.xl2tpd потому что и с этими опциями интернет заработал достаточно шустро (субъективно даже быстрее чем на Windows, также установленной на подопытном компьютере) и без падений. Но если есть желание попробовать тонкие настройки - то маны вам в помощь.

Замечу, что если бы мне попалась подобная статья когда я разбирался с настройками билайновского интернета, я не потратил бы такого количества времени и мое к нему отношение было бы на порядок лучше. Поэтому, надеюсь моя статья вам пригодится и сэкономит много времени. Как обычно, комментарии приветствуются.

Статья


Ваш комментарий:

Имя:
E-mail:
Код с картинки:
Комментарий: