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

Куча arp сокетов так по скорости не бьет, т.к. число входящих arp-пакетов на много порядков меньше чем IP. Если и вылезет грабля, то при десятках или сотнях тысяч vlan.

Это очень некрасивая потенциальная DoS уязвимость (завишший роутер, петля, шальной абонент с дефолтом на интерфейс...), а в обычном режиме чревато тем, что на входе могут быть дропы IP пока ме-едленно обрабатывается один ARP.

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


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

vitalyb

В идеале да, кучи ARP-сокетов тоже быть не должно.

 

p.s. спасибо за подсказку в соседней теме, мгновенно нашли источник проблемы и метод решения.

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


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

[2013-10-13 00:17:04]: error: eth3.4000.101: ipoe: lua: /etc/accel-ppp.lua:2: attempt to index a nil value
похоже в пакете отсутствует опция 82

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


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

Вчера обновил accel и получил в логи

[2013-10-13 12:28:15]: info: eth3.4000.101: recv [DHCPv4 Discover xid=dc221462 chaddr=90:f6:52:7e:1d:9f <Message-Type Discover> <Max-Message-Size 1024> <Client-ID 0190f6527e1d9f> <Host-Name TL-WR741ND> <Vendor-Class 4d53465420352e30> <Request-IP 192.168.100.118> <Request-List Subnet,Router,DNS,Domain-Name,Route,Vendor-Specific,44,46,47,Classless-Route,249>]

[2013-10-13 12:28:15]: info: eth3.4000.101: send [RADIUS(1) Access-Request id=1 <User-Name "eth3.4000.101"> <NAS-Identifier "NAS-X"> <NAS-IP-Address 10.100.2.2> <NAS-Port 10828> <NAS-Port-Type Ethernet> <Calling-Station-Id "90:f6:52:7e:1d:9f"> <Called-Station-Id "eth3.4000.101"> <User-Password >]

[2013-10-13 12:28:15]: info: eth3.4000.101: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Netmask 255.255.255.255> <User-Name "eth3.4000.101"> <Session-Timeout 1600303> <Framed-IP-Address 192.168.100.76> <PPPD-Downstream-Speed-Limit 10024> <Acct-Interim-Interval 60> <PPPD-Upstream-Speed-Limit 10024>]

[2013-10-13 12:28:15]: info: eth3.4000.101: eth3.4000.101: authentication succeeded

[2013-10-13 12:28:15]: info: : recv [DHCPv4 Discover xid=4323f144 chaddr=20:cf:30:68:3f:ae <Message-Type Discover> <Client-ID 0120cf30683fae> <Host-Name netbook> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,Classless-Route,249,Vendor-Specific>]

[2013-10-13 12:28:15]: error: ipoe0: can't determine Server-ID

[2013-10-13 12:28:15]: debug: ipoe0: terminate

[2013-10-13 12:28:15]: info: ipoe0: ipoe: session finished

[2013-10-13 12:28:15]: info: eth3.4000.102: send [RADIUS(1) Access-Request id=1 <User-Name "eth3.4000.102"> <NAS-Identifier "NAS-X"> <NAS-IP-Address 10.100.2.2> <NAS-Port 10791> <NAS-Port-Type Ethernet> <Calling-Station-Id "20:cf:30:68:3f:ae"> <Called-Station-Id "eth3.4000.102"> <User-Password >]

[2013-10-13 12:28:15]: info: eth3.4000.102: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Netmask 255.255.255.255> <User-Name "eth3.4000.102"> <Session-Timeout 1600303> <Framed-IP-Address 91.240.191.46> <PPPD-Downstream-Speed-Limit 40096> <Acct-Interim-Interval 60> <PPPD-Upstream-Speed-Limit 40096>]

[2013-10-13 12:28:15]: info: eth3.4000.102: eth3.4000.102: authentication succeeded

[2013-10-13 12:28:16]: error: ipoe0: can't determine Server-ID

 

 

[ipoe]

verbose=1

username=ifname

password=IPoE

lease-time=60

max-lease-time=60

unit-cache=1000

shared=1

ifcfg=0

mode=L2

start=dhcpv4

proxy-arp=1

proto=100

attr-dhcp-cleint-ip=Framed-IP-Address

offer-delay=0,100:100,200:200,-1:1000

vlan-mon=eth3.4000,101-104

vlan-timeout=60

interface=re:eth3.4000.10[1-4]$

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

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


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

[2013-10-13 00:17:04]: error: eth3.4000.101: ipoe: lua: /etc/accel-ppp.lua:2: attempt to index a nil value
похоже в пакете отсутствует опция 82

 

