Используете 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
скрипт, который просто наблюдает за состоянием последовательного порта и завершает работу при наличии соединения.