Вопрос по работе версии 1.11.1 с nat = 1

IPoE related questions
Post Reply
Cpulink
Posts: 10
Joined: 21 Jan 2017, 12:47

Вопрос по работе версии 1.11.1 с nat = 1

Post by Cpulink »

Проблема - пытаюсь обновить систему до новой версии, не выходит добиться работы.
Ядро 3.14.79 x86_64. Accel-ppp и модуль собирал из текущего гита. Конфиг (ipoe):
Спойлер
verbose=1
l4-redirect-ipset=l4redir
shared=1
ifcfg=0
mode=L3
start=up
nat=1
attr-l4-redirect=L4-Redirect
local-net=10.3.0.128/29
local-net=10.3.4.0/22
interface=eth0
gw-ip-address=172.2.2.1/32
Таблица маршрутизации до инициирования сессии клиентом:
Спойлер
ip ro
blackhole 10.0.0.0/8 proto zebra scope link metric 20
10.3.0.0/23 dev eth0 proto kernel scope link src 10.3.1.7
10.3.0.0/16 via 10.3.1.1 dev eth0
172.11.24.0/26 dev eth1 proto kernel scope link src 172.11.24.7
Инициирую сессию. Сессия поднялась. При этом радиус дал адрес для внешки(172.11.27.131).
В системе маршрут присутствует:
Спойлер
ip ro
blackhole 10.0.0.0/8 proto zebra scope link metric 20
10.3.0.0/23 dev eth0 proto kernel scope link src 10.3.1.7
10.3.0.0/16 via 10.3.1.1 dev eth0
10.3.0.128 dev ipoe0 proto kernel scope link src 172.2.2.1
172.11.24.0/26 dev eth1 proto kernel scope link src 172.11.24.7
172.11.27.131 dev ipoe0 proto kernel scope link src 172.2.2.1
На созданном интерфейсе адреса расположились так:
Спойлер
15: ipoe0: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/ether 00:1b:21:53:b7:e8 peer ff:ff:ff:ff:ff:ff
inet 172.2.2.1 peer 172.11.27.131/32 scope global ipoe0
valid_lft forever preferred_lft forever
inet 172.2.2.1 peer 10.3.0.128/32 scope global ipoe0
valid_lft forever preferred_lft forever
А теперь смотрим в qugga и получаем странности:

Code: Select all

# sh ip route 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, P - PIM, A - Babel,
       > - selected route, * - FIB route

S>* 10.0.0.0/8 [254/0] is directly connected, Null0, bh
K>* 10.3.0.0/16 via 10.3.1.1, eth0
C>* 10.3.0.0/23 is directly connected, eth0
C>* 10.3.0.128/32 is directly connected, ipoe0
C>* 172.11.24.0/26 is directly connected, eth1
C>* 127.0.0.0/8 is directly connected, lo
Квагга видит только 10.3.0.128 (адрес клиента в локалке), видимо, последний добавленный на интерфейс.
И вот здесь и возникает проблема. Если НАСов только 1 и все идет на него, или пулы привязаны жестко по НАСам,
то проблема не возникнет. А при общем пуле, BGP-бордер по ospf (как и по прочим динамическим) не увидит
маршрут до конкретного абона по его внешнему адресу. Вместо этого в ospf улетает локальный адрес абона (10.3.0.128), а лучше или оба или внешку.....
Помучил quagga, поставил последнюю quagga-1.1.0. Без результатов. Видимо тип интерфейса POINTOPOINT влияет на работу с ним.
Поковырявшись, получилось сделать так (костыль, конечно):

Code: Select all

ip a re 172.2.2.1/32 peer 172.11.27.131 dev ipoe0
Маршрут появился в квагге:

Code: Select all

sh ip route 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, P - PIM, A - Babel,
       > - selected route, * - FIB route

S>* 10.0.0.0/8 [254/0] is directly connected, Null0, bh
K>* 10.3.0.0/16 via 10.3.1.1, eth0
C>* 10.3.0.0/23 is directly connected, eth0
C>* 172.11.24.0/26 is directly connected, eth1
C>* 172.11.27.131/32 is directly connected, ipoe0
C>* 127.0.0.0/8 is directly connected, lo
Теперь главный вопрос - куда копать при NAT=1? Это баг или фича?
Возможно ли изменить порядок добавления адресов на интерфейс ipoe при NAT=1,чтобы полученный от радиуса добавлялся последним?

В логе есть ошибки-предупреждения при старте, но не понимаю, критичны ли они и из-за чего возникают.Вот лог:
Спойлер
Jan 22 08:45:34 nasip acipoe: ipoe: start interface eth0 ()
Jan 22 08:45:34 nasip acipoe: libnetlink: RTNETLINK answers: No such file or directory
Jan 22 08:45:34 nasip acipoe: genl: error talking to kernel
Jan 22 08:45:34 nasip acipoe: vlan_mon: kernel module is not loaded
Jan 22 08:55:34 nasip acipoe: ipoe0:: create interface ipoe0 parent eth0
Jan 22 08:55:34 nasip acipoe: ipoe0:: radius(1): req_enter 1
Jan 22 08:55:34 nasip acipoe: ipoe0:: send [RADIUS(1) Access-Request id=1 <User-Name "10.3.0.128"> <NAS-Identifier "nasp3"> <NAS-IP-Address 172.11.24.7> <NAS-Port 15> <NAS-Port-Id "ipoe0"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:1a:4c:d4:11:d0"> <Called-Station-Id "eth0"> <Framed-IP-Address 10.3.0.128> <User-Password>]
Jan 22 08:55:34 nasip acipoe: ipoe0:: radius(1): req_exit 0
Jan 22 08:55:34 nasip acipoe: ipoe0:: recv [RADIUS(1) Access-Accept id=1 <Filter-Id "0"> <L4-Redirect 0> <Acct-Interim-Interval 1800> <Idle-Timeout 1800> <Framed-IP-Address 172.11.27.131> <NAS-Port 15> <NAS-Port-Id "ipoe0">]
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: 10.3.0.128: authentication succeeded
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: ipoe: activate session
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: rename interface to 'ipoe0'
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: radius(1): req_enter 1
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: send [RADIUS(1) Accounting-Request id=1 <User-Name "10.3.0.128"> <NAS-Identifier "nasp3"> <NAS-IP-Address 172.11.24.7> <NAS-Port 15> <NAS-Port-Id "ipoe0"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:1a:4c:d4:11:d0"> <Called-Station-Id "eth0"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "15dcd1c187a46a4d"> <Acct-Session-Time 0> <Acct-Input-Octets 0> <Acct-Output-Octets 0> <Acct-Input-Packets 0> <Acct-Output-Packets 0> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Framed-IP-Address 172.11.27.131>]
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: radius(1): req_exit 0
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: recv [RADIUS(1) Accounting-Response id=1]
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: ipoe: session started
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: pppd_compat: ip-up started (pid 23658)
Jan 22 08:55:34 nasip acipoe: ipoe0:10.3.0.128: pppd_compat: ip-up finished (0)
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Вопрос по работе версии 1.11.1 с nat = 1

Post by Dmitry »

надо посмотреть
TeCHNoiD
Posts: 10
Joined: 24 Nov 2016, 00:35

Re: Вопрос по работе версии 1.11.1 с nat = 1

Post by TeCHNoiD »

Доброго дня! Столкнулись с той же проблемой, 1:1 квагга не берет правильный маршрут. версия 7bfde7ac526337e18673c57d85f83faaf4beeb12
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Вопрос по работе версии 1.11.1 с nat = 1

Post by Dmitry »

commit 945a132a7af2862d89fa1fb86c175fe595419eef
TeCHNoiD
Posts: 10
Joined: 24 Nov 2016, 00:35

Re: Вопрос по работе версии 1.11.1 с nat = 1

Post by TeCHNoiD »

Огромное спасибо!! )
Post Reply