Название: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 24 Августа 2009, 19:23:31 Всем доброго дня ..
Понимаю, что вопрос немного не по теме биллинга, но тесно с ним связан ... Ситуация такая: Есть билль 50.19. В нем уже настроено разделение трафика на Укр и мир. Файл с укр сетями заносится в 126ю таблицу ipfw. Есть шлюзовой сервер - одна штука .. На нем крутятся сателлиты доступа и авторизации. В файле rc.firewall - второй пример из доки по биллю, подправленый для работы с Нетфлов ... На шлюзовом сервере есть три сетевухи - локалка, инет Мир и инет Украина (ненастроено)... Сейчас все работает стандартно - на Мире нат (pf), с Мира в локалку пробрасываются бинатом белые ИПы ... Сейчас провели и подключили в шлюз канал сугубо с укр трафиком. Если (для теста) добавить какойнить роут в укр подсеть (например, 77.88.0.0/16), то трэйс со шлюза показывает, что пинги в ту подсеть ходят через укр канал, НО пинги ЗА шлюзом, с локалки, на тот же узел ходить перестают .. Из мыслей по этому поводу у меня есть только то, что на укр интерфейсе не поднят нат ... Так вот вопрос: КАК ПРАВИЛЬНО организовать такую схему ? Почитавши кучу других форумов, нашел, что для этого используют PBR, но во всех тестовых примерах два канала используют либо для балансировки нагрузки, либо пробрасывают НЕКОТОРЫЕ сервисы во второй канал ... Мне же нужно роутить украинские сети в укр канал, все остальное - в мировой канал .. п.с. Своей АС у нас нету, БГП не подходит .. Наверняка на этом форуме есть люди, у которых сделано что нибудь похожее .. Может кто поделится кусочком конфига, подходящим для подобного ? Или культурно толкнет в нужном направлении? Заранее спасибо ... Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Efendy от 24 Августа 2009, 23:39:51 если бы условная схемка всего этого, включая того кто пингует и какой ип...
Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 25 Августа 2009, 01:55:35 (http://s58.radikal.ru/i159/0908/e4/d0da659e687bt.jpg) (http://radikal.ru/F/s58.radikal.ru/i159/0908/e4/d0da659e687b.jpg.html)
Пардон за изобразительное искусство )) На bge1 висит укр точка обмена трафиком - UA-IX, на em1 - мировой канал, который ТОЖЕ подключен к уа-икс ... Пров с миром дает пару пулов белых ип - десяток адресов в 80.93. сети и несколько сотен в 78.154. сети .. Пров с украиной дает только один ип и шлюз ... Содержимое пф.конф Код: int_if="em0" Содержимое rc.firewall Код: #!/bin/sh - Список укр сетей берется тут - http://www.colocall.net/uaix/prefixes.txt Если на шлюзе прописать роут в одну из этих сетей, допустим 77.90.192.0/18 и сделать трэйс узла bt.tracker.0day.kiev.ua со ШЛЮЗА, то он покажет, что трафик идет через ифейс bge1 - укр канал. В тоже время со стороны локалки em0 пинг на тот же узел пропадает. Если роут удалить, то трэйс пойдет через мировой канал и пинги с локалки будут .. Вот такая ситуёвина .. ((( У меня есть только идея разнести это все хозяйство на две машины - нат на мировом канале и шэйпер на одну, с нее роутами заворачивать укр трафик на машину с натом на укр канале .. Может я где прозевал очевидную мысль ? вроде ж вопрос не нов, но реальных примеров, как ни странно, не нашел .. п.с. ах да - биллинг 50.19 на фре 7.2 ... Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: elite от 25 Августа 2009, 05:58:32 В фаервол добавить
Код: ifOut2='bge1' В pf добавить Код: nat pass on bge1 from {192.168.0.0/16,10.0.0.0/8} to any -> $ua_if Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 25 Августа 2009, 20:00:53 Спасибо! Вечерком, как час пик немного пройдет, попробую ...
Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ? И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю ((( Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: elite от 25 Августа 2009, 20:40:30 Спасибо! Вечерком, как час пик немного пройдет, попробую ... ну вообще-то тама должно бытьКстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ? И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю ((( Код: 3591 accepted prefixes поэтому делай BGP-маршрутизацию Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: t0ly от 26 Августа 2009, 15:05:33 Спасибо! Вечерком, как час пик немного пройдет, попробую ... Кстати - в файле с укр маршрутами этих самых маршрутов больше полутора тысяч .. Не поплохеет ли шлюзу от такого неожиданного наплыва "счастья" ? И еще - если все эти маршруты есть в 126й таблице ipfw, нельзя ли както с его помощью делать роутинг ? Потому что route add ~1500 маршрутов представляю с трудом (((( Такой вариант задачи попался впервые, поэтому все туго воспринимаю ((( ничего ему не будет от 1.5к маршрутов, разве что при старте будет на несколько секунд должше загружатся. по сабжу вообще нужно просто поднять нат на интерфейсе в УА-ИКС и всё. Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 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 Кстати - у чего приоритет выше ? у ипфв или у таблицы маршрутов ? Если у ипфв, то почему нету шейпов и блокировок ? ( п.с. вот в ЭТОЙ (http://groups.google.com.ua/group/nodeny/browse_thread/thread/733b0bd03a743ce4?hl=ru#) теме ув. тов. elite сделал наброски этого же вопроса, но с помощью setfib .. это тоже самое, что я сейчас пытаюсь сделать ? Там, в принципе, задача похожа, реализация другая .. Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: elite от 26 Августа 2009, 19:37:10 а зачем в нетграф заворачиваешь трафик? и зачем тебе setfib нужно?
Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 26 Августа 2009, 20:07:27 Цитировать Настройка фаерволов пока что для меня темный лес, хотя разбираюсь потихоньку .. Там, где в конфиге сетфиб, так это комментарии ) А строки с ifOut2 добавил согласно Вашему рецепту .. Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой. Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: elite от 26 Августа 2009, 21:47:29 Цитировать Настройка фаерволов пока что для меня темный лес, хотя разбираюсь потихоньку .. Там, где в конфиге сетфиб, так это комментарии ) А строки с ifOut2 добавил согласно Вашему рецепту .. Мне нужен шейпинг и блок трафика в укр канале, такой же, как и в мировом. Тоесть для основного направления - свой, для альтернативного - свой. и все шейпить! ну тогда ipfw list и ipfw show давай сюда з.ы. так зачем в нетграф заворачиваешь траф? Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 26 Августа 2009, 21:58:09 ipfw list
Код: [root@gate /usr/local]# ipfw list ipfw show Код: [root@gate /usr/local]# ipfw show Насколько я понял про нетграф, то там сливается статистика по нетфлов... Собрано из примера в документации ... Скажу так - весь билль нам ставили разработчики и в тонкости, КАК это все делалось и зачем никто не вникал .. А вот недавно изза технических причин пришлось срочно переносить ьиллинг с одного сервера на другой с попутным его обновлением ... И вот тогда началось - "а как вот это работает, а почему, а это че вообще за фигня .. " ... вобщем, победили ))) Но вот скрипт фаервола как был, так и остался, никто его не менял, так как все работало... до теперишней ситуации .. Вот эта же тема на НАГе ТУТ (http://forum.nag.ru/forum/index.php?showtopic=50797)... Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: elite от 27 Августа 2009, 06:18:50 Судя по ipfw show, у тебя все очень даже шейпится :)
Ну тогда показывай ipfw table 126 show Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 27 Августа 2009, 11:20:07 В 126 таблице все нормально - там списки укр сетей ...
В 127 - ИПы тех пользователей, кому разрешен доступ к альтернативному направлению. Не исключен вариант , конечно, что я жестко туплю .. )) Цитировать Сейчас временные неполадки с тестовым каналом и детально проверить немогу ... Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 01 Сентября 2009, 01:08:51 Таксь .. ну наконецто закончили с каналом .. Укр инет есть в нем уже...
Конфиг: пф.конф - такой как и был (в начале поста), рц.фаерволл - слегонца измененный - см. выше ... Тоесть, нат на укр ифейсе включен ... делаем "роуте адд" 1600 маршрутов из файла ...все прекрасненько добавляется, трафик бодренько бегает по укр каналу ...идиллия .. НО!!! ... как всегда, есть одно НО ... Этот укр трафик - НЕ СЧИТАЕТСЯ в биллинге !!! ВООБЩЕ ... Сначала была мысль, что нетфлов не поднят на входящем интерфейсе ..потом глянул - вход то только один .. выходов много ... И вот на этом входе - нету ната, на укр и мир сетевухах - есть ... ВОПРОС: КАК при текущей конфигурации считать ур трафик ???? Спасибо заранее .. п.с. я дето пропускаю очевидную истину, стопудово ...(((( Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Efendy от 01 Сентября 2009, 09:36:45 Из доки:
Цитировать В веб-адмике, в настройках коллекторов вместо порта «8888» укажите «8888:1», где 1 - порядковый номер внешнего интерфейса при выводе ifconfig (нумерация с единицы). Благодаря указанию внешнего интерфейса, у вас получится универсальная схема, при которой вы можете задействовать любое количество маршрутизаторов и при этом корректно регистрировать локальный трафик. Если внешних интерфейсов несколько, то их необходимо перечислить через запятую, например: «8888:1,3». Во втором столбце обязательно укажите комментарий начинающийся с «netflow:»! Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 01 Сентября 2009, 22:24:46 Хм ... Сначала было просто 8888:2 ... теперь стало "8888:2,4 netflow:10.0.121.1"
В ифконфиге интерфейсы идут так "ем0 ем1 бге0 бге1 ло0". ем1 и бге1 - это соотв мир и укр каналы провайдеров .. Не считает (((( Качаю с мира метров 10 - через пару мин гдето 10 и появляется ... Скачал с Украины 10 гиг - добавилось вообще копейки .. В направлениях забито вот это: Код: Направление 1 Общий трафик Причем, если в настройках клиента выставить "Заблокирован", то все норм - клиент блокируется .. А вот сети из списка file:/usr/local/nodeny/uaix.txt упорно не хотят считаться (( Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 02 Сентября 2009, 22:27:01 Посмотрел, че выдает flow-capture. А он показывает, что инфа идет через 1,2 и 4й интерфейсы ...
НО - 2й - считает, а 4й - НЕТ (( Уважаемые разработчики, в чем ЕЩЕ может быть загвоздка ? (ээ .. кроме фразы про кривые руки :-X) п.с. весь конфиг расписан выше ... п.п.с. во вложении - кусок файла, выдаваемого flow-capture. Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Efendy от 03 Сентября 2009, 04:03:25 Если в netflow потоке нет инфы по нужному интерфейсу - значит она туда не поступает.
ipfw add 505 count ip from any to any via bge1 скачай чтонить с UA-IX И потом ipfw show 505 Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 03 Сентября 2009, 11:15:54 Код: [root@gate /usr/home/]# ipfw show 505 Цитировать Если в netflow потоке нет инфы по нужному интерфейсу - значит она туда не поступает. В нетфлов ЕСТЬ инфа по 4му интерфейсу, я ниже писАл ... Инфа есть, а подсчета нет (( п.с. через укр канал трафик бегает очень шустро и много ... Но пользователи уже заметили такую шАру ... Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Efendy от 03 Сентября 2009, 12:06:21 Не заметил.
Покажи netflow_8888.pl Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Elisium от 03 Сентября 2009, 16:54:47 Код: #!/usr/bin/perl Название: Re: "Мир" и "Украина" - как сделать правильный роутинг ? Отправлено: Efendy от 04 Сентября 2009, 08:43:07 1) Трафик вообще из ua-ix не считается или считается как внешний?
2) Если произвести проверку адреса на клиентской статистике, то правильно относит к классу UA-IX 3) Покажи кусок flow-export-f2 -mdoctets,srcaddr,dstaddr,input,output,srcport,dstport,prot < /var/db/flows/flow_file Вместо flow_file укажи реальный файл |