dhcpdump -i eth3.4000
Ignored non IPv4 packet: 129
 TIME: 2013-10-13 12:39:44.502
   IP: 10.90.90.90 (78:54:2e:12:ee:e1) > 10.90.90.253 (54:4:a6:f3:ad:cd)
   OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
 HLEN: 6
 HOPS: 1
  XID: 19d26505
 SECS: 0
FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 10.90.90.90
CHADDR: 90:f6:52:7e:1d:9f:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  57 (  2) Maximum DHCP message size 1024
OPTION:  61 (  7) Client-identifier         01:90:f6:52:7e:1d:9f
OPTION:  12 ( 10) Host name                 TL-WR741ND
OPTION:  60 (  8) Vendor class identifier   MSFT 5.0
OPTION:  50 (  4) Request IP address        192.168.100.118
OPTION:  55 ( 11) Parameter Request List      1 (Subnet mask)
                                             3 (Routers)
                                             6 (DNS server)
                                            15 (Domainname)
                                            33 (Static route)
                                            43 (Vendor specific info)
                                            44 (NetBIOS name server)
                                            46 (NetBIOS node type)
                                            47 (NetBIOS scope)
                                           121 (Classless Static Route)
                                           249 (MSFT - Classless route)

OPTION:  82 ( 18) Relay Agent Information
                 Circuit-ID    00:04:00:65:00:01
                 Remote-ID     01:06:78:54:2e:12:ee:e1
---------------------------------------------------------------------------

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


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

to Chapay

Может у Вас не хватает этого:

[ipoe]
gw-ip-address=10.100.2.1/24

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


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

Может у Вас не хватает этого:

[ipoe]

gw-ip-address=10.100.2.1/24

 

неа, не помогло ...

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

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


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

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


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

nik247, пробуй

только

[ip-pool]

10.99.1.2/24,name=ipoe-guest-pool

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

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


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

nik247, пробуй

только

[ip-pool]

10.99.1.2/24,name=ipoe-guest-pool

Спасибо - пошел компилить.

насчет этого я уже понял и перешел на схему:

10.99.1.2-254/24,name=ipoe-pool

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


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

Други, подскажите, может не до конца понимаю значение опций. Клиенты PPP (pptp и l2tp). Нужно, чтобы при неудачном аккаутинге сессия обрывалась. Это важно для того, чтобы лиза IP-адреса продлевалось и исключалась возможность выдачи сего адреса повторно другому клиенту, когда с таким адресом уже есть активная сессия. Для этого (как мне показалось) в конфиге accel-ppp я нашел несколько подходящщих опций, которые настроил так (лиза айпишника в RADIUS'е 20 мин.):

 

[radius]
...
timeout=60
max-try=3
acct-timeout=1200

 

Правильно ли я понимаю, что при такой конфигурации сессия оборвется, если в течении 20 минут не удастся доставить Accounting до RADIUS-сервера?

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

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


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

1) Или acct-timeout должно быть radius_lease-duration/max-try ??

 

2) Есть подозрение, что этого не происходит. В 23.55 позвонил клиент, не работает Интернет. Смотрю, а на двух разных NAS'ах (оба на accel-ppp) по ppp-интерфейсу с одним и тем же IP-адресом. Смотрю в базе данных радиуса в таблице пула ip-адресов, на каком насе находится легитимный адрес. Иду в лог акселя другого наса, на котором айпишник "потерялся". Там вижу, что в 23.02 произошел Access-Accept (клиент подключился), затем сразу Accounting-Request с Acct-Status-Type Start и ответ Accounting-Response и больше ни одного упоминания про этот интерфейс. Хотя каждые пять минут должен идти аккаутинг. А так как его не было,делаю вывод, что айпишник забылся и ушел к другому. Что делать?...

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

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


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

nik247, пробуй

только

[ip-pool]

10.99.1.2/24,name=ipoe-guest-pool

to xeb

Обновился до f4335fb76b573137c352a34a6c95b1077ec459c2.

Все заработало, за одним "но" - accel начал падать (рестартовать) через какое-то время.

Оказалось, что он рестартует, как только заканчивается pool.

Воспроизведение рестарта:

1) ставим маленький pool: 10.88.1.2-4,name=ppp-pool

2) запускаем одного клиента - он получает 10.88.1.2

3) с консоли убиваем пару раз сессии, клиент получает по очереди 10.88.1.3, 10.88.1.4

4) и потом вместо получения свободного 10.88.1.2 ловим рестарт:

 

