Elisium
NoDeny
Старожил
Карма: 19
Offline
Сообщений: 360
На форумах "спасибом" называется плюс к карме.
|
|
« : 24 Августа 2009, 19:23:31 » |
|
Всем доброго дня .. Понимаю, что вопрос немного не по теме биллинга, но тесно с ним связан ...
Ситуация такая: Есть билль 50.19. В нем уже настроено разделение трафика на Укр и мир. Файл с укр сетями заносится в 126ю таблицу ipfw. Есть шлюзовой сервер - одна штука .. На нем крутятся сателлиты доступа и авторизации. В файле rc.firewall - второй пример из доки по биллю, подправленый для работы с Нетфлов ... На шлюзовом сервере есть три сетевухи - локалка, инет Мир и инет Украина (ненастроено)... Сейчас все работает стандартно - на Мире нат (pf), с Мира в локалку пробрасываются бинатом белые ИПы ...
Сейчас провели и подключили в шлюз канал сугубо с укр трафиком. Если (для теста) добавить какойнить роут в укр подсеть (например, 77.88.0.0/16), то трэйс со шлюза показывает, что пинги в ту подсеть ходят через укр канал, НО пинги ЗА шлюзом, с локалки, на тот же узел ходить перестают .. Из мыслей по этому поводу у меня есть только то, что на укр интерфейсе не поднят нат ...
Так вот вопрос: КАК ПРАВИЛЬНО организовать такую схему ?
Почитавши кучу других форумов, нашел, что для этого используют PBR, но во всех тестовых примерах два канала используют либо для балансировки нагрузки, либо пробрасывают НЕКОТОРЫЕ сервисы во второй канал ... Мне же нужно роутить украинские сети в укр канал, все остальное - в мировой канал .. п.с. Своей АС у нас нету, БГП не подходит ..
Наверняка на этом форуме есть люди, у которых сделано что нибудь похожее .. Может кто поделится кусочком конфига, подходящим для подобного ? Или культурно толкнет в нужном направлении?
Заранее спасибо ...
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #1 : 24 Августа 2009, 23:39:51 » |
|
если бы условная схемка всего этого, включая того кто пингует и какой ип...
|
|
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
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
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #3 : 25 Августа 2009, 05:58:32 » |
|
В фаервол добавить и все строчки, содержащие $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
Сообщений: 360
На форумах "спасибом" называется плюс к карме.
|
|
« Ответ #4 : 25 Августа 2009, 20:00:53 » |
|
Спасибо! Вечерком, как час пик немного пройдет, попробую ... Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?
И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((
|
|
|
Записан
|
|
|
|
elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #5 : 25 Августа 2009, 20:40:30 » |
|
Спасибо! Вечерком, как час пик немного пройдет, попробую ... Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?
И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((
ну вообще-то тама должно быть поэтому делай BGP-маршрутизацию
|
|
|
Записан
|
|
|
|
t0ly
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 9
|
|
« Ответ #6 : 26 Августа 2009, 15:05:33 » |
|
Спасибо! Вечерком, как час пик немного пройдет, попробую ... Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ?
И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю (((
ничего ему не будет от 1.5к маршрутов, разве что при старте будет на несколько секунд должше загружатся. по сабжу вообще нужно просто поднять нат на интерфейсе в УА-ИКС и всё.
|
|
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
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
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #8 : 26 Августа 2009, 19:37:10 » |
|
а зачем в нетграф заворачиваешь трафик? и зачем тебе setfib нужно?
|
|
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
Offline
Сообщений: 360
На форумах "спасибом" называется плюс к карме.
|
|
« Ответ #9 : 26 Августа 2009, 20:07:27 » |
|
Настройка фаерволов пока что для меня темный лес, хотя разбираюсь потихоньку .. Там, где в конфиге сетфиб, так это комментарии ) А строки с ifOut2 добавил согласно Вашему рецепту .. Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой.
|
|
« Последнее редактирование: 26 Августа 2009, 21:20:32 от Elisium »
|
Записан
|
|
|
|
elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #10 : 26 Августа 2009, 21:47:29 » |
|
Настройка фаерволов пока что для меня темный лес, хотя разбираюсь потихоньку .. Там, где в конфиге сетфиб, так это комментарии ) А строки с ifOut2 добавил согласно Вашему рецепту .. Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой. должно все нормально работать!!! и все шейпить! ну тогда ipfw list и ipfw show давай сюда з.ы. так зачем в нетграф заворачиваешь траф?
|
|
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
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
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #12 : 27 Августа 2009, 06:18:50 » |
|
Судя по ipfw show, у тебя все очень даже шейпится Ну тогда показывай ipfw table 126 show
|
|
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
Offline
Сообщений: 360
На форумах "спасибом" называется плюс к карме.
|
|
« Ответ #13 : 27 Августа 2009, 11:20:07 » |
|
В 126 таблице все нормально - там списки укр сетей ... В 127 - ИПы тех пользователей, кому разрешен доступ к альтернативному направлению. Не исключен вариант , конечно, что я жестко туплю .. )) Сейчас временные неполадки с тестовым каналом и детально проверить немогу ...
|
|
« Последнее редактирование: 27 Августа 2009, 11:26:39 от Elisium »
|
Записан
|
|
|
|
Elisium
NoDeny
Старожил
Карма: 19
Offline
Сообщений: 360
На форумах "спасибом" называется плюс к карме.
|
|
« Ответ #14 : 01 Сентября 2009, 01:08:51 » |
|
Таксь .. ну наконецто закончили с каналом .. Укр инет есть в нем уже... Конфиг:пф.конф - такой как и был (в начале поста), рц.фаерволл - слегонца измененный - см. выше ... Тоесть, нат на укр ифейсе включен ... делаем "роуте адд" 1600 маршрутов из файла ...все прекрасненько добавляется, трафик бодренько бегает по укр каналу ...идиллия .. НО!!! ... как всегда, есть одно НО ... Этот укр трафик - НЕ СЧИТАЕТСЯ в биллинге !!! ВООБЩЕ ... Сначала была мысль, что нетфлов не поднят на входящем интерфейсе ..потом глянул - вход то только один .. выходов много ... И вот на этом входе - нету ната, на укр и мир сетевухах - есть ... ВОПРОС:КАК при текущей конфигурации считать ур трафик ? Спасибо заранее .. п.с. я дето пропускаю очевидную истину, стопудово ...((((
|
|
|
Записан
|
|
|
|
|