Биллинговая система Nodeny
03 Мая 2024, 08:11:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: "Мир" и "Украина" - как сделать правильный роутинг ?  (Прочитано 14228 раз)
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« : 24 Августа 2009, 19:23:31 »

Всем доброго дня ..
Понимаю, что вопрос немного не по теме биллинга, но тесно с ним связан ...

Ситуация такая:
Есть билль 50.19. В нем уже настроено разделение трафика на Укр и мир. Файл с укр сетями заносится в 126ю таблицу ipfw.
Есть шлюзовой сервер - одна штука .. На нем крутятся сателлиты доступа и авторизации. В файле rc.firewall - второй пример из доки по биллю, подправленый для работы с Нетфлов ...
На шлюзовом сервере есть три сетевухи - локалка, инет Мир и инет Украина (ненастроено)...
Сейчас все работает стандартно - на Мире нат (pf), с Мира в локалку пробрасываются бинатом белые ИПы ...

Сейчас провели и подключили в шлюз канал сугубо с укр трафиком.
Если (для теста) добавить какойнить роут в укр подсеть (например, 77.88.0.0/16), то трэйс со шлюза показывает, что пинги в ту подсеть ходят через укр канал, НО пинги ЗА шлюзом, с локалки, на тот же узел ходить перестают ..
Из мыслей по этому поводу у меня есть только то, что на укр интерфейсе не поднят нат ...

Так вот вопрос:
КАК ПРАВИЛЬНО организовать такую схему ?

Почитавши кучу других форумов, нашел, что для этого используют PBR, но во всех тестовых примерах два канала используют либо для балансировки нагрузки, либо пробрасывают НЕКОТОРЫЕ сервисы во второй канал ...
Мне же нужно роутить украинские сети в укр канал, все остальное - в мировой канал ..
п.с. Своей АС у нас нету, БГП не подходит ..

Наверняка на этом форуме есть люди, у которых сделано что нибудь похожее ..
Может кто поделится кусочком конфига, подходящим для подобного ? Или культурно толкнет в нужном направлении?

Заранее спасибо ...
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 24 Августа 2009, 23:39:51 »

если бы условная схемка всего этого, включая того кто пингует и какой ип...
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #2 : 25 Августа 2009, 01:55:35 »


Пардон за изобразительное искусство ))

На bge1 висит укр точка обмена трафиком - UA-IX, на em1 - мировой канал, который ТОЖЕ подключен к уа-икс ...
Пров с миром дает пару пулов белых ип - десяток адресов в 80.93. сети и несколько сотен в 78.154. сети ..
Пров с украиной дает только один ип и шлюз ...

Содержимое пф.конф
Код:
int_if="em0"
ext_if="em1"
ua_if="bge1"

... поскипано ...

no nat on $int_if from any to 192.168.0.0/24

nat pass on $ext_if from 192.168.0.0/16 to any -> 78.154.х.х/25 source-hash
nat pass on $ext_if from 10.0.0.0/8 to any -> $ext_if

# Выдача белого ипа
no nat on $ext_if from 192.168.70.2 to any
binat on $ext_if from  192.168.70.2  to any ->  78.154.х.х

Содержимое rc.firewall
Код:
#!/bin/sh -
f='/sbin/ipfw'

ifOut='em1'

# Сети, в/из которых трафик блокируем
${f} table 120 flush
${f} table 120 add 224.0.0.0/4
${f} table 120 add 172.16.0.0/12

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

# ${f} add 60 allow ip from any to any

${f} add 100 deny tcp from any to any 445

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut}

${f} add 300 skipto 4500 ip from any to any in

# ${f} add 300 setfib 1 ip from table(126) to any in
# ${f} add 350 skipto 4500 ip from any to any in

${f} add 400 ngtee 100 ip from any to any

