lcp terminated by peer

Reported by: ducktide@… Owned by: developers
Priority: normal Milestone: Barrier Breaker 14.07
Component: base system Version: Trunk
Keywords: Cc:

Description

My connection keeps restarting when I try to connect a new device to the internet. It’s completely random, sometimes it works fine. But most of the time when I connect a device that has been disconnected for some time, the connection keeps reconnecting. Sometimes it helps to restart all devices at once, sometimes it stops only after a while without any connections. It works just fine if there is only one connection active (I have measured over 20h stable connection on my notebook downloading stuff, then I connect another notebook, the connection falls and it keeps reconnecting until I restart/disconnect both notebooks, not only the one that caused it but both, and it works the other way around as well).

I have axesstel mv110nh modem connected to TP-Link TL-WR842N/ND v2 with OpenWrt Barrier Breaker r39425 / LuCI Trunk (svn-r9951) (I found it here: ​ http://www.ufon.cz/cs/osobni/pro-zakazniky/technicka-podpora/32) and a couple of notebooks with win7/win8.

My first guess was that it disconnects because there is to much brandw >​ http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/base/, but my kernel version did not match. I am well aware that it is outdated. The only possibility for me is CDMA connection, because there is no other signal here and I could not find any other already made firmware and I am sure I would not be able to install it by myself, because all I could find are tutorials for 3g and others, but no CDMA/EV-DO. I installed the qos script same way I did with ddns by using opkg with -force—depends, but it did not work and I get some errors in system log now, but please note that the problem is still the same as before and it is not caused by this.

Can you tell me what exactly «LCP terminated by peer» means?

I am also confused about my firewall settings, it has to be this way, it doesn’t work when I try to change any of these settings and I’m not sure why:
root@OpenWrt:/etc/config# cat firewall

option input ‘ACCEPT’
option output ‘ACCEPT’
option forward ‘REJECT’
option syn_flood ‘1’

option name ‘lan’
option input ‘ACCEPT’
option output ‘ACCEPT’
option forward ‘ACCEPT’
option network ‘lan’

option name ‘wan’
option input ‘REJECT’
option output ‘ACCEPT’
option forward ‘REJECT’
option mtu_fix ‘1’
option network ‘wan wan6 3gwan o2’
option masq ‘1’

(there are some more rules after, but I don’t think they are necessary)

Никак не могу победить причину разрыва соединения в ubuntu при подключении через 3G/LTE модем Huawei E398 (подобное проявлялось и с другими модемами).
В частности рвётся соединение по причине «LCP terminated by peer».

Соединение устанавливаю с помощью wvdial и его конфиг:

Модем автоматически переводится udev-ом с помощью usb_switchmode в нужный режим. Но соединение всё равно рвётся.
Где-то читал, что есть различие между официальным софтом и установлением соединения с помощью ppp, но что-то не могу найти в чём именно отличие и что делать.

  • Вопрос задан более трёх лет назад
  • 5664 просмотра

Итого, проблема решена изменением настроек на стороне МТС. Когда сторона МТС видела «неправильные пакеты» в размере 10 штук — соединение закрывалось со стороны оператора. Теперь этого происходить не будет.
То есть единственное решение со стороны абонента, это «-A FORWARD -m state —state INVALID -j DROP». Это сильно снижало вероятность закрытия сессии, но не исключало её полностью. Изменение же параметров, указанных выше мало влияло на проблему, т.к. она была совсем с другой стороны.

Что касается NDIS я немного подзабил, т.к. в целом интерфейс достаточно хороший — не нужно костылей в виде ppp, но по крайней мере в консоли достаточно сложно держать ndis соединение — модем может зависать, надо вручную контролировать состояние соединения, вручную делать обвязку получения ip адреса, т.к. после падения соединения wwan интерфейс не переходит в down и надо как-то понять, что нужно новый ip получать.

(Вынесу из комментов, потому что это тоже возможный ответ на вопрос в определённой ситуации.)

Похожим образом могут проявляться «особенности» модема «Билайн».

(Вставил сим-карту МТС и я-то думал: раз интернет совершенно нормальный 2.3 минуты, то нет у модема какого-то beeline lock-in, ну и МТСу, конечно, всё равно, какой модем, потому что мобильных устройств-то куча разных).

Билайновское ПО каждые две минуты посылает модему AT-команду,если модем её не получил происходит дисконнект.Об этом на форуме писалось не однократно.

Т.е. в принципе не важно, какую симкарту вы в такой модем вставите, но если используете из Ubuntu или другой системы без билайновского ПО, получается, не будет полноценно работать. Надо какие-то специальные at-команды ему посылать или ещё как-то решать проблему (поменять прошивку).

Ну, гентушники — они вроде не так подвежены ФГМ, как бубунтушники — читай ru.gentoo-wiki.com/wiki/MF626
Там есть еще круче, про вычисляемый код.

В новой версии программы команды чуть другие и простым AT+ZOPERTE=»beeline» не обойтись.
Code:

OUT: AT+CPBS=»SM»

OUT: AT+CPMS=»SM»,»SM»,»»

OUT: AT+ZOPRT=6

^^^^^ остановка цикла
OUT: AT+ZOPRT=5

^^^^^ запуск нового цикла
OUT: AT+ZSTART

^^^^^ судя по всему уже не обязателен
IN: +ZOPERTER: 0,XXXXXXXXXXXXXXXX

^^^^^ запрос от модема. на этот запрос и нужно отвечать
OUT: AT+ZOPERTE=1,YYYYYYYY

^^^^^ а это наш ответ
IN: +ZOPERTE: 1,1
^^^^^ а это модем сказал что мы угадали
(или 1,0 если не угадали. в этом случае модем краснеет
и перестает работать до следующего перезапуска цикла)
IN: +ZOPERTER: 1,XXXXXXXXXXXXXXXX

^^^^^ через

2-3 минуты модем снова задает вопрос

Если правильно и быстро (на это есть около 20 секунд) отвечать на все +ZOPERTER: то модем исправно работает, если не отвечать вообще, то модем работает около 3х минут, задает второй вопрос(первый он задает сразу при запуске цикла), ждет 20 секунд ответа, а потом краснеет, рвет соединение и все.

А вот теперь самое главное: алгоритм по которому вычисляется это самое YYYYYYYY. Алгоритм есть. Неделя истязаний дизассемблером нового exe’шника от Beeline принесла свои плоды. Код пока очень сырой, т.к. является прямым преобразованием из ASM в C++ (чуть более 1000 строк) 🙂 так что как доведу до ума, куда-нить выложу. Пока модем пашет уже около часа и все ОК. Если есть пожелания пишите на alexunnamed.tomsk.ru.

Не знаю пока, есть ли этот код.

Неделя истязаний дизассемблером нового exe’шника от Beeline принесла свои плоды. Код пока очень сырой, т.к. является прямым преобразованием из ASM в C++ (чуть более 1000 строк) 🙂 так что как доведу до ума, куда-нить выложу. Пока модем пашет уже около часа и все ОК. Если есть пожелания пишите на alexunnamed.tomsk.ru. Утилита для работы под Linux выложена здесь www.altcomtsk.info/index.php?option=com_content&vi.

Эту программу с секретом на просторах интернета удалось скачать только по ссылке с yanex.org/beeline-zte-mf170-v-linux (в остальных местах протухло). У людей оно вроде как даже работало (запускаем одновременно mf626-b09 и звонилку/pppd; например, в моём ALT; вообще, по запросу «mf626-b09» в google много примеров её использования).

Могу подтвердить: эта программа общается с модемом и не даёт ему отвалиться через 2 минуты (видно по зелёному индикатору, который раньше становился красным), т.е. секрет разгадан верно.

Но в моей системе pppd (под управлением звонилки) не может работать с устройством /dev/ttyUSB32 одновременно с этой программой (возможно, в более старых linux это было возможно и у людей работало): Resource temporarily unavailable.

К сожалению, как верно возмутился zerg, программа распространяется без исходников, поэтому тяжело объединить разгаданный секрет со звонилкой так, чтобы они друг другу не мешали (хочется, скажем, чтобы общение звонилки с модемом шло через mf626-b09).

У желающих использовать этот модем (или подобный) в современном linux (предполагаю, что раньше как-то двум программам удавалось одновременно получать доступ к устройству, а сейчас нет) остаётся ещё способ поменять прошивку. Я же пока прекращу терять время на возню с ним.

О! Это NetworkManager оказался капризным (хотя я вроде видел, что люди писали, что можно его использовть). Я вручную запустил pppd (подсмотрел в /proc/NNNN/cmdline , как это делал NetworkManager):

/usr/sbin/pppd nodetach lock nodefaultroute ipv6 , user mts ttyUSB34 noipdefault noauth usepeerdns lcp-echo-failure 0 lcp-echo-interval 0 ipparam /org/freedesktop/NetworkManager/PPP/5 plugin /usr/lib64/pppd/2.4.5/nm-pppd-plugin.so

и пришлось ещё сделать (видимо, NetworkManager сам добавляет маршрут, а я не сообразил сразу, что в команде pppd этого нет):

ip route add to default via 10.64.64.64 dev ppp0

I’m trying to setup a pppoe server/concentrator in order to test my pppoe clients.

I Followed the guide here https://poundcomment.wordpress.com/2011/03/30/pppoe-server-on-ubuntu/ and everything looked fine at first glance.

But when I try to connect from an Ubuntu machine being setup with sudo ppoeconf I get with plog -n 30 command this lines:

It seems that the client sees the server up and the CHAP authentication goes fine, while the connections hangs on the LCP part.

Why this? And how can I fix it ?

  • The server machine has 2 interfaces named ens33 (that act as wan) and ens34 (that act as lan)
  • The client machine has ens33 that is used to connect to the ens34 on server machine

The scripts post-up and post-down are the one listed in the guide, but mostly the server is loaded with the line:

Full process I used from beginning:

1) installed debian9 base on the machine that will become the pppoe server/concentrator

2) installed build-essential , ppp , downloaded and installed roaring penguin pppoe

3) Edited some config files:

(because i don’t care about password for now, it’s a test machine)

For what concern the client I used an ubuntu 14.04 vm fresh installed and configured via terminal with sudo pppoeconf

the config seems to work however the error is the one listed

on client the configs are:

Regarding LCP reading around it seems that it does the following.

  • checks the identity of the linked device and either accepts or rejects the peer device
  • determines the acceptable packet size for transmission
  • searches for errors in configuration
  • can terminate the link if requirements exceed the parameters

So for me is difficult to understand what could be the problem.

Оцените статью
SoftLast
Добавить комментарий