Назад | Перейти на главную страницу

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

Мне просто нужно отправить / получить сообщение через unix-сокет с PPP. Но сначала я хочу запустить pppd с обычным последовательным портом, чтобы убедиться, что я знаю, как он работает. Как я вижу, если я привяжу pppd к последовательному порту, все пришедшие туда пакеты будут развернуты из PPP / IP / ... и перенаправлены на какой-либо порт с моим приложением. Насколько я понимаю, это можно было сделать только путем создания нового сетевого интерфейса с помощью pppd. Поэтому мне нужно дать IP-адрес pppd. После прочтения руководств и получить некоторые проблемы Я выяснил варианты, которые кажутся правильными, но я все еще не могу заставить их работать:

$ pppd local -detach 10.5.57.198: /dev/ttyS4
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS4
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup

Перед названием LCP: timeout sending Config-Requests оказывается у меня есть время, и я запустил в это время ifconfig - Увы, нового сетевого интерфейса здесь не появилось.

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

Итак, кто-нибудь знает, какие варианты мне не хватает?

ГЧП в целом и pppd в частности, в основном использовались для коммутируемых подключений, поэтому все настройки по умолчанию предполагают, что pppd процесс будет запущен как часть инициируемой вручную последовательности. Предполагается, что предыдущий шаг в последовательности устанавливает последовательное соединение (то есть модем указывает на завершение своего рукопожатия с удаленным модемом, говоря CONNECT)

Вы хотите изменить порядок вещей, начиная pppd сначала и заставляя его ждать появления физического соединения. В persist вариант делает это.

Документация для persist говорит

В maxfail опция по-прежнему влияет на постоянные соединения.

так что вам также может понадобиться maxfail 0 чтобы отменить это. Другие связанные параметры, которые я могу увидеть при беглом просмотре страницы руководства: demand, idle, и holdoff, все это поможет вам контролировать, как интерфейс ведет себя, когда партнер отсутствует.

И еще один полезный: connect опция, которая используется в случае коммутируемого доступа, чтобы указать программу, которая набирает номер модема, может быть вам полезна. Вы можете указать connect сценарий, который просто следит за состоянием последовательного порта и завершает работу при наличии соединения.