${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 ngtee 100 ip from any to any
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,161,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2060 allow udp from any to any 53,161,7723
${f} add 2070 allow ip from 10.0.121.10 to any

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any

Список укр сетей берется тут - http://www.colocall.net/uaix/prefixes.txt

Если на шлюзе прописать роут в одну из этих сетей, допустим 77.90.192.0/18 и сделать трэйс узла  bt.tracker.0day.kiev.ua со ШЛЮЗА, то он покажет, что трафик идет через ифейс bge1 - укр канал.
В тоже время со стороны локалки em0 пинг на тот же узел пропадает.
Если роут удалить, то трэйс пойдет через мировой канал и пинги с локалки будут ..

Вот такая ситуёвина .. (((
У меня есть только идея разнести это все хозяйство на две машины - нат на мировом канале и шэйпер на одну, с нее роутами заворачивать укр трафик на машину с натом на укр канале ..
Может я где прозевал очевидную мысль ? вроде ж вопрос не нов, но реальных примеров, как ни странно, не нашел ..

п.с. ах да - биллинг 50.19 на фре 7.2 ...
« Последнее редактирование: 25 Августа 2009, 02:01:02 от Elisium » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #3 : 25 Августа 2009, 05:58:32 »

В фаервол добавить
Код:
ifOut2='bge1'
и все строчки, содержащие $ifOut в фаерволе, продублировать точно такими же, только с $ifOut2
В pf добавить
Код:
nat pass on bge1 from {192.168.0.0/16,10.0.0.0/8} to any -> $ua_if
Ну и, конечно же, прописать маршрутизацию на сети уа-аикс в уа-иксный канал Улыбающийся Проще всего попросить прова с украиной сделать BGP маршрутизацию (даже если у вас нет своей автономки и блока адресов)  Смеющийся
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #4 : 25 Августа 2009, 20:00:53 »

Спасибо! Вечерком, как час пик немного пройдет, попробую ...
Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч ..
Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?

И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ?
Потому что route add ~1500 маршрутов представляю с трудом ((((
Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #5 : 25 Августа 2009, 20:40:30 »

Спасибо! Вечерком, как час пик немного пройдет, попробую ...
Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч ..
Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?

И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ?
Потому что route add ~1500 маршрутов представляю с трудом ((((
Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((
ну вообще-то тама должно быть
Код:
3591 accepted prefixes
Улыбающийся
поэтому делай BGP-маршрутизацию
Записан
t0ly
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 9


Просмотр профиля
« Ответ #6 : 26 Августа 2009, 15:05:33 »

Спасибо! Вечерком, как час пик немного пройдет, попробую ...
Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч ..
Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?

И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ?
Потому что route add ~1500 маршрутов представляю с трудом ((((
Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((

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

по сабжу
вообще нужно просто поднять нат на интерфейсе в УА-ИКС и всё.
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #7 : 26 Августа 2009, 19:33:39 »

Таксь .. учитывая данные подсказки, поднял второй нат на интерфейся с УА-ИКС (бге1), прописал все 1,5к роутов .. да, ниче не загнулось от этого )) приятно)
Про то, что можно два ната поднять на ОДНОЙ машине, признаюсь, не знал ((( Настройка фаерволов пока что для меня темный лес, хотя разбираюсь потихоньку ..
Строки с $ifOut2 прописал ...
Получилось примерно вот:


Цитировать
#!/bin/sh -
f='/sbin/ipfw'

ifOut='em1'
ifOut2='bge1'

# Сети, в/из которых трафик блокируем
${f} table 120 flush
${f} table 120 add 224.0.0.0/4
${f} table 120 add 172.16.0.0/12

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

# ${f} add 60 allow ip from any to any

${f} add 100 deny tcp from any to any 445

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 140 deny ip from any to "table(120)"
${f} add 150 deny ip from "table(120)" to any
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any via ${ifOut2}
${f} add 201 skipto 500 ip from any to any via ${ifOut}


${f} add 300 skipto 4500 ip from any to any in

# ${f} add 300 setfib 1 ip from table(126) to any in
# ${f} add 350 skipto 4500 ip from any to any in

${f} add 400 ngtee 100 ip from any to any

${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 ngtee 100 ip from any to any
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,161,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut2}
${f} add 2051 deny ip from any to any via ${ifOut}

${f} add 2060 allow udp from any to any 53,161,7723
${f} add 2070 allow ip from 10.0.121.10 to any

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any
Украина забегала, Но!!!, судя по всему, этот трафик НЕ шейпится и НЕ ограничивается фаером ... Сейчас временные неполадки с тестовым каналом и детально проверить немогу ...
Кстати - у чего приоритет выше ? у ипфв или у таблицы маршрутов ? Если у ипфв, то почему нету шейпов и блокировок ? (

п.с. вот в ЭТОЙ теме ув. тов. elite сделал наброски этого же вопроса, но с помощью setfib .. это тоже самое, что я сейчас пытаюсь сделать ? Там, в принципе, задача похожа, реализация другая ..
« Последнее редактирование: 26 Августа 2009, 20:08:03 от Elisium » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #8 : 26 Августа 2009, 19:37:10 »

а зачем в нетграф заворачиваешь трафик? и зачем тебе setfib нужно?
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #9 : 26 Августа 2009, 20:07:27 »

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

Там, где в конфиге сетфиб, так это комментарии )
А строки с ifOut2 добавил согласно Вашему рецепту ..

Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой.
« Последнее редактирование: 26 Августа 2009, 21:20:32 от Elisium » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #10 : 26 Августа 2009, 21:47:29 »

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

Там, где в конфиге сетфиб, так это комментарии )
А строки с ifOut2 добавил согласно Вашему рецепту ..

Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой.
должно все нормально работать!!!
и все шейпить!
ну тогда ipfw list и ipfw show давай сюда
з.ы. так зачем в нетграф заворачиваешь траф?
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #11 : 26 Августа 2009, 21:58:09 »

ipfw list

Код:
[root@gate /usr/local]# ipfw list
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00100 deny tcp from any to any dst-port 445
00110 allow ip from any to any via lo0
00120 skipto 1000 ip from me to any
00130 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00140 deny ip from any to table(120)
00150 deny ip from table(120) to any
00160 skipto 2000 ip from any to me
00200 skipto 500 ip from any to any via bge1
00201 skipto 500 ip from any to any via em1
00300 skipto 4500 ip from any to any in
00400 ngtee 100 ip from any to any
00490 allow ip from any to any
00500 skipto 32500 ip from any to any in
00510 ngtee 100 ip from any to any
00540 allow ip from any to any
01000 allow udp from any 53,161,7723 to any
01010 allow tcp from any to any setup keep-state
01020 allow udp from any to any keep-state
01100 allow ip from any to any
02000 check-state
02010 allow icmp from any to any
02020 allow tcp from any to any dst-port 80,443
02050 deny ip from any to any via bge1
02051 deny ip from any to any via em1
02060 allow udp from any to any dst-port 53,161,7723
02070 allow ip from 10.0.121.10 to any
02100 deny ip from any to any
05000 deny ip from not table(0) to any
05001 skipto 5010 ip from table(127) to table(126)
05002 skipto 5030 ip from any to not table(2)
05003 deny ip from any to not table(1)
05004 pipe tablearg ip from table(21) to any
05005 deny ip from any to any
05010 pipe tablearg ip from table(127) to any
05030 deny tcp from table(15) to any dst-port 25
05226 allow ip from table(127) to table(126)
05400 pipe tablearg ip from table(11) to any
32000 deny ip from any to any
32490 deny ip from any to any
33000 pipe tablearg ip from table(126) to table(127)
33001 skipto 33010 ip from not table(2) to any
33002 pipe tablearg ip from any to table(20)
33003 deny ip from any to any
33226 allow ip from table(126) to table(127)
33400 pipe tablearg ip from any to table(10)
65535 deny ip from any to any


ipfw show
Код:
[root@gate /usr/local]# ipfw show
00050       6779        297572 allow tcp from any to me dst-port 22
00051      12379       2392184 allow tcp from me 22 to any
00100      65453       3249092 deny tcp from any to any dst-port 445
00110      85480      10662708 allow ip from any to any via lo0
00120    4034166    2329134895 skipto 1000 ip from me to any
00130      16315        913927 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00140       6557        635922 deny ip from any to table(120)
00150       3183        230252 deny ip from table(120) to any
00160    2420357    1632925784 skipto 2000 ip from any to me
00200    1061160      80561239 skipto 500 ip from any to any via bge1
00201 1371933031 1018165281908 skipto 500 ip from any to any via em1
00300 1060154763  757295277484 skipto 4500 ip from any to any in
00400  729193576  615661664507 ngtee 100 ip from any to any
00490          0             0 allow ip from any to any
00500  698001039  618632646521 skipto 32500 ip from any to any in
00510  675520271  399760433574 ngtee 100 ip from any to any
00540          0             0 allow ip from any to any
01000     727774      54805708 allow udp from any 53,161,7723 to any
01010    2758241    1683621893 allow tcp from any to any setup keep-state
01020    1445904    2133211730 allow udp from any to any keep-state
01100     595634      37950561 allow ip from any to any
02000          0             0 check-state
02010      33605       1684028 allow icmp from any to any
02020      34632       1600806 allow tcp from any to any dst-port 80,443
02050       9125        466822 deny ip from any to any via bge1
02051       3977        476544 deny ip from any to any via em1
02060     845199      48218715 allow udp from any to any dst-port 53,161,7723
02070          0             0 allow ip from 10.0.121.10 to any
02100        434         23872 deny ip from any to any
05000    4660423    4133767368 deny ip from not table(0) to any
05001   10784638   14508835430 skipto 5010 ip from table(127) to table(126)
05002 1044708213  738652596897 skipto 5030 ip from any to not table(2)
05003        362         18499 deny ip from any to not table(1)
05004        352         15360 pipe tablearg ip from table(21) to any
05005          0             0 deny ip from any to any
05010   10784638   14508835430 pipe tablearg ip from table(127) to any
05030     679366      32624492 deny tcp from table(15) to any dst-port 25
05226          0             0 allow ip from table(127) to table(126)
05400 1044028844  738619971225 pipe tablearg ip from table(11) to any
32000          3          1180 deny ip from any to any
32490        775         43930 deny ip from any to any
33000    6183805     382276922 pipe tablearg ip from table(126) to table(127)
33001  691815650  618250150342 skipto 33010 ip from not table(2) to any
33002       1301        102746 pipe tablearg ip from any to table(20)
33003         94          5025 deny ip from any to any
33226          0             0 allow ip from table(126) to table(127)
33400  681912726  617529968071 pipe tablearg ip from any to table(10)
65535    9902997     720245500 deny ip from any to any

Насколько я понял про нетграф, то там сливается статистика по нетфлов... Собрано из примера в документации ...
Скажу так - весь билль нам ставили разработчики и в тонкости, КАК это все делалось и зачем никто не вникал ..
А вот недавно изза технических причин пришлось срочно переносить ьиллинг с одного сервера на другой с попутным его обновлением ...
И вот тогда началось - "а как вот это работает, а почему, а это че вообще за фигня .. " ... вобщем, победили )))
Но вот скрипт фаервола как был, так и остался, никто его не менял, так как все работало... до теперишней ситуации ..

Вот эта же тема на НАГе ТУТ...
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #12 : 27 Августа 2009, 06:18:50 »

Судя по ipfw show, у тебя все очень даже шейпится Улыбающийся
Ну тогда показывай ipfw table 126 show
Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #13 : 27 Августа 2009, 11:20:07 »

В 126 таблице все нормально - там списки укр сетей ...
В 127 - ИПы тех пользователей, кому разрешен доступ к альтернативному направлению.

Не исключен вариант , конечно, что я жестко туплю .. ))

Цитировать
Сейчас временные неполадки с тестовым каналом и детально проверить немогу ...
« Последнее редактирование: 27 Августа 2009, 11:26:39 от Elisium » Записан
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #14 : 01 Сентября 2009, 01:08:51 »

Таксь .. ну наконецто закончили с каналом .. Укр инет есть в нем уже...

Конфиг:
пф.конф - такой как и был (в начале поста), рц.фаерволл - слегонца измененный - см. выше ...
Тоесть, нат на укр ифейсе включен ...
делаем "роуте адд" 1600 маршрутов из файла ...все прекрасненько добавляется, трафик бодренько бегает по укр каналу ...идиллия ..
НО!!! ... как всегда, есть одно НО ...
Этот укр трафик - НЕ СЧИТАЕТСЯ в биллинге !!! ВООБЩЕ ...
Сначала была мысль, что нетфлов не поднят на входящем интерфейсе ..потом глянул - вход то только один .. выходов много ...
И вот на этом входе - нету ната, на укр и мир сетевухах - есть ...

ВОПРОС:
КАК при текущей конфигурации считать ур трафик Непонимающий?
Спасибо заранее ..
п.с. я дето пропускаю очевидную истину, стопудово ...((((
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!