Jump to content
Калькуляторы

Два NAS в сети - как настроить маршрутизацию?

Имеем такую схему (упрощенно):

      Интернет
          |
NAS-----Router
          |
          юзер

NAS - mpd+radius (FreeBSD), Router - Linux (там же NAT).

"юзер" после авторизации получает статический "туннельный" IP, например, 172.17.20.21. 172-я подсеть поделена на 4 (172.16.0.0/16, 172.17.0.0/16, 172.18.0.0/16, 172.19.0.0/16), IP назначается согласно тарифного плана, т.е. при смене тарифа, он может быть 172.16.20.21, 172.17.20.21, 172.18.20.21, или 172.19.20.21

На роутере настроена статическая маршрутизация:

172.18.0.0      XXX.XXX.XXX.XXX     255.255.0.0     UG    0      0        0 vlan10
172.19.0.0      XXX.XXX.XXX.XXX     255.255.0.0     UG    0      0        0 vlan10
172.16.0.0      XXX.XXX.XXX.XXX     255.255.0.0     UG    0      0        0 vlan10
172.17.0.0      XXX.XXX.XXX.XXX     255.255.0.0     UG    0      0        0 vlan10

где XXX.XXX.XXX.XXX - это IP NAS.

Возникла необходимость в установке второго NAS (один уже не справляется). Соотв. схема сети изменяется до такого вида:

         Интернет
            |
NAS1-----Router-----NAS2
            |
          юзер

Оба NAS находятся в одной подсети /29

Юзеров по NAS-ам предполагается "распределять" рандомно с помощью простой конструкции в DNS

rrset-order {
    class IN type A name "vpn.mydomain.ru" order random;
    order cyclic;
      };

где соотв. vpn.mydomain.ru имеет две записи с различными IP в "IN A".

Вопрос - как в этом случае настроить маршрутизацию ?

Edited by AlKov

Share this post


Link to post
Share on other sites

включить динамическую маршрутизацию на роутере и насах.

Share this post


Link to post
Share on other sites
включить динамическую маршрутизацию на роутере и насах.
Гм.. Слишком кратко, суть понятна, а вот способы реализации - увы... :(

Предположительно мне нужен RIP (или OSPF ???) с реализацией на quagga. Если не ошибаюсь (особенно насчет OSPF - вроде как "из пушки по воробъям" получается), то где-бы полицезреть рабочий пример реализации?

 

P.S. С динамической маршрутизацией сталкиваюсь в первый раз, отсюда собственно и вопрос. Впервой оно все тяжеловато. :)

Share this post


Link to post
Share on other sites

[root@vpn1 ~]# cat /etc/quagga/ripd.conf
!
! Zebra configuration saved from vty
!   2008/11/17 19:28:01
!
hostname vpn1.lds.local
password ************
enable password *************
!
interface eth0
no ip rip authentication mode md5
!
router rip
version 2
redistribute connected
redistribute static
network 10.0.5.0/24
neighbor 10.0.5.254
!
line vty
!
log file /var/log/quagga/ripd.log

 

10.0.5.254 - DGS3627G со включенным RIP на этом интерфейсе. Ну в случае там PC роутера - небольшая разница.

Я использую RIP для построения маршрутизации между впнами и OSPF для локальной сети. Ну и BGP наружу ;)

Share this post


Link to post
Share on other sites

Поднимай OSPF.

У меня динамическая маршрутизация между L3-свитчом в ядре, двумя NAS-ами и бордером.

Share this post


Link to post
Share on other sites
Поднимай OSPF.

У меня динамическая маршрутизация между L3-свитчом в ядре, двумя NAS-ами и бордером.

и что таки поднялся на кваге под фрей? и хорошо работает?

Share this post


Link to post
Share on other sites

Использую для этих целей bgp (4 NASa к одному роутеру). Проблем нет, работает быстро. Черт знает что использует провайдер-конкурент - после подключения к инету еще 40-60 секунд надо ждать, пока маршрут поднимится.