[2013-10-13 20:12:57.639] : : recv [DHCPv4 Discover xid=97317967 chaddr=08:00:27:69:a4:68 <Message-Type Discover> <Client-ID 0108002769a468> <Request-List Subnet,Classless-Route,Router,Route,DNS,NTP> <Host-Name cpe-107-mt> <Relay-Agent {Agent-Circuit-ID _0004001e0007} {Agent-Remote-ID _010b3139322e3136382e382e32}>]
[2013-10-13 20:12:57.639] eth2.30: 0662918e2a6a416c: send [RADIUS(1) Access-Request id=1 <User-Name "192.168.8.2:7"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.1.103> <NAS-Port 14> <NAS-Port-Type Ethernet> <Calling-Station-Id "08:00:27:69:a4:68"> <Called-Station-Id "eth2.30"> <User-Password >]
[2013-10-13 20:12:57.653] eth2.30: 0662918e2a6a416c: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 300> <User-Name "192.168.8.2:7"> <PPPD-Downstream-Speed-Limit 1000> <PPPD-Upstream-Speed-Limit 1000> <Session-Timeout 604800> <Framed-Pool "ppp-pool"> <Framed-Compression Van-Jacobson-TCP-IP>]
[2013-10-13 20:12:57.653] eth2.30: 0662918e2a6a416c: 192.168.8.2:7: authentication succeeded
[2013-10-13 20:12:57.674] failed to load pptp kernel module
[2013-10-13 20:12:57.678] failed to load pppoe kernel module
[2013-10-13 20:12:57.682] unable to load l2tp kernel module
[2013-10-13 20:12:57.683] ipoe: start interface eth2.30 (ifcfg=1,mode=L2,start=dhcpv4,shared=1,proxy-arp=1,offer-delay=500)
[2013-10-13 20:12:57.696] accel-ppp version f4335fb76b573137c352a34a6c95b1077ec459c2
[2013-10-13 20:12:57.750] net-snmp: NET-SNMP version 5.4.3 AgentX subagent connected

 

 

Откатываюсь на версию 8c608ea9a5b6b73520c11e3974bb8cad3b7da914

Делаем все тоже, что и первом случае, но итог немного другой - пишет "no free IPv4 address":

 

[2013-10-13 22:08:25.718] eth2.30: 0662918e2a6a58f7: send [RADIUS(1) Access-Request id=1 <User-Name "192.168.8.2:7"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.1.103> <NAS-Port 14> <NAS-Port-Type Ethernet> <Calling-Station-Id "08:00:27:69:a4:68"> <Called-Station-Id "eth2.30"> <User-Password >]
[2013-10-13 22:08:25.731] eth2.30: 0662918e2a6a58f7: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 300> <User-Name "192.168.8.2:7"> <PPPD-Downstream-Speed-Limit 1000> <PPPD-Upstream-Speed-Limit 1000> <Session-Timeout 604800> <Framed-Pool "ppp-pool"> <Framed-Compression Van-Jacobson-TCP-IP>]
[2013-10-13 22:08:25.731] eth2.30: 0662918e2a6a58f7: 192.168.8.2:7: authentication succeeded
[2013-10-13 22:08:25.732] ipoe0: 0662918e2a6a58f7: no free IPv4 address
[2013-10-13 22:08:25.732] ipoe0: 0662918e2a6a58f7: terminate
[2013-10-13 22:08:25.732] ipoe0: 0662918e2a6a58f7: ipoe: session finished

 

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


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

Хотя каждые пять минут должен идти аккаутинг.
Acct-Interim-Interval приходит от радиуса ?

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


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

Хотя каждые пять минут должен идти аккаутинг.
Acct-Interim-Interval приходит от радиуса ?

Да, приходит с Access-Accept: <Acct-Interim-Interval 300>. К тому же в конфиге указал acct-interim-interval=300, правда после этого accel-ppp не перезаупскал, сделал только релоад из консоли.

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


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

При попытке сделать в консоли restart в 50% случаев имеем висящий сервис. Использую shutdown/start.

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

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


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

Небольшой оффтопик, может кто подскажет, как radclient'ом руками отправить Accounting-Request c <Acct-Status-Type = Interim-Update>? Хочу проверить, в каком случае FreeRADIUS отбрасывает запрос, а когда выпоняет. Есть подозрение, что для accel-ppp аккаутинг-запрос видится успешным даже если FreeRADIUS проапдейтит только таблицу аккаутинга, а в таблице sqlippool по какой-то причине не выполняется alive-update.

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

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


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

Небольшой оффтопик, может кто подскажет, как radclient'ом руками отправить Accounting-Request c <Acct-Status-Type = Interim-Update>? Хочу проверить, в каком случае FreeRADIUS отбрасывает запрос, а когда выпоняет. Есть подозрение, что для accel-ppp аккаутинг-запрос видится успешным даже если FreeRADIUS проапдейтит только таблицу аккаутинга, а в таблице sqlippool по какой-то причине не выполняется alive-update.

 

запустите радиус в дебаге с выводом в файл (что-то вроде raduisd -X > /tmp/test.log), с лога сможете взять пары, которые используют ваши насы. Сохраните нужные в файл, получится что-то вроде такого -

...

Acct-Session-Id = "4863045-vlan1017-59"

NAS-Port = 59

