self-perfection |
|
Темы:
0
Сообщения:
4
Участник с: 12 ноября 2011
|
naszarЭто давно прописано и ни при чём, т.к. xl2tpd не сам падает, а его останавливает systemd из-за неудовлетворённой зависимости.Если beeline-lan отваливается, то xl2tpd останавливается naszarКак-то не приходило в голову сделать через службу dhcpcd. Не вижу смысла перенастраивать. Замена профиля netctl на прямой вызов сервиса dhcpcd решит какие-то проблемы?Если beeline-lan отваливается, то xl2tpd останавливаетсяпрофиль netctl для локалкиА DHCP не работает? Может будет достаточно dhcpcd@enp2s0, или как там ваш интерфейс зовут? Просто надо поиграть с /etc/dhcpcd.conf. |
yurgin |
|
Темы:
10
Сообщения:
59
Участник с: 15 августа 2013
|
вопрос наверно глупый, но немогу найти решения. в линуксах новичек. в арчевы systemctl начинаю вникать, а в демонах все еще запутанее. от других дистрибов тоже неполучается ущипнуть идею. провел интернет vpn l2xp суть проблемы - как поднять интернет с нуля добился некоторого прогресса 1-загружаюсь с флешки 2- настраиваю xl2tpd и ppp 3- запускаю соединение dhcpcd (соединение устанавливается , выводятся сообщения о подключеннии. IP и т.п. могу по пинговать провайдера) 4- запускаю xl2tpd -D и смотрю че ему не нравится. где искать логи от xl2tpd, они при загрузке с флеши вообще бывают? в /var/log по сути тока мелочь всякая о прогах какие запускались. в /var/run есть чтото про xl2tpd, но MC это открыть неможет. xl2tpd перезапускаю # killall -9 xl2tpd
% telnet towel.blinkenlights.nl
|
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Подниму тему. Подскажите, где настраивается запуск скрипта /etc/ppp/ip-up на выполнение при поднятии ppp0? Или он должен автоматически запускаться без всяких настроек? Тогда это баг: у меня при старте xl2tpd.service этот скрипт не отрабатывает. Настроил пока что через костыль, но хочу разобраться. В моем случае перед стартом xl2tpd нужно добавить 3 маршрута в таблицу маршрутизации, затем запустить xl2tpd, удалить маршрут по умолчанию и добавить новый через интерфейс ppp0. Все это я прописал в ip-up. Но ppp0 не поднимается, хотя systemctl status xl2tpd говорит что все ок. Если же вручную добавить маршруты и перезапустить xl2tpd - то все нормально. Сейчас запускаю так: добавил все команды в скрипт (в том числе и start xl2tpd), путь до скрипта добавил в sudoers и закинул этот скрипт в автозапуск от пользователя. Работает, но хочется сделать как положено. Помогите советом
www.linux32.ru - новости и статьи о Linux
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
32reg, всё немного не так. 1) pppd запускает скрипт /etc/ppp/ip-up не ДО, а ПОСЛЕ поднятия интерфейса. То есть, его можно (а лучше ip-up.d/*) использовать для манипутяций только с теми роутами, что ссылаются на этот самый интерфейс. 2) Описанная замена роутов сама по себе – огромный и ненадёжный костыль, поскольку сетевые соединения имеют свойство обрываться и автоматически подниматься заново, а все роуты на исчезавший при переподключении интерфейс исчезают вместе с ним. Вместо того, чтобы заменять одни роуты другими, лучше присвоить им разные метрики – тогда без PPP-интерфейса будет действовать менее приоритетный (с бОльшей метрикой) роут в локалку, а при подключениии pppd будет создавать свой, более приоритетный (с меньшей метрикой) роут. |
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Дело в том что мне нужно добавить три маршрута до поднятия интерфейса: два на билайновские DNS-сервера и один на билайновский VPN-сервер. Без них ppp0 не поднимается. Я включил сервис dhcpcd, он получает IP, но vpn билайна не пингуется пока не добавлю вручную маршруты. Кстати, если вместо dhcpcd запускать NetworkManager.service - IP также назначается и, к тому же, сразу можно пинговать vpn билайна. Но если оставить включенным сервис нетворк менеджера, запустить xl2tpd и выполнить в консоли строчки: то через несколько секунд комп зависает наглухо, помогает только ребут с кнопки.Как нетворк менеджер узнает нужные маршруты и добавляет их? Далее по настройке: я так понял те строчки можно добавить уже в ip-up (вернее в /etc/ppp/ip-up.d/что-нибудь.sh) так как они должны выполняться уже после поднятия интерфейса. Но что делать с этими тремя маршрутами? Я пытался сделать юнит для системд чтобы они добавлялись при загрузке, но с системд не очень, поэтому не вышло. Может есть другой способ? Или подскажите пожалуйста с юнитом для системд
www.linux32.ru - новости и статьи о Linux
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
32reg, маршруты на интерфейс локалки надо создавать вместе с поднятием локалки. Соответственно, если за локалку отвечает dhcpcd, именно ему это и надо поручить. В принципе, для этого есть скрипты /etc/dhcpcd.enter-hook и /etc/dhcpcd.exit-hook , но насколько я понимаю, эти ваши роуты билайн должен раздавать сам по DHCP (иначе как их получают обладатели форточек?). Чтобы получать роуты вместе с адресом, включите в /etc/dhcpcd.conf Если у вас от этого пропадёт дефолтный роут в локалку (билайн обычно нарушает стандарты, и не включает его в список classless_static_routes), и этот роут вам нужен, впишите в /etc/dhcpcd.enter-hook команду на его создание:
|
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Natrio, спасибо большое, попробую, отпишусь
www.linux32.ru - новости и статьи о Linux
|
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Natrio, попробовал добавить опции не помогло, tp.internet.beeline.ru все равно не пингуется. Кстати classless_static_routes в опциях уже был. Чем отличается NetworkNanager, что при нем сразу идет пинг?В итоге запускаю так: написал юнит add-beeline-routes.service И еще юнит xl2tpd.service: После: Так все работает. Без правки судоерс и без запуска от пользователя, уже хорошо. Но, все-таки ощущение недоделанности осталось.Кстати, почему не отрабатывают строки: чтобы маршруты начинали добавляться только после поднятия сети? Пришлось добавить строку ExecStartPre=/usr/bin/sleep 10Как по вашему, оставить все так или есть более элегантное решение?
www.linux32.ru - новости и статьи о Linux
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
32regЭто я у вас должен спрашивать, чем отличается, потому что только вы на месте можете это выяснить, вместо того, чтобы просто пинговать домен tp.internet.beeline.ru, даже не зная его IP. Если посмотреть сюда: http://bryansk.beeline.ru/customers/help/home/domashniy-internet/nastroyki-lokalnoy-seti-dlya-opytnykh/ http://bryansk.beeline.ru/customers/help/home/domashniy-internet/nastroyki-marshrutizatora-routera/ можно заметить, что ни о каких роутах там не говорится – для подключения требуется только имя сервера и авторизация на нём, а значит остальные параметры должны получаться автоматически. В общем случае подключение к билайну происходит в два этапа. 1) Настройка интранета ("локальной сети" билайна). 2) Установка PPP (L2TP) соединения (туннеля) с билайновским сервером в интранете и подключение к интернету через него. Настройка интранета. DHCP-клиент поднимает Ethernet-интерфейс и запрашивает у билайновского DHCP-сервера свой IP, маску подсети, DNS, гейт (дефолтный роут) и дополнительные роуты. Сервер отвечает клиенту и выдаёт запрошенные параметры, а клиент применяет (или не применяет) эти параметры на своей стороне. В результате на этом этапе со стороны клиента настраиваются адреса DNS-серверов (сохраняются в /etc/resolv.conf), у которых можно запросить IP-адрес tp.internet.beeline.ru, и устанавливаются роуты в том числе на ту подсеть, в которой находится его IP-адрес. Руками запросить IP-адрес можно либо командой host домен (или host домен DNS-сервер) из пакета dnsutils, или встроенной командой getent ahosts домен Если вы успешно получили IP-адрес этого самого tp.internet.beeline.ru, дальше надо искать роуты для этого адреса, если нет – значит см. DNS в файле /etc/resolv.conf и роуты для них. Существует три разных опции протокола DHCP, через которые клиент запрашивает у сервера роуты: 3) Default Gateway (routers) – адрес(а) гейта, то есть дефолный роут 121) Classless Static Routes (classless-static-routes) – список ВСЕХ дополнительных роутов, включая дефолтный. Несовместима с опцией (3). При одновременном получении обеих опция (3) игнорится. 249) Microsoft Classless Static Routes (ms-classless-static-routes) – список дополнительных роутов, кроме дефолтного. Совместима с опцией (3). Придумана майкрософтом, чтобы обойти неудобный стандарт (121) не нарушая его. Билайн, выдавая клиенту эти три опции, как правило, нарушает стандарт – выдавая оба списка 121 и 249 без дефолтного роута, хотя по стандарту должен включать его в список 121, и выдаёт дефолтный роут только в опции 3 (routers). С другой стороны, клиент dhcpcd, имеющийся по-умолчанию в Арч, тоже нарушает стандарт, но в другом – он игнорит опцию 3 (routers) при использовании любого списка роутов – хоть 121, хоть 249. В результате при подключении к билайну dhcpcd либо не получает дополнительных роутов (без опций classless-static-routes и ms-classless-static-routes), либо не создаёт дефолтный роут (с ними). Чтобы обойти "баг Билайна-dhcpcd", требуется сделать две вещи: 1) Добавить в конфиг dhcpcd.conf все три опции, чтобы клиент их всех запросил у сервера. 2) Создать файл /etc/dhcpcd.enter-hook с командой на создание дефолтного роута:
Прослушать обмен между DHCP клиентом и сервером можно, запустив под рутом в отдельной консоли команду где eth0 заменить на имя вашего интерфейса "локалки". (если нужно, предварительно установив tcpdump).Узнать, что делает при подключении dhcpcd, можно, поискав в логах по его имени, или остановив его и запустив в консоли командой вида чтобы он не ушел в фон и выдал в консоль все подробности.Кстати, насколько я понимаю, ваш юнит для dhcpcd должен запускаться в виде dhcpcd@eth0.service , а не dhcpcd.service, как у вас. |
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Почему при нетворк менеджере vpn пингуется, а при dhcpcd нет я не знаю. Могу сказать только что никаких настроек ни в одном, ни в другом не делал, все дефолтное. IP билайновского VPN узнаю следующим образом: перезагружаюсь, пингую tp.internet.beeline.ru, пинг идет, заодно смотрю его ip-адрес.потом перезагружаюсь, пингую tp.internet.beeline.ru, пинг не идет.Теперь уже, зная его адрес, добавляю роуты. Попробую ваш способ с созданием файла /etc/dhcpcd.enter-hook. В первый раз я неправильно понял и только добавил те опции в /etc/dhcpcd.conf не создавая /etc/dhcpcd.enter-hook. Вопрос один по этому файлу, эту строку: нужно вставить без изменений и все? Отпишусь по результатам.По поводу запуска dhcpcd.service вместо dhcpcd@eth0.service, то в вики написано (если я правильно понял) что в первом случае dhcp запускается для всех доступных интерфейсов, во втором - для конкретно указанного. Я так понимаю что это по сути одно и то же. Но ради эксперимента попробую запускать dhcpcd@eth0.service
www.linux32.ru - новости и статьи о Linux
|