Share this post


Link to post
Share on other sites
и что таки поднялся на кваге под фрей? и хорошо работает?
На линупсе поднялся и работает отлично. Таки что будет на этой вашей фре - не знаю, но подозреваю, что будет работать.
Использую для этих целей bgp (4 NASa к одному роутеру). Проблем нет, работает быстро. Черт знает что использует провайдер-конкурент - после подключения к инету еще 40-60 секунд надо ждать, пока маршрут поднимится.
BGP - он сооооовсем для других целей.

Share this post


Link to post
Share on other sites
Использую для этих целей bgp (4 NASa к одному роутеру). Проблем нет, работает быстро. Черт знает что использует провайдер-конкурент - после подключения к инету еще 40-60 секунд надо ждать, пока маршрут поднимится.
так же сделано.

но есть ощущение что роутер слегка офигевает от большого кол-ва /32.

 

Share this post


Link to post
Share on other sites

Сам подумывал над подобной схемой. Пока не реализовал, но идеи такие:

 

Вынести НАТ на НАСы, а только реальники по динамическим маршрутам. Тогда не будут таблицы забиваться совсем. И адресацию с радиуса можно всем одинаковую давать, т.к. до НАТа будет точка - точка.

Share this post


Link to post
Share on other sites
Черт знает что использует провайдер-конкурент - после подключения к инету еще 40-60 секунд надо ждать, пока маршрут поднимится.
У вас iBGP?

у него походу eBGP.... (косвенно, по 40-60 сек).

Share this post


Link to post
Share on other sites

у нас iBGP, быстро работает.

 

но если бы получилось полноццено и неглючно поднять ospf, сделал бы его.

bgp все-таки менее удобный вариант.

Share this post


Link to post
Share on other sites
у нас iBGP, быстро работает.
eBGP можно ускорить: advertisement-interval

 

но если бы получилось полноццено и неглючно поднять ospf, сделал бы его.

bgp все-таки менее удобный вариант.

ваще, на мой взгляд, правильное решение: свои сети IGP (на выбор, хоть rip), клиентские i/eBGP.

 

Share this post


Link to post
Share on other sites

Ну вроде как с RIP разобрался, не без помощи, конечно. ;) На роутере нужные маршруты /32 появились, но..

Вылезла другая проблема - не вижу ни одного pptp на NAS2, все продолжают ломиться на 1-й.. :( В DNS IP второго NAS-а добавил, уменьшил до 1 мин. TTL для этих записей, nslookup исправно выдает оба IP в разной комбинации, а все упрямо продолжают юзать первый NAS..

Что еще может быть не так? Или просто мало времени прошло (около 3-х часов после ребута DNS)?

Share this post


Link to post
Share on other sites

насильно отвалите первый NAS.

пусть переконнектят.

 

возможно у пользователей прописан для доступа IP, а не имя.

 

 

Share this post


Link to post
Share on other sites

а пользователи точно по dns имени ходят на сервер? у меня после добавления нового сервера клиенты на нем появляются через 2 минуты ;)

Share this post


Link to post
Share on other sites

С отсутствием коннекта на NAS2 разобрался, как всегда виновата оказалась "прокладка между рулем и сиденьем". :) NAS2 не отдавал маршруты роутеру из-за закрытого в фаерволе udp.

Но радости от юзания второго НАС-а не прибавилось, вылез гемор похлеще - съехала крыша у radius-а, которы обитает на NAS1. Выразилось это в сумасшедших начислениях денег на помегабайтных тарифах и в конечном итоге radius загнал в полный ступор mysql и загнулся сам... Пришлось срочно ребутать NAS и временно "прикрыть лавочку"..

В чем проблема пока непонятно. Предполагаю, что тут снова не обошлось без фаерволов. Если я не ошибаюсь, radius общается с NAS-ами по тому же udp, возможно что тут и произошел сбой из-за дропов udp фаерволом на первом NAS-е. Не может ли быть такое из-за того, что в radius.conf у меня только localhost

