не до конца поднимается ipoe сессия

IPoE related questions
Post Reply
amindomao
Posts: 13
Joined: 17 Apr 2015, 08:59

не до конца поднимается ipoe сессия

Post by amindomao »

Версия из git: commit af82c18fe8985b706740614d5ed738026ae68878

При старте под нагрузкой, когда радиусу надо ответить на очень много запросов, возникает слудующая ситуация:
- поднимается ipoe интерфейс
- в accel'е поднимается сессия, видно айпишник, но без шейпера
- на ipoe интерфейсе нет ip адресов
- в логе на недоподнятом интерфейсе - failed to set peer IPv4 address: Cannot assign requested address.

Выглядит этот процесс в логе примерно так ( речь об ipoe901 ):
[2016-12-18 06:51:31]: info: ipoe901: create interface ipoe901 parent p5p2
[2016-12-18 06:51:31]: debug: ipoe901: radius(1): queue 0x7f4ea819ef88
[2016-12-18 06:51:31]: debug: ipoe901: ipoe: activate session
[2016-12-18 06:51:31]: info: ipoe928: create interface ipoe928 parent p5p2
[2016-12-18 06:51:31]: error: ipoe157: failed to set peer IPv4 address: Cannot assign requested address
[2016-12-18 06:51:31]: error: ipoe901: failed to set peer IPv4 address: Cannot assign requested address
[2016-12-18 06:51:31]: error: ipoe475: failed to set peer IPv4 address: Cannot assign requested address
[2016-12-18 06:51:31]: debug: ipoe928: radius(2): queue 0x7f4eb8027288
[2016-12-18 06:51:31]: debug: ipoe928: ipoe: activate session
[2016-12-18 06:51:31]: info: ipoe940: create interface ipoe940 parent p5p2
[2016-12-18 06:51:31]: debug: ipoe940: radius(1): queue 0x7f4ecc1d0798
[2016-12-18 06:51:31]: info: ipoe901: ipoe: session started

Пробовал поднять время ожидания ответа от радиуса accel'ем путем timeout=2 и max-try=3, но результата не дало - все равно много сессий не поднимается c аналогичными логами.

Встречал в соседней теме информацию от Дмитрия, что радиус должен быть доступен на другом интерфейсе, например, с помощью влана, но по некоторым причинам пока этого сделать не получается.
Так же, пробовал стабильную версию - на ней такого поведения замечено не было, но тогда возникла проблема с шейпером исходящего трафика и пришлось отказаться в пользу возможности отключить шейпирование исходящего трафика вообще.
Спойлер
[ipoe]
verbose=1
interface=p5p2,mode=L3,start=up,ifcfg=0,proxy-arp=1,shared=1
gw-ip-address=10.133.210.13/8
local-net=10.133.0.0/17
local-net=10.133.128.0/18
local-net=10.134.16.0/24
local-net=10.134.17.0/24
local-net=10.134.28.0/24
local-net=10.134.32.0/23
l4-redirect-on-reject=300
l4-redirect-ipset=l4-redirect

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-ip-address=10.133.210.13
gw-ip-address=10.133.210.13
server=10.133.200.150,test,auth-port=18120,acct-port=18130,req-limit=50,fail-timeout=0,max-fail=10,weight=4
server=10.133.252.253,test,auth-port=18120,acct-port=18130,req-limit=50,fail-timeout=0,max-fail=10,weight=1
dae-server=10.133.210.13:3799,test
timeout=2
max-try=3
verbose=100
attr-tunnel-type=NAS-Identifier
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: не до конца поднимается ipoe сессия

Post by dimka88 »

- на ipoe интерфейсе нет ip адресов
А должны быть? ifcfg=0 у вас.
amindomao
Posts: 13
Joined: 17 Apr 2015, 08:59

Re: не до конца поднимается ipoe сессия

Post by amindomao »

dimka88 wrote:
- на ipoe интерфейсе нет ip адресов
А должны быть? ifcfg=0 у вас.
На сколько я понял при ifcfg=0 - accel не конфигурирует родительский интерфейс. В любом случае, вот так у меня сейчас выглядит работающий интерфейс:

Code: Select all

84374: ipoe2: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UNKNOWN group default qlen 100
    link/ether 6c:b3:11:3b:61:d9 peer ff:ff:ff:ff:ff:ff
    inet 10.133.210.9 peer 10.133.34.53/32 scope global ipoe2
       valid_lft forever preferred_lft forever
    inet6 fe80::6eb3:11ff:fe3b:61d9/64 scope link 
       valid_lft forever preferred_lft forever
amindomao
Posts: 13
Joined: 17 Apr 2015, 08:59

Re: не до конца поднимается ipoe сессия

Post by amindomao »

Вот так полностью выглядит событие:

Code: Select all

[2016-12-19 03:08:20]:  info: ipoe447: create interface ipoe447 parent p5p2
[2016-12-19 03:08:20]: debug: ipoe447: radius(2): req_enter 18
[2016-12-19 03:08:20]:  info: ipoe447: send [RADIUS(2) Access-Request id=1 <User-Name "10.133.75.30"> <NAS-IP-Address 10.133.210.9> <NAS-Port 95572> <NAS-Port-Id "ipoe447"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:04:96:52:1f:39"> <Called-Station-Id "p5p2"> <NAS-Identifier "ipoe"> <Framed-IP-Address 10.133.75.30> <User-Password>]
[2016-12-19 03:08:22]:  info: ipoe447: send [RADIUS(2) Access-Request id=1 <User-Name "10.133.75.30"> <NAS-IP-Address 10.133.210.9> <NAS-Port 95572> <NAS-Port-Id "ipoe447"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:04:96:52:1f:39"> <Called-Station-Id "p5p2"> <NAS-Identifier "ipoe"> <Framed-IP-Address 10.133.75.30> <User-Password>]
[2016-12-19 03:08:23]: debug: ipoe447: ipoe: activate session
[2016-12-19 03:08:23]: error: ipoe447: failed to set peer IPv4 address: Cannot assign requested address
[2016-12-19 03:08:23]:  info: ipoe447: ipoe: session started
[2016-12-19 03:08:24]:  info: ipoe447: send [RADIUS(2) Access-Request id=1 <User-Name "10.133.75.30"> <NAS-IP-Address 10.133.210.9> <NAS-Port 95572> <NAS-Port-Id "ipoe447"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:04:96:52:1f:39"> <Called-Station-Id "p5p2"> <NAS-Identifier "ipoe"> <Framed-IP-Address 10.133.75.30> <User-Password>]
[2016-12-19 03:08:25]: debug: ipoe447: radius(2): req_exit 7
[2016-12-19 03:08:25]:  info: ipoe447: recv [RADIUS(2) Access-Accept id=1 <Acct-Interim-Interval 1800> <Filter-Id "PORT_SPEED:0"> <Session-Timeout 604800> <PPPD-Upstream-Speed-Limit 35840> <Framed-IP-Address 10.133.75.30> <Framed-IP-Netmask 255.255.255.255> <PPPD-Downstream-Speed-Limit 35840>]
[2016-12-19 03:08:25]:  info: ipoe447: 10.133.75.30: authentication succeeded
Между записями касательно ipoe447 еще много записей по другим интерфейсам, например такие:

Code: Select all

warn: ipoe290: radius: server(2) not responding

Code: Select all

95572: ipoe447: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 
    link/ether 6c:b3:11:3b:61:d9 peer ff:ff:ff:ff:ff:ff
    inet6 fe80::6eb3:11ff:fe3b:61d9/64 scope link 
       valid_lft forever preferred_lft forever

Code: Select all

ipoe447  | 10.133.75.30   | 00:04:96:52:1f:39 | 10.133.75.30   |            | ipoe |      | active | 
В целом, понятно, что радиус был недоступен по какой-то причине несколько секунд, но, в итоге, Access-Accept от радиуса прилетел и accel в своем контексте поднял сессию, а интерфейс до конца не поднял и шейпер не повесил.
Думаю, что увеличение времени ожидания ответа от радиуса решит проблему. Тем не менее, считаю, что где-то accel не дожидается ответа либо недоопускает сессию по истечению таймаута.

Так же, теперь понятно, что дело не в старте под нагрузкой, а в реакции accel'я на недоступность радиуса.
amindomao
Posts: 13
Joined: 17 Apr 2015, 08:59

Re: не до конца поднимается ipoe сессия

Post by amindomao »

Вот аналогичная ситуация, по логом которой видно, что ответ от радиуса прилетел ровно через 4 секунды, которые я теперь указал в timeout=4 в конфиге:

Code: Select all

[2016-12-21 16:16:27]:  info: ipoe4004: create interface ipoe4004 parent p5p2
[2016-12-21 16:16:27]: debug: ipoe4004: radius(1): req_enter 1
[2016-12-21 16:16:27]:  info: ipoe4004: send [RADIUS(1) Access-Request id=1 <User-Name "10.133.10.51"> <NAS-IP-Address 10.133.210.13> <NAS-Port 165822> <NAS-Port-Id "ipoe4004"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:04:96:52:1f:39"> <Called-Station-Id "p5p2"> <NAS-Identifier "ipoe"> <Framed-IP-Address 10.133.10.51> <User-Password>]
[2016-12-21 16:16:31]: debug: ipoe4004: ipoe: activate session
[2016-12-21 16:16:31]: error: ipoe4004: failed to set peer IPv4 address: Cannot assign requested address
[2016-12-21 16:16:31]:  info: ipoe4004: ipoe: session started
[2016-12-21 16:16:31]:  info: ipoe4004: send [RADIUS(1) Access-Request id=1 <User-Name "10.133.10.51"> <NAS-IP-Address 10.133.210.13> <NAS-Port 165822> <NAS-Port-Id "ipoe4004"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:04:96:52:1f:39"> <Called-Station-Id "p5p2"> <NAS-Identifier "ipoe"> <Framed-IP-Address 10.133.10.51> <User-Password>]
[2016-12-21 16:16:31]: debug: ipoe4004: radius(1): req_exit 0
[2016-12-21 16:16:31]:  info: ipoe4004: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 1800> <Filter-Id "PORT_SPEED:0"> <Session-Timeout 604800> <PPPD-Upstream-Speed-Limit 35000> <Framed-IP-Address 10.133.10.51> <Framed-IP-Netmask 255.255.255.255> <PPPD-Downstream-Speed-Limit 35000>]
[2016-12-21 16:16:31]:  info: ipoe4004: 10.133.10.51: authentication succeeded
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: не до конца поднимается ipoe сессия

Post by Dmitry »

commit 0f696bdb32bdac3fb69afe608222b05132eb7576
Post Reply