Перейти к содержимому
Калькуляторы

error: libnetlink: RTNETLINK answers: Cannot allocate memory

 

Это сообщение ядра линукса. Надо разбираться почему оно не может выделить память

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

error: libnetlink: RTNETLINK answers: Cannot allocate memory

 

Это сообщение ядра линукса. Надо разбираться почему оно не может выделить память

 

Вспомнил, сталкивался с чем-то похожим. Решил путём увеличения vmalloc при загрузке ядра(нужно передать ядру параметр типа vmalloc=512M - через grub/lilo/uboot/ваш_загрузчик)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, в чём может быть проблема? Некоторые сайты не открываются периодически (pikabu.ru aliexpress.com rada.gov.ua), при этом остальные более-менее сносно работают. Сервер L2TP, логи и конфиг внизу.

Лог с ошибкой incorrect avp received

[2013-07-11 11:03:30]:  warn: l2tp: incorrect avp received (type=6, M=1, must be 0)
[2013-07-11 11:03:30]:  warn: l2tp: incorrect avp received (type=8, M=1, must be 0)
[2013-07-11 11:03:30]:  info: ppp7: connect: ppp7 <--> l2tp(172.16.227.164)
[2013-07-11 11:03:33]:  info: ppp7: nekhai: authentication succeeded
[2013-07-11 11:41:01]:  info: ppp5: disconnected
[2013-07-11 11:51:21]:  info: ppp5: connect: ppp5 <--> pptp(192.168.61.67)
[2013-07-11 11:51:24]:  info: ppp5: zubkov: authentication succeeded
[2013-07-11 11:51:24]:  warn: ppp5: IPV6CP: discarding packet
[2013-07-11 12:00:58]:  info: ppp6: disconnected
[2013-07-11 12:03:37]:  info: ppp6: connect: ppp6 <--> l2tp(192.168.134.160)
[2013-07-11 12:03:40]:  info: ppp6: meshkova: authentication succeeded
[2013-07-11 12:15:10]:  info: ppp3: disconnected
[2013-07-11 12:24:12]:  info: ppp6: disconnected
[2013-07-11 12:27:06]:  info: ppp3: connect: ppp3 <--> l2tp(192.168.134.160)
[2013-07-11 12:27:09]:  info: ppp3: meshkova: authentication succeeded
[2013-07-11 12:28:16]: error: ppp5: pptp: read: Connection timed out
[2013-07-11 12:28:16]:  info: ppp5: disconnected
[2013-07-11 12:28:41]:  info: ppp3: disconnected
[2013-07-11 12:38:07]:  info: ppp3: connect: ppp3 <--> l2tp(192.168.134.160)
[2013-07-11 12:38:10]:  info: ppp3: meshkova: authentication succeeded
[2013-07-11 12:39:41]:  info: ppp3: disconnected
[2013-07-11 12:47:48]:  info: ppp3: connect: ppp3 <--> pptp(192.168.134.160)
[2013-07-11 12:47:51]:  info: ppp3: meshkova: authentication succeeded
[2013-07-11 12:50:33]:  warn: ppp3: lcp: no echo reply
[2013-07-11 15:30:05]:  warn: l2tp: incorrect avp received (type=6, M=1, must be 0)
[2013-07-11 15:30:05]:  warn: l2tp: incorrect avp received (type=8, M=1, must be 0)
[2013-07-11 15:30:05]:  info: ppp0: connect: ppp0 <--> l2tp(172.16.226.109)
[2013-07-11 15:30:07]:  info: ppp1: connect: ppp1 <--> pptp(192.168.70.28)
[2013-07-11 15:30:08]:  info: ppp0: nekhai: authentication succeeded
[2013-07-11 15:30:08]:  info: ppp2: connect: ppp2 <--> pptp(192.168.137.56)
[2013-07-11 15:30:08]:  warn: l2tp: incorrect tid 0 in tunnel 1
[2013-07-11 15:30:10]:  info: ppp3: connect: ppp3 <--> l2tp(192.168.167.63)
[2013-07-11 15:30:10]:  info: ppp1: titov: authentication succeeded
[2013-07-11 15:30:11]:  info: ppp2: sidorov: authentication succeeded
[2013-07-11 15:30:13]:  info: ppp3: silkina: authentication succeeded
[2013-07-11 15:33:04]:  info: ppp4: connect: ppp4 <--> l2tp(192.168.134.160)
[2013-07-11 15:33:07]:  info: ppp4: meshkova: authentication succeeded
[2013-07-11 15:40:08]:  info: ppp5: connect: ppp5 <--> l2tp(172.16.227.164)
[2013-07-11 15:40:11]:  info: ppp5: 1: authentication succeeded
[2013-07-11 15:40:11]:  warn: ppp5: IPV6CP: discarding packet
[2013-07-11 15:45:38]:  info: ppp4: disconnected
[2013-07-11 15:45:45]:  warn: l2tp: incorrect avp received (type=6, M=1, must be 0)
[2013-07-11 15:45:45]:  warn: l2tp: incorrect avp received (type=8, M=1, must be 0)
[2013-07-11 15:45:45]:  info: ppp4: connect: ppp4 <--> l2tp(172.16.227.164)
[2013-07-11 15:45:48]:  info: ppp4: 1: authentication succeeded
[2013-07-11 15:55:58]:  info: ppp6: connect: ppp6 <--> l2tp(192.168.134.160)
[2013-07-11 15:56:58]:  info: ppp6: disconnected
[2013-07-11 15:58:50]:  warn: l2tp: incorrect tid 0 in tunnel 5
[2013-07-11 15:58:52]:  warn: l2tp: incorrect tid 0 in tunnel 5
[2013-07-11 15:58:54]:  info: ppp6: connect: ppp6 <--> l2tp(192.168.134.160)
[2013-07-11 15:58:57]:  info: ppp6: meshkova: authentication succeeded
[2013-07-11 16:02:28]:  info: ppp6: disconnected
[2013-07-11 16:14:30]:  info: ppp6: connect: ppp6 <--> l2tp(192.168.134.160)

 

 