NAS-Port-Type = Ethernet

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = "001e8c9c199c"

NAS-Port-Id = "vlan1017"

...

дальше с консоли -

radclient -f pairs_acc_update.txt -S shared_secret.txt -x 192.168.0.1 acct

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


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

У кого-нибудь наблюдается утечка файловых дескрипторов? (для этого нужно (пару раз в день в течение 2-3 дней) посмотреть "ls -1 /proc/XXXX/fdinfo/ | wc -l" , где XXXX это номер процесса accel-ppp). Когда дескрипторов становится больше, чем максимально допустимое в системе, наступает segfault

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


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

Доброго всем времени суток. Имеем проблему, которая уже почти полгода мешает нормальному фунционированию l2tp-сервера. Итак, конфиг такой:

 

[jrrtodules]
#path=/usr/local/lib/accel-ppp
log_file
#log_syslog
#log_tcp
#log_pgsql
pptp
12 tp
#pppoe
aut h_ms c hap_v2
aut h_ms c hap_v1
aut h_c hap_md5
auth_pap
#radius
ippool
sigchld
pppd_compat
shaper
#shaper_tbf (obsolete)
chap-secrets
up-limiter=police
doun-1imiter=htb
verbose=l
#net-snmp
#logwtmp
#connlimit
#ipv6_nd
#ipv6_dhcp
#ipv6pool
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4
[PPP]
verbose=l
min-mtu=1000
rtitu=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=l
lcp-echo-interval=20
#lcp-echo-failure=3
[aut h]
#any-login=0
#noauth=0
[pptp]
#echo-interval=30
#mppe=allow
#ip-pool=pooll
verbose=l
I
#[pppoe]
#interface=ethO
#interface=ethi,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=l
[12tp]
dictionary=/usr/local/share/accel-ppp/12tp/dictionary
he1lo-interval=60
timeout=60
rtimeout=5
retransmit=5
#host-name=accel-ppp
dir300_quirk=l
#secret=
#mppe=allow
#ip-pool=pool3
verbose=l
avp_permiss ive=1
[dns]
dns1=109.86.2.2
dns2=109.86.2.21
[wins]
#winsl=172.16.0.1
#wins2 = 172.16.1.1
[radius]
dictionary=/usr/local/share/accel-ppp/radius/dietionary
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,testingl23 (obsolete)
acct-server=127.0.0.1:1813,testingl23 (obsolete)
server=127.0.0.1,testingl23 (obsolete)
server=127.0.0.1,testingl23,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-t ime=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,pooll
#192.168.2.1-255,pool2
#192.168.3.1-255,pool3
#192.168.4.0/24
I
[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=l
#color=l
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=l
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=l
[chap-secrets]
#gw-ip-address=192.168.100.1
chap-secrets=/etc/ppp/chap-secrets
#encrypted=0
# us e r name-has h=md5
[shaper]
#attr=Filter-Id
attr-up=230
attr-down=231
##latency=200
#mpu=0
#r2q=10
# quant urn= 1500
#cburst=1534
#ifb=ifb0
up-1imiter=po1ice
down-1imiter=htb
#leaf-qdisc=sfq perturb 10
#verbose=l
#tbf is obsolete, use shaper module
#[tb£]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=l.0
#latency=50
[cli]
telnet=127.0.0.1:2000
#tcp=127.0.0.1:2001
#password=123
I
[snmp]
master=0
agent-name=acce1-ppp
[connlimit]
limit=10/min
burst=3
timeout=60
$[ipv6—pool]
cOO: 0 :1::/48,64
#delegate=fcOO: 1::/36,48
U[ipv6-dns]
cOO: 1: : 1
cOO: 1: : 2
cOO: 1 : : 3
#dnssl=suffixl.local.net
#dnssl=suffix2.local.net.
U[ipv6-dhcp]
#verbose=l
#pref-lifetime=604800
#valid-lifetime=2592000
#route-via-gw=1

 

В логе постоянно ошибки вида

warn: l2tp: incorrect avp received (type=6, M=1, must be 0)

Также очень печалит то, что шейпер перестал вообще работать - никак скорость не гориничивает, отя раньше исправно работал.

Очень прошу помощи. Заранее благодарен.

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


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

avp_permiss ive=1
мне показалось, или здесь есть пробел ?

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


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

xeb

Вам не показалось, но это просто с nano текст нормально не копируется и пришлось распознавать скриншоты. Так что пробела нет.

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


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

при avp_permissive=1 сообщение

warn: l2tp: incorrect avp received (type=6, M=1, must be 0)
не является критическим, т.е. это просто предупреждение

 

Имеем проблему, которая уже почти полгода мешает нормальному фунционированию l2tp-сервера.
лог бы не помешал

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


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

Join the conversation

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

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

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

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

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

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

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