Используете 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 - увы, здесь новый сетевой интерфейс не появился.

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

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

1 ответ

Решение

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

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

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

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

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

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

Другие вопросы по тегам