Конфиг

[modules]
#path=/usr/local/lib/accel-ppp
log_file
#log_syslog
#log_tcp
#log_pgsql

pptp
l2tp
#pppoe

auth_mschap_v2
auth_mschap_v1
auth_chap_md5
auth_pap

#radius
ippool
sigchld
pppd_compat

shaper
#shaper_tbf (obsolete)
chap-secrets
#net-snmp
#logwtmp
#connlimit

#ipv6_nd
#ipv6_dhcp
#ipv6pool

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1000
mtu=1400
mru=1400
#ccp=0
#sid-case=upper
#check-ip=0
#single-session=replace
mppe=deny
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1
lcp-echo-interval=20
#lcp-echo-failure=3
lcp-echo-timeout=120
#unit-cache=1000

[auth]
#any-login=0
#noauth=0

[pptp]
echo-interval=30
#mppe=allow
#ip-pool=pool1
verbose=1

#[pppoe]
#interface=eth0
#interface=eth1,padi-limit=1000
#ac-name=xxx
#service-name=yyy
#pado-delay=0
#pado-delay=0,100:100,200:200,-1:500
#ifname-in-sid=called-sid
#tr101=1
#padi-limit=0
#mppe=allow
#ip-pool=pool2
#verbose=1

[l2tp]
dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
hello-interval=60
timeout=60
rtimeout=5
retransmit=5
#host-name=accel-ppp
#dir300_quirk=0
#secret=
#mppe=allow
#ip-pool=pool3
verbose=1
avp_permissive=1

[dns]
dns1=109.86.2.2
dns2=109.86.2.21