acct    127.0.0.1:1812  password        4       4
auth    127.0.0.1:1813  password        4       4

IP второго NAS-а туда надо добавлять? Хотя не могу понять, как же в таком случае второй NAS смог авторизоваться??

Вообщем, пока разбираюсь..

Плюс ко всему, похоже, малость "недонастроил" и собственно RIP, т.к. после запуска сего увидел кучу роутов на NAS2, которым там совсем не место. Собственно маршруты там были верными - в кач. шлюза был IP NAS1, но вроде как этим роутам там (на NAS2) делать нечего. Или так оно и должно быть? Не может быть такая ситуация из-за отсутствия ACL в конфигах ripd (или zebra?) ?

 

Edited by AlKov

Share this post


Link to post
Share on other sites

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

Что интересно, в mysql данные о трафике записываются верные, а вот "обсчитывание" идет какими-то сумасшедшими суммами.

Вот данные из mysql

Принял (Мb.)    Передал (Мb.)       До снятия руб   Начислено руб 
2.550037         1.032669             -4.06         46456835.58

В лог (/var/log/radius/radacct/10.254.213.2/detail-20100327) по аливам данные о трафике приходят верные

Sat Mar 27 12:32:35 2010

NAS-Identifier = "vpn2.mydomain.ru"

NAS-IP-Address = 10.254.213.2

Acct-Session-Id = "9678285-L-1"

NAS-Port = 1

NAS-Port-Type = Virtual

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = "192.168.112.4"

Called-Station-Id = ""

mpd-link = "L-1"

Tunnel-Type:0 = PPTP

Tunnel-Medium-Type:0 = IP

Tunnel-Server-Endpoint:0 = "10.254.213.2"

Tunnel-Client-Endpoint:0 = "192.168.112.4"

Tunnel-Server-Auth-Id:0 = "vpn2.mydomain.ru"

Framed-IP-Address = 172.16.0.7

Framed-IP-Netmask = 255.255.255.255

User-Name = "user"

Acct-Multi-Session-Id = "9678286-P-1"

mpd-bundle = "P-1"

mpd-iface = "ng0"

mpd-iface-index = 10

Acct-Link-Count = 1

Acct-Authentic = RADIUS

Acct-Status-Type = Alive

Acct-Session-Time = 4143

mpd-input-octets = "Ext:739222"

mpd-input-packets = "Ext:4382"

Acct-Input-Octets = 739222

Acct-Input-Packets = 4382

Acct-Input-Gigawords = 0

mpd-output-octets = "Ext:2094787"

mpd-output-packets = "Ext:4071"

Acct-Output-Octets = 2094787

Acct-Output-Packets = 4071

Acct-Output-Gigawords = 0

Client-IP-Address = 10.254.213.2

Acct-Unique-Session-Id = "b2be3b949b88bf02"

Timestamp = 1269682355

А вот в лог /var/log/radius/radius.log записывается то самое сумашествие..
Sat Mar 27 11:23:35 2010 : Auth: rlm_nibs (rlm_nibs_postauth): User `user' login OK [10.254.213.2:1] |192.168.112.4|

Sat Mar 27 12:30:35 2010 : Info: X-AMOUNT: 287762841484 bytes

Sat Mar 27 12:30:35 2010 : Info: X-NO-FLOOR-PRICE: 274432.031139 mb * $ 1.000000

Sat Mar 27 12:30:35 2010 : Info: X-AMOUNT: 287762870657 bytes

Sat Mar 27 12:30:35 2010 : Info: X-NO-FLOOR-PRICE: 274432.058961 mb * $ 1.000000

Если тот же юзер авторизуется на NAS, который находится на localhost (там же, где и radius), никаких проблем не возникает.

В чем может быть разница? Подозреваю, что где-то "недоконфигурил" в радиусе, или биллинге (FreeNIBS), а вот где???

Edited by AlKov

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this