forum.bitel.ru
http://forum.bitel.ru/

Radius сервер отвечает не с того ip
http://forum.bitel.ru/viewtopic.php?f=5&t=5275
Страница 1 из 1

Автор:  gramer [ 16 мар 2011, 18:04 ]
Заголовок сообщения:  Radius сервер отвечает не с того ip

Здравствуйте.
У нас такая ситуация.
На сервере, где запускается BGRadiusDialup есть два интерфейса :
физический eth0 192.168.0.1/24
и виртуальный eth0:1 192.168.0.10/24
Все радиус-запросы приходят на адрес 192.168.0.10, при этом радиус шлет ответы с интерфейса с адресом 192.168.0.1. Соответственно в этом случае NAS не понимает, что ему вообще пришло.

Вот пример tcpdump:

Код:
14:02:12.741871 IP (tos 0x0, ttl 64, id 1200, offset 0, flags [none], proto UDP (17), length 190) 192.168.0.50.34002 > 192.168.0.10.1812: RADIUS, length: 162
   Access Request (1), id: 0x96, Authenticator: e2d75a2bf4a640fc688735fd2f16e3f4
     Username Attribute (1), length: 7, Value: guest
       0x0000:  6775 6573 74
     NAS ID Attribute (32), length: 20, Value: nas1
       0x0000:  7070 706f 6531 2e6f 736b 6f6c 6e65 742e
       0x0010:  7275
     NAS IP Address Attribute (4), length: 6, Value: 192.168.0.50
       0x0000:  5ee6 228a [|radius]
14:02:12.834753 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 657) 192.168.0.1.1812 > 192.168.0.50.34002: RADIUS, length: 629
   Access Accept (2), id: 0x96, Authenticator: 464a9363d9784b91a8bff875a3aaaa47
     Accounting Interim Interval Attribute (85), length: 6, Value: 01:00 min
       0x0000:  0000 003c
     Service Type Attribute (6), length: 6, Value: Framed
       0x0000:  0000 0002
     Framed Protocol Attribute (7), length: 6, Value: PPP
       0x0000:  0000 0001
     Framed IP Address Attribute (8), length: 6, Value: x.x.x.x
       0x0000:  bc7c 7202
     Vendor Specific Attribute (26), length: 58, Value: Vendor: Unknown (12341) [|radius]
       0x0000:  0000 3035 0734 6f75 [|radius]


Рыл документацию на тему указать ip на котором будет запускаться листенер BGRadiusDialup, но ничего не нашел (только номер порта можно указать).

Убрать виртуальный интерфейс не предлагать - это необходимо для нашей архитектуры системы.
Версия радиуса: version 5.1 build 240 from 29.11.2010 10:40:13

Автор:  skn [ 16 мар 2011, 22:26 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

а iptables нельзя подменять адрес отправителя?

Автор:  gramer [ 17 мар 2011, 11:38 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

skn писал(а):
а iptables нельзя подменять адрес отправителя?

Можно, но хотелось бы чтобы работало без дополнительных костылей.

Автор:  gramer [ 17 мар 2011, 14:39 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

Можете сделать такое: чтобы можно было добавить в конфиг параметр, который бы определял, на каком интерфейсе листениться (и соотвественно с него же отвечать) радуису.

Автор:  skn [ 17 мар 2011, 15:45 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

а если не интерфейсах поменять ip местами

Автор:  Phricker [ 17 мар 2011, 16:06 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

или же (как у нас) физический без IP и два виртуальных

Автор:  gramer [ 17 мар 2011, 16:11 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

skn писал(а):
а если не интерфейсах поменять ip местами

Так в нашем случае нельзя

Phricker писал(а):
или же (как у нас) физический без IP и два виртуальных

А вот это надо проверить, спасибо.

Автор:  gramer [ 17 мар 2011, 16:48 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

Phricker писал(а):
или же (как у нас) физический без IP и два виртуальных

Так тоже нельзя.
Проблема в том, что реальный ip используется демоном pulse (при помощи него реализуется отказоутойчивая система). И этот демон требует именно реальный ip, иначе отказывается стартовать.

Автор:  gramer [ 18 мар 2011, 13:58 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

Стоит нам ждать решения этой проблемы?

Автор:  stark [ 18 мар 2011, 21:00 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

версия какая?

Автор:  snark [ 18 мар 2011, 21:07 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

gramer писал(а):
Стоит нам ждать решения этой проблемы?

проблемы? с этим??
gramer писал(а):
На сервере, где запускается BGRadiusDialup есть два интерфейса :
физический eth0 192.168.0.1/24
и виртуальный eth0:1 192.168.0.10/24

тут только
Код:
modprobe pryamie_ruki

поможет ...

по сути - сэр, как Вы себе представляете _нормальную_ "без дополнительных костылей"(с) работу сетевой подсистемы _любой_ ОС когда у Вас в рамках одной ОС есть 2 (два!) интерфейса принадлежащих 1 (одной!) подсети?

P.S. ув. разработчки, вообще идея с some.bgbilling.component.listen.ip.addr очень хорошая, подумайте о том чтобы реализовать ;)

Автор:  braek-neck [ 19 мар 2011, 21:22 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

зачем на биллинге два интерфейса?

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

Автор:  gramer [ 20 мар 2011, 18:28 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

snark писал(а):
тут только
Код:
modprobe pryamie_ruki

поможет ...

Такую настройку требует система failover, название которой я указал выше. Прямота рук тут совсем не причем.
snark писал(а):
по сути - сэр, как Вы себе представляете _нормальную_ "без дополнительных костылей"(с) работу сетевой подсистемы _любой_ ОС когда у Вас в рамках одной ОС есть 2 (два!) интерфейса принадлежащих 1 (одной!) подсети?

В тэге offtop вы сами ответили на этот вопрос. Как раз такой параметр мне и нужен, ну или хотябы заставить отвечать радиус с _того_же_ ip, на который пришли запросы.
stark писал(а):
версия какая?

Указана в первом посте:
gramer писал(а):
Версия радиуса: version 5.1 build 240 from 29.11.2010 10:40:13


braek-neck писал(а):
зачем на биллинге два интерфейса?

требуется для реализации отказоустойчивой системы

Автор:  skn [ 21 мар 2011, 00:14 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

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

P.S. посмотрите таблицу роутинга и попробуйте в ней поменять порядок следования интефейсов, я думаю именно она определяет с какого интерфейса прога будет слать ответ

Автор:  gramer [ 22 мар 2011, 12:09 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

skn писал(а):
P.S. посмотрите таблицу роутинга и попробуйте в ней поменять порядок следования интефейсов, я думаю именно она определяет с какого интерфейса прога будет слать ответ

Не знаю, насколько это правильно, но удалось заставить радиус отвечать с нужного ip при помощи роутов. Вот такие команды пришлось выполнить:
Код:
route delete -net 192.168.0.0/24
route delete -net 192.168.0.0/24
route add -net 192.168.0.0/24 dev eth1 metric 20
route add -net 192.168.0.0/24 dev eth1:1 metric 0

Интересный момент в этом всем такой: после выполнения этих команд получаем два маршрута в таблице роутинга, отличающихся только метрикой, но не отличающихся интерфейсом.
Код:
netstat -rnvee
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1     0     0      0
192.168.0.0     0.0.0.0         255.255.255.0   U     20     0        0 eth1     0     0      0

Но, как ни странно, это работает :)

Автор:  snark [ 22 мар 2011, 14:14 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

gramer писал(а):
получаем два маршрута в таблице роутинга, отличающихся только метрикой, но не отличающихся интерфейсом.
Код:
netstat -rnvee
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1     0     0      0
192.168.0.0     0.0.0.0         255.255.255.0   U     20     0        0 eth1     0     0      0

Но, как ни странно, это работает :)

это _не_ странно, это _нормально_
в кратце: при наличии 2-х и более маршрутов с одинаковым адресом назначения пакеты всегда отправляются по маршруту с наименьшей метрикой

TIP: поставьте на Вашем бордере для дефолтного маршрута (сеть 0.0.0.0/0) метрику отличную от 0 и 1, например 100 и тогда перестанете играть с аплинком в пинг-понг пакетами ;)

Автор:  gramer [ 22 мар 2011, 18:28 ]
Заголовок сообщения:  Re: Radius сервер отвечает не с того ip

snark писал(а):
в кратце: при наличии 2-х и более маршрутов с одинаковым адресом назначения пакеты всегда отправляются по маршруту с наименьшей метрикой

Это я знаю. Собсно на основании этих знаний и были составлены правила роутинга, указанные выше.
Странно то, что имя интерфейса в результирующей таблице eth1, хотя я задавал для маршрута с метрикой 0 интерфейс eth1:1.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/