[wins]
#wins1=172.16.0.1
#wins2=172.16.1.1

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
gw-ip-address=10.10.10.1
auth-server=127.0.0.1:1812,testing123 (obsolete)
acct-server=127.0.0.1:1813,testing123 (obsolete)
server=127.0.0.1,testing123 (obsolete)
server=127.0.0.1,testing123,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
dae-server=127.0.0.1:3799,testing123
verbose=1
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-time=0

[client-ip-range]
192.168.0.0/16
172.16.0.0/16

[ip-pool]
gw-ip-address=10.10.10.1
#vendor=Cisco
#attr=Cisco-AVPair
#attr=Framed-Pool
10.10.10.2-254
#192.168.1.1-255,pool1
#192.168.2.1-255,pool2
#192.168.3.1-255,pool3
#192.168.4.0/24

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
#log-debug=/dev/stdout
#syslog=accel-pppd,daemon
#log-tcp=127.0.0.1:3000
copy=1
#color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=3

[log-pgsql]
conninfo=user=log
log-table=log

[pppd-compat]
#ip-pre-up=/etc/ppp/ip-pre-up
#ip-up=/etc/ppp/ip-up
#ip-down=/etc/ppp/ip-down
#ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1

[chap-secrets]
#gw-ip-address=192.168.100.1
chap-secrets=/etc/ppp/chap-secrets
#encrypted=0
#username-hash=md5

[shaper]
#attr=Filter-Id
attr-up=230
attr-down=231
down-burst-factor=0.1
up-burst-factor=1.0
##latency=200
#mpu=0
#r2q=10
#quantum=1500
#cburst=1534
#ifb=ifb0
up-limiter=police
up-limiter=htb
down-limiter=police
down-limiter=htb
#leaf-qdisc=sfq perturb 10
#verbose=1

#tbf is obsolete, use shaper module
#[tbf]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50

[cli]
telnet=127.0.0.1:2000
#tcp=127.0.0.1:2001
#password=123

[snmp]
master=0
agent-name=accel-ppp

[connlimit]
limit=10/min
burst=3
timeout=60

#[ipv6-pool]
#fc00:0:1::/48,64
#delegate=fc00:1::/36,48

#[ipv6-dns]
#fc00:1::1
#fc00:1::2
#fc00:1::3
#dnssl=suffix1.local.net
#dnssl=suffix2.local.net.

#[ipv6-dhcp]
#verbose=1
#pref-lifetime=604800
#valid-lifetime=2592000
#route-via-gw=1

 

 

Заранее большое спасибо за ответы.

P.S. Провайдер ничего не химичит/не режет.

Изменено пользователем serulya

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это сообщение ядра линукса. Надо разбираться почему оно не может выделить память

 

Вспомнил, сталкивался с чем-то похожим. Решил путём увеличения vmalloc при загрузке ядра(нужно передать ядру параметр типа vmalloc=512M - через grub/lilo/uboot/ваш_загрузчик)

Спасибо, помогло, но не сильно. С 512М система просто не грузится, с 256М количество виртуальных интерфейсов повысилось до 1800. Похоже, придется ставить 64 разрядную операционку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для начала попробуйте откатиться на старый конфиг железа. Дабы исключить проблемы с железом или несовместимостью (типа проц более другого степпинга или на другом ядре не совсем корректно инициализируется зашитым в мать биосом).

И да логи перед висом в студию какбы.

В логах абсолютно нормальная картина, ничего неожиданного, просто обрывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, помогло, но не сильно. С 512М система просто не грузится, с 256М количество виртуальных интерфейсов повысилось до 1800. Похоже, придется ставить 64 разрядную операционку.

 

до вроде можно было больше чем 256М сделать на x86(32), не помню от чего оно зависит

 

для тестирования с большим кол-вом интерфейсов лучше использовать ядра посвежее, чем во многих популярных дистрибутивах, обсуждение пробегало на форуме (http://forum.nag.ru/forum/index.php?showtopic=76343 )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[2013-03-26 15:10:37]: info: ppp0: connect: ppp0 <--> pptp(10.0.20.5)

[2013-03-26 15:10:40]: error: libnetlink: RTNETLINK answers: No such device

[2013-03-26 15:10:40]: warn: ppp0: failed to get interface statistics

[2013-03-26 15:10:41]: info: ppp0: disconnected

выдает при значении мин мту 1490

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пптп? с мту 1490? и чо, оно должно работать по эзернету с мту 1500, при длинне заголовков-то в 26 байт? :) или у вас там мту сетевух таки не 1500, а поболее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1340 у меня mtu... А вообще - потюнил ядро, поотключал энергосбережение - вон, стоит 4-ре сервера, до 3к коннектов не напрягаясь ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Итак, попинал немного IPoE в связке с перепиленным в черновом варианте абиллсом (может, кому-то тоже помогут наблюдения).

Результат: при выдаче биллингом access-accept, пустого, аксель вполне подхватывает локальный пул. Как вариант для редиректа должников/неведомых/прочих без особой перепилки - пойдет. Хотя можно и отдельный пул наваять в биллинге (так, пожалуй, будет правильнее - благое дело несложно).

Сессия с именем ифейса появляется в админке. Завтра уже буду думать над допиливанием аккаунтинга и т.п.

 

Собссно возник вопрос: можно ли реализовать DHCPNAK по DM? Если не ошибаюсь, это должно инициализировать обновление лизы. Во всяком случае, хуже не станет.

 

И да, как вариант костылика для упрощения интеграции с биллинговыми системами - может, стоит предусмотреть смену User-Name радиусом? Хотя, в принципе, не критично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собссно возник вопрос: можно ли реализовать DHCPNAK по DM? Если не ошибаюсь, это должно инициализировать обновление лизы.

 

Нельзя просто взять и послать NAK. По RFC NAK можно посылать только в ответ на dhcp-запрос от клиента.

 

может, стоит предусмотреть смену User-Name радиусом?

А это как вообще? Запилить функционал radiusproxy в accel-ppp?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нельзя просто взять и послать NAK. По RFC NAK можно посылать только в ответ на dhcp-запрос от клиента.

Пример: в сети 2 дхцп сервера, клиент получает ип от одного, на втором - записи нет и сервер шлет NAK, и клиент тут же теряет лизу. Справедливо для винды ХР, думаю, и для других виндов прокатит.

В худшем случае - клиент проигнорит пакет (если следует букве RFC).

 

А это как вообще? Запилить функционал radiusproxy в accel-ppp?

Не-не-не, если радиус возвращает изменившийся User-Name - обновить аттрибут для сессии. Для IPoE - как по мне было бы весьма полезно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не-не-не, если радиус возвращает изменившийся User-Name - обновить аттрибут для сессии. Для IPoE - как по мне было бы весьма полезно.

 

И зачем это нужно? Вам не всё равно как будут называться сессии? idXXXXXX или vlan2.vlan3

 

 

Пример: в сети 2 дхцп сервера, клиент получает ип от одного, на втором - записи нет и сервер шлет NAK, и клиент тут же теряет лизу. Справедливо для винды ХР, думаю, и для других виндов прокатит.

В худшем случае - клиент проигнорит пакет (если следует букве RFC).

 

Я всё равно не понимаю эту ситуацию. Кто является dhcp-сервером? (сторонний dhcp-сервер в L2-сегменте с абонентом или доступен через relay или сам accel-ppp?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И зачем это нужно? Вам не всё равно как будут называться сессии? idXXXXXX или vlan2.vlan3

В CLI к примеру рулить удобнее будет. Хоть и редко надо. + меньше биллинг кому-то перепиливать будет.

 

Я всё равно не понимаю эту ситуацию. Кто является dhcp-сервером? (сторонний dhcp-сервер в L2-сегменте с абонентом или доступен через relay или сам accel-ppp?)

В данном примере из жизни - просто 2 сервера через рилеи. От одного клиент получает лизу, второй инициирует ее сброс и обновление. Т.е. - NAK вполне можно попробовать прикрутить для обрыва сессии.

Хотя намеренно эксперимент на стенде еще не ставил...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NiTr0

Не будет реакции на NAK, если dhcp-клиент ничего не запрашивал, т.е. мгновенный реализовать "сброс сессии" и уведомить об этом клиента через CoA не получится. Делайте lease time=60sec и будет keepalive в 30сек по аналогии с ppp lcp

 

В CLI к примеру рулить удобнее будет. Хоть и редко надо. + меньше биллинг кому-то перепиливать будет.

 

Т.е. у вас бизнес-процесс оказания саппорта кастомеров начинается с CLI браса, а не с билиинга? (не говоря уж про то, что многие операторы делают гуй, в котором по номеру договору(или другому идентификатору абонента) выводится всё сразу - от блокировок и баланса и заканчивая наличием линка/мак-адреса на порту доступа)

 

+ меньше биллинг кому-то перепиливать будет.

 

а чё его перепиливать-то? переименовал названия учётных записей и все дела. всё равно же придётся делать сопоставления "логин"<->opt82/dot1q/QinQ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не будет реакции на NAK, если dhcp-клиент ничего не запрашивал, т.е. мгновенный реализовать "сброс сессии" и уведомить об этом клиента через CoA не получится.

Ок, проверю сегодня.

 

Т.е. у вас бизнес-процесс оказания саппорта кастомеров начинается с CLI браса, а не с билиинга?

Нет. Но для отладки/запа сессий на брасе - удобнее.

 

а чё его перепиливать-то? переименовал названия учётных записей и все дела. всё равно же придётся делать сопоставления "логин"<->opt82/dot1q/QinQ

Перепилить и авторизацию, и аккаунтинг. Не критично в принципе, у меня-то уже перепилено, но сам факт...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня уже лет так 7 два dhcp сервера в релеях. И что то не вижу сбросов адресов после получения )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оба авторитативных, и при этом - часть абонов на одном, а часть на другом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сервера с идентичной конфигурацией, оба авторитативны. В каждой подсети существует так называемый "гостевой диапазон" - в нем нет привязки по маку, обычные адреса клиентов привязаны по макам.

Работает уже около 7 лет. Никаких dhcp failover и т.п. не настраивал (пробовали вначале, но пришли к выводу что не сильно то и надо)

[martin@dhcp1 ~]$ ll -h /etc/dhcpd.conf

-rw-r--r-- 1 root root 2,7M Июл 23 17:40 /etc/dhcpd.conf

[martin@dhcp1 ~]$

 

конфиг генерится раз в 5 минут, сервера с такой же периодичностью ходят за ним через rsync. Если контрольная сумма конфига поменялась - сервис перестартовывается.

 

От какого именно сервера клиент получил адрес - значения не имеет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я говорю о ситуации, когда один сервер отправляет АСК, а второй, чуть погодя - NAK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я говорю о ситуации, когда один сервер отправляет АСК, а второй, чуть погодя - NAK.

 

Ну так проверьте что будет, потом нам расскажите. Я уже поделился своими практическими наблюдениями. Если клиент не ждёт что-то от сервера(в вашем примере, если ACK ушёл в юзерленд раньше, чем NAK), то и не воспринимает никак эти сообщения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, поигрался с пакетами - не получается ничего внятного. Попробую на досуге таки собрать стенд, и смоделировать наблюдаемую ранее ситуацию на нем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

внимание вопрос - а почему второй nak отправит то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

martin74

Допустим у вас 2 accel-pppd работающие как IPoE L2-connected. Если один выдаст адрес, то второй, после получения access-reject от радиус-сервера(в предположении, что мультилогин запрещён) ответит NAK

Изменено пользователем srg555

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот это у меня пока и одно из препятствий на пути внедрения IPoE. Я не могу придумать, как его корректно сбалансировать на несколько брасов ;)

ЗЫ. Использовать один брас не предлагать ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.