Инструменты пользователя

Инструменты сайта


igor:pppd_i_ego_primenenie_dlja_mobilizacii_interneta

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:pppd_i_ego_primenenie_dlja_mobilizacii_interneta [2017/04/18 14:19] – [Сначала — немного теории.] igorigor:pppd_i_ego_primenenie_dlja_mobilizacii_interneta [2021/12/12 23:02] (текущий) – [А если не село?] igor
Строка 1: Строка 1:
 +Все мои статьи: [[igor:glavnaja|Статьи Игоря Романова]]
 =====PPPD и его применение для "мобилизации" интернета в Linux===== =====PPPD и его применение для "мобилизации" интернета в Linux=====
 Для подключения к интернету вообще, и к мобильному в частности, в мире линукса предложено много способов. Все они в той или иной степени претендуют на звание штатных, но не все в действительности таковыми являются. \\ \\ Для подключения к интернету вообще, и к мобильному в частности, в мире линукса предложено много способов. Все они в той или иной степени претендуют на звание штатных, но не все в действительности таковыми являются. \\ \\
Строка 6: Строка 7:
 PPPD — это основа основ, «гранит из Кузнечного, на котором стоим» (почти цитата из рекламы того самого гранита). Все остальные программы для подключения к интернету либо пытаются действовать в обход PPPD, либо создают «надстройку» над ним, либо представляют собой просто конфигурашки, за которыми в конечном счете стоит PPPD. Первые два подхода чреваты, как минимум, нестабильной работой вплоть до полной невозможности подключить данный компьютер к данному провайдеру, а как максимум - «дырами» в безопасности системы. Ну а что касается третьего подхода, то он, как минимум, ничему не учит, а как максимум, - опять-таки не дает гарантии решения каждой конкретной задачи. Кому-то повезет, кому-то нет. \\ PPPD — это основа основ, «гранит из Кузнечного, на котором стоим» (почти цитата из рекламы того самого гранита). Все остальные программы для подключения к интернету либо пытаются действовать в обход PPPD, либо создают «надстройку» над ним, либо представляют собой просто конфигурашки, за которыми в конечном счете стоит PPPD. Первые два подхода чреваты, как минимум, нестабильной работой вплоть до полной невозможности подключить данный компьютер к данному провайдеру, а как максимум - «дырами» в безопасности системы. Ну а что касается третьего подхода, то он, как минимум, ничему не учит, а как максимум, - опять-таки не дает гарантии решения каждой конкретной задачи. Кому-то повезет, кому-то нет. \\
 А если не повезло, что остается? - Копать вглубь. До гранита. Это и будет «классический линуксоидный» подход: настройка непосредственно самого PPPD через его штатные файлы конфигурации. Эти файлы представляют собой тексты, так что все, что нам потребуется для их создания, - обычный текстовый редактор (который у вас, будем надеяться, есть), а никакого другого ПО устанавливать не потребуется. Единственный недостаток: копать придется действительно глубоко, но жалеть труда не следует, так как в результате получим не просто кое-как решенную задачу, а ПОНИМАНИЕ. \\ \\ А если не повезло, что остается? - Копать вглубь. До гранита. Это и будет «классический линуксоидный» подход: настройка непосредственно самого PPPD через его штатные файлы конфигурации. Эти файлы представляют собой тексты, так что все, что нам потребуется для их создания, - обычный текстовый редактор (который у вас, будем надеяться, есть), а никакого другого ПО устанавливать не потребуется. Единственный недостаток: копать придется действительно глубоко, но жалеть труда не следует, так как в результате получим не просто кое-как решенную задачу, а ПОНИМАНИЕ. \\ \\
-====О физических и логических устройствах.====+====О физических и логических устройствах====
 Однако создавать конфигурационный файл будем чуть позже, а сначала нам надо кое-что выяснить, а конкретно: с каким логическим устройством наш PPPD будет работать? \\ Однако создавать конфигурационный файл будем чуть позже, а сначала нам надо кое-что выяснить, а конкретно: с каким логическим устройством наш PPPD будет работать? \\
 И вот предвижу вопрос читателя: какие еще логические устройства, зачем? Только запутаешься! \\ И вот предвижу вопрос читателя: какие еще логические устройства, зачем? Только запутаешься! \\
Строка 12: Строка 13:
 В нашей системе каждая программа имеет четко определенный круг обязанностей. Всевозможных модемов в мире тысячи, и нет смысла учить PPPD работать с каждым из них. Поэтому с модемом работает драйвер - составная часть ядра ОС, который надстраивает над модемом __логическое устройство__, а PPPD, в свою очередь, над этим логическим устройством надстраивает свое - ppp0 (таких устройств может быть и несколько: ppp1 и т. д.). И, как принято в наших ОС, каждое логическое устройство представлено файлом в каталоге /dev/. \\ В нашей системе каждая программа имеет четко определенный круг обязанностей. Всевозможных модемов в мире тысячи, и нет смысла учить PPPD работать с каждым из них. Поэтому с модемом работает драйвер - составная часть ядра ОС, который надстраивает над модемом __логическое устройство__, а PPPD, в свою очередь, над этим логическим устройством надстраивает свое - ppp0 (таких устройств может быть и несколько: ppp1 и т. д.). И, как принято в наших ОС, каждое логическое устройство представлено файлом в каталоге /dev/. \\
 Логическое устройство, "изображающее" модем и служащее предметом работы пппдемона, скорее всего будет называться ttyUSB0 или ttyACM0, однако последняя цифра может варьироваться. \\ Логическое устройство, "изображающее" модем и служащее предметом работы пппдемона, скорее всего будет называться ttyUSB0 или ttyACM0, однако последняя цифра может варьироваться. \\
-Несколько слов об этих названиях. TTY - teletype - древнее устройство, которое ныне можно увидеть только в музее, в свое время служившее системной консолью первобытным компьютерщикам - создателям UNIXов и языка программирования C. С тех далеких времен этот термин сохранился в юниксоидных системах для обозначения любого устройства, обеспечивающего посимвольный ввод-вывод данных по некоторому проводу. Компьютер не знает, что за устройство находится на другом конце провода. Ему говорят: работай с этим устройством как с tty - он так и работает, даже если провода как такового уже нет... Так что в нашем нынешнем мире tty - это просто абстракция, за которой могут стоять самые различные приборы и аппараты. TtyUSB0 - очевидно, эмуляция tty посредством USB. ACM - Abstract Control Model - абстрактная модель управления... впрочем, не хочу залезать в дебри. Подробнее читайте здесь: \\+Несколько слов об этих названиях. TTY - teletype - телетайп, или буквопечатающий телеграфный аппарат, древнее устройство, которое ныне можно увидеть только в музее, в свое время служившее системной консолью первобытным компьютерщикам - создателям UNIXов и языка программирования C. С тех далеких времен этот термин сохранился в юниксоидных системах для обозначения любого устройства, обеспечивающего посимвольный ввод-вывод данных по некоторому проводу. Компьютер не знает, что за устройство находится на другом конце провода. Ему говорят: работай с этим устройством как с tty - он так и работает, даже если провода как такового уже нет... Так что в нашем нынешнем мире tty - это просто абстракция, за которой могут стоять самые различные приборы и аппараты. TtyUSB0 - очевидно, эмуляция tty посредством USB. ACM - Abstract Control Model - абстрактная модель управления... впрочем, не хочу залезать в дебри. Подробнее читайте здесь: \\
 http://adminbook.ru/index.php?men2=2-4/18/14 \\ http://adminbook.ru/index.php?men2=2-4/18/14 \\
 http://rulinux.net.ru/node/112 \\ http://rulinux.net.ru/node/112 \\
Строка 42: Строка 43:
 Когда я жил в Дебиане (версий 7..8) и работал со скайлинковским свистком и с простыми сотовыми телефонами фирм "Моторола" и "Нокиа", у меня таких ситуаций не случалось. Однако вы, вероятно, скажете, что это техника позавчерашнего века, и захотите использовать что-то более современное? Вероятно модем-свисток 3G/4G? А у меня свои тараканы: я с Дебиана пересаживаюсь на Генту. И вот тогда подобная проблема у нас с вами прогнозируется с определенной вероятностью. \\ Когда я жил в Дебиане (версий 7..8) и работал со скайлинковским свистком и с простыми сотовыми телефонами фирм "Моторола" и "Нокиа", у меня таких ситуаций не случалось. Однако вы, вероятно, скажете, что это техника позавчерашнего века, и захотите использовать что-то более современное? Вероятно модем-свисток 3G/4G? А у меня свои тараканы: я с Дебиана пересаживаюсь на Генту. И вот тогда подобная проблема у нас с вами прогнозируется с определенной вероятностью. \\
 Сначала про Генту и вообще про все линуксоидные системы, отличные от Дебиана. Начну с них потому, что здесь есть единственный вопрос, который, собственно, почти даже и не вопрос: есть ли у нас в ядре программная поддержка для USB-модемов? \\ Сначала про Генту и вообще про все линуксоидные системы, отличные от Дебиана. Начну с них потому, что здесь есть единственный вопрос, который, собственно, почти даже и не вопрос: есть ли у нас в ядре программная поддержка для USB-модемов? \\
-Мы должны понимать, что все линуксоидные системы имеют в своей основе практически один и тот же агрегат - ядро. Нам он поставляется из репозитория в виде набора "Сделай сам" и собирается на месте. Разработчик Дебиана в комплекте с деталями ядра поставляет нам "технологическую карту сборки", в которой поддержка мобильного интернета уже прописана, так что беспокоиться не о чем. А вот в других системах может быть по-разному. В Генте, например, разработчик принципиально ничего за нас не делает. Короче, если в ядре нет поддержки мобильного интернета, то ядро придется пересобрать. Ничего принципиально страшного в этом нет, просто некоторое время потратить. \\ +Мы должны понимать, что все линуксоидные системы имеют в своей основе практически один и тот же агрегат - ядро. В некоторых системах типа генты он поставляется нам из репозитория в виде набора "Сделай сам" и собирается на месте, разработчик принципиально ничего за нас не делает. Короче, если в ядре нет поддержки мобильного интернета, то ядро придется пересобрать. Ничего принципиально страшного в этом нет, просто некоторое время потратить. Разработчик Дебиана поставляет нам несколько готовых ядер и к ним кучу модулей.   Если устанавливать систему в режиме "Expert install", то на определенном этапе установки нам предложат выбор: установить драйверы для этого компьютера или установить все драйверы. Выбираем последнее - и получаем ядро с поддержкой PPP. Очевидно, под драйверами подразумеваются модули ядра. \\ 
-Сборка ядра с использованием команды make menuconfig - операция, имеющая место во всех линуксоидных системах. Как она осуществляется, я здесь подробно останавливаться не буду. (можно посмотреть, например, вот здесь: [[igor:gentoo_installation|Установка Gentoo: глазами новичка]]). На что следует обратить первостепенное внимание? \\+Сборка ядра с использованием команды make menuconfig - операция, имеющая место во всех линуксоидных системах. Как она осуществляется, я здесь подробно останавливаться не буду.  (можно посмотреть, например, вот здесь: [[igor:gentoo_installation|Установка Gentoo: глазами новичка]]). На что следует обратить первостепенное внимание? \\
 В меню верхнего уровня находим раздел Device drivers и входим во вложенное меню (меню следующего уровня). Там ищем пункты: \\ В меню верхнего уровня находим раздел Device drivers и входим во вложенное меню (меню следующего уровня). Там ищем пункты: \\
 //Network Device support --> PPP support// - поддержка собственно протокола ppp, безотносительно к модемам; \\ //Network Device support --> PPP support// - поддержка собственно протокола ppp, безотносительно к модемам; \\
Строка 57: Строка 58:
 Готовые списки, однако, будут лет через несколько. А по состоянию на сегодня черный список возглавляет Huawei 827F - это основная модель четвертого поколения, которую нам предлагает МТС. В то же время более старые МТСовские модемы третьего поколения: ZTE MF627 и Huawei E171 - в красном списке. \\ \\ Готовые списки, однако, будут лет через несколько. А по состоянию на сегодня черный список возглавляет Huawei 827F - это основная модель четвертого поколения, которую нам предлагает МТС. В то же время более старые МТСовские модемы третьего поколения: ZTE MF627 и Huawei E171 - в красном списке. \\ \\
  
-====Создание конфигурационного файла.====+====Создание конфигурационного файла====
 Итак, мы определились с логическим устройством, с которым пппдемон будет работать. Приступаем ко второму этапу работы — к созданию конфигурационного файла. \\ Итак, мы определились с логическим устройством, с которым пппдемон будет работать. Приступаем ко второму этапу работы — к созданию конфигурационного файла. \\
 Поскольку PPPD задумывался как гибкий и мощный инструмент, имеется возможность всю его конфигурационную информацию разделить на несколько файлов, размещаемых в отведенных для них каталогах. В интернет-блогах часто встречается рекомендация использовать файлы /etc/ppp/peers/... и /etc/chatscripts/... Если нам требуется подключиться к одному-единственному провайдеру и мы абсолютно травоядно настроены работать с ним длительное время, то считаю более целесообразным другой путеь: использовать единственный файл /etc/ppp/options. Он основной, но надо иметь в виду, что заданные в нем параметры могут быть переопределены параметрами из других файлов, если таковые существуют и будут упомянуты при запуске PPPD. Возможно, ваша операционная система уже содержит этот файл «в коробке», а если нет, то можете попытаться найти его в интернете... Но в том и в другом случае вы получите полуфабрикат, с которым придется основательно поработать. В линуксоидном мире есть выражение «работать напильником», но это не наша сегодняшняя ситуация. Работать напильником — значит подгонять некоторое типовое решение под свои индивидуальные потребности и вкусы. А сегодня я только еще превращаю полуфабрикат в типовое решение, и для этого потребуется не напильник, а как минимум ацетиленовая горелка и походная кузница. Впрочем, в их роли все равно снимается наш обычный, любимый и повседневный текстовый редактор. Он у каждого свой, и я в своих статьях не касаюсь темы, как редактор вызвать и как в нем выполняется каждая операция. С помощью редактора я перекроил весь файл, сгруппировав описанные в нем параметры по темам. На восприятие их пппдемоном это не влияет, а на понимаемость для людей — очень даже. Получилось так, что первые три пункта содержат параметры, диктуемые аппаратурой и провайдером, а пункты начиная с 4 - параметры, которые мы выбираем сами, чтобы пппднмон выполнял ту работу, которая нужна нам. \\ Поскольку PPPD задумывался как гибкий и мощный инструмент, имеется возможность всю его конфигурационную информацию разделить на несколько файлов, размещаемых в отведенных для них каталогах. В интернет-блогах часто встречается рекомендация использовать файлы /etc/ppp/peers/... и /etc/chatscripts/... Если нам требуется подключиться к одному-единственному провайдеру и мы абсолютно травоядно настроены работать с ним длительное время, то считаю более целесообразным другой путеь: использовать единственный файл /etc/ppp/options. Он основной, но надо иметь в виду, что заданные в нем параметры могут быть переопределены параметрами из других файлов, если таковые существуют и будут упомянуты при запуске PPPD. Возможно, ваша операционная система уже содержит этот файл «в коробке», а если нет, то можете попытаться найти его в интернете... Но в том и в другом случае вы получите полуфабрикат, с которым придется основательно поработать. В линуксоидном мире есть выражение «работать напильником», но это не наша сегодняшняя ситуация. Работать напильником — значит подгонять некоторое типовое решение под свои индивидуальные потребности и вкусы. А сегодня я только еще превращаю полуфабрикат в типовое решение, и для этого потребуется не напильник, а как минимум ацетиленовая горелка и походная кузница. Впрочем, в их роли все равно снимается наш обычный, любимый и повседневный текстовый редактор. Он у каждого свой, и я в своих статьях не касаюсь темы, как редактор вызвать и как в нем выполняется каждая операция. С помощью редактора я перекроил весь файл, сгруппировав описанные в нем параметры по темам. На восприятие их пппдемоном это не влияет, а на понимаемость для людей — очень даже. Получилось так, что первые три пункта содержат параметры, диктуемые аппаратурой и провайдером, а пункты начиная с 4 - параметры, которые мы выбираем сами, чтобы пппднмон выполнял ту работу, которая нужна нам. \\
Строка 201: Строка 202:
 Ну и по пункту 3 - эту тему я хочу выделить в отдельную главу. \\ Ну и по пункту 3 - эту тему я хочу выделить в отдельную главу. \\
 mtu и mru: при плохой связи можно уменьшить до 800, источник: http://wiki.lblss.ru/%D0%9A%D0%BE%D0%BD%D0%BD%D0%B5%D0%BA%D1%82_%D0%BF%D1%80%D0%B8_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8_pppd\\ \\ mtu и mru: при плохой связи можно уменьшить до 800, источник: http://wiki.lblss.ru/%D0%9A%D0%BE%D0%BD%D0%BD%D0%B5%D0%BA%D1%82_%D0%BF%D1%80%D0%B8_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8_pppd\\ \\
-====Чат-программа и чат-скрипт.====+====Чат-программа и чат-скрипт====
 Это, наверно, самый интересный момент, тем более что в указанных источниках об этом ничего не говорится. \\ Это, наверно, самый интересный момент, тем более что в указанных источниках об этом ничего не говорится. \\
 Начнем с элементарного: чат (англ. chat — разговор) — это последовательность сигналов, которыми компьютер и модем должны обменяться, чтобы модем вообще мог передавать и принимать какие-либо данные. Осуществить этот «обмен любезностями» можно разными способами. Ну для начала: мы ведь помним, что каждое логическое устройство представляет собой файл, в который мы можем что-то писать и что-то из него читать. Примерно вот так:  \\ \\ Начнем с элементарного: чат (англ. chat — разговор) — это последовательность сигналов, которыми компьютер и модем должны обменяться, чтобы модем вообще мог передавать и принимать какие-либо данные. Осуществить этот «обмен любезностями» можно разными способами. Ну для начала: мы ведь помним, что каждое логическое устройство представляет собой файл, в который мы можем что-то писать и что-то из него читать. Примерно вот так:  \\ \\
Строка 219: Строка 220:
 Те команды, что приведены здесь для модема-свистка AnyData, подключенного к Скайлинку, — абсолютно рабочие, так что мудрить над этим чат-скриптом едва ли придется. Над чем придется помудрить — так это над чат-скриптом для GSM/3G/4G. Приведенный выше упрощенный вариант мною проверен на телефонах фирмы Nokia, подключенных к провайдеру TELE2. Для других телефонов и провайдеров могут потребоваться различные команды, в т. ч. те, которые я поместил в свой файл "про запас", и не только... \\ Те команды, что приведены здесь для модема-свистка AnyData, подключенного к Скайлинку, — абсолютно рабочие, так что мудрить над этим чат-скриптом едва ли придется. Над чем придется помудрить — так это над чат-скриптом для GSM/3G/4G. Приведенный выше упрощенный вариант мною проверен на телефонах фирмы Nokia, подключенных к провайдеру TELE2. Для других телефонов и провайдеров могут потребоваться различные команды, в т. ч. те, которые я поместил в свой файл "про запас", и не только... \\
 Сейчас я хочу остановиться на информации, которая имеется в интернет-блогах, но не получила подтверждения в моей практике. Первое: кроме опции connect, якобы еще нужна опция disconnect с соответствующим чат-скриптом. Я сделал все, как там было написано, результат: выход в интернет удавался, но по завершении работы возникала ошибка. И хотя эта ошибка по существу уже ничего не меняет, зачем нам лишняя нервотрепка? В общем, я удалил эти опции и с тех пор спокойно обхожусь без них. Второе: совет прописать имя пользователя и пароль в файлы /etc/ppp/pap-secrets и/или /etc/ppp/chap-secrets. У меня эти файлы пусты — выходит, что и без них можно обойтись. И третье - касательно команды AT+CGDCONT... Сколько раз я ее видел в линуксоидных интернет-блогах, в мануалах по Windows, в инструкциях к сотовым телефонам и памятках абонентам сотовых сетей, столько раз по жизни я без нее обходился. Значит ли это, что она совсем не нужна? - Боюсь что не значит. \\ \\ Сейчас я хочу остановиться на информации, которая имеется в интернет-блогах, но не получила подтверждения в моей практике. Первое: кроме опции connect, якобы еще нужна опция disconnect с соответствующим чат-скриптом. Я сделал все, как там было написано, результат: выход в интернет удавался, но по завершении работы возникала ошибка. И хотя эта ошибка по существу уже ничего не меняет, зачем нам лишняя нервотрепка? В общем, я удалил эти опции и с тех пор спокойно обхожусь без них. Второе: совет прописать имя пользователя и пароль в файлы /etc/ppp/pap-secrets и/или /etc/ppp/chap-secrets. У меня эти файлы пусты — выходит, что и без них можно обойтись. И третье - касательно команды AT+CGDCONT... Сколько раз я ее видел в линуксоидных интернет-блогах, в мануалах по Windows, в инструкциях к сотовым телефонам и памятках абонентам сотовых сетей, столько раз по жизни я без нее обходился. Значит ли это, что она совсем не нужна? - Боюсь что не значит. \\ \\
-====Запуск.====+====Запуск====
 Итак, аппаратура подключена, конфиги составлены... Проверено — мин нет? Тогда с Богом: \\ \\ Итак, аппаратура подключена, конфиги составлены... Проверено — мин нет? Тогда с Богом: \\ \\
 ''igor@ovragi:~$ __pppd__ \\ ''igor@ovragi:~$ __pppd__ \\
igor/pppd_i_ego_primenenie_dlja_mobilizacii_interneta.1492514346.txt.bz2 · Последнее изменение: 2017/04/18 14:19 — igor