Здравствуйте уважаемые специалисты!Помогите мне пожалуйста с таким вопросом: Есть у меня роутер на фре, на котором работает астериск.
Этот же роутер маршрутизирует внутрилановый трафик. Фаер - ipfw.Итого в роутер входят 3 гигабитных линка em1, em2, em3 с локалками и 100 мбитный симметричный канал от провайдера em0.
Так вот я хочу зарезервировать под астерисковый транк до сип прова выделенную полосу. Чтобы качатели торрентов не ухудшали качество телефонной связи. Хочу значит 10 Мбит астериску и 90 под раздачу интернета в локалку.
Как это сделать? Я может быть просто торможу, вроде везде просто и понятно написано:
${fw} add ipfw pipe 1 config bw 90Mbit/s # для LAN in
${fw} add ipfw pipe 2 config bw 90Mbit/s # для LAN out${fw} add ipfw pipe 11 config bw 10Mbit/s # для Aster in
${fw} add ipfw pipe 12 config bw 10Mbit/s # для Aster outДальше загонять в нужную трубу нужный трафик
${fw} add pipe 1 ip from any to table\(1\) out # входящий в LAN из внешки
${fw} add pipe 2 ip from table\(1\) to any in # исходящий из LAN во внешку${fw} add pipe 11 ip from any to ${asterip} out # входящий в Aster из внешки
${fw} add pipe 12 ip from ${asterip} to any in # исходящий из Aster во внешкуТак вот тут у меня такие вопросы:
1. Эти трубы не получится что межлановый трафик тоже порежется до 90мбит?
2. Пакеты от ip телефонов до астера будут подпадать под обе трубы
3. В описании шейпинга можно ли указать интерфейс внешний типа
${fw} add pipe 1 ip from any to table\(1\) out via em0
чтобы внутрилокальный трафик никак в трубы не загонялся?Помогите пожалуйста решить весь этот сумбур в голове.
> Я может быть просто торможу, вроде везде просто и
> понятно написано:
> ${fw} add ipfw pipe 1 config bw 90Mbit/s # для LAN in
> ${fw} add ipfw pipe 2 config bw 90Mbit/s # для LAN out
> ${fw} add ipfw pipe 11 config bw 10Mbit/s # для Aster in
> ${fw} add ipfw pipe 12 config bw 10Mbit/s # для Aster outты действительно тормозишь, зачем пихать в трубу то, что ты хочешь защитить от затыка - пихай в трубу все остальное
>[оверквотинг удален]
> ${fw} add pipe 1 ip from any to table\(1\) out # входящий
> в LAN из внешки
> ${fw} add pipe 2 ip from table\(1\) to any in #
> исходящий из LAN во внешку
> ${fw} add pipe 11 ip from any to ${asterip} out # входящий
> в Aster из внешки
> ${fw} add pipe 12 ip from ${asterip} to any in #
> исходящий из Aster во внешку
> Так вот тут у меня такие вопросы:
> 1. Эти трубы не получится что межлановый трафик тоже порежется до 90мбит?как настроишь так и порежется
> 2. Пакеты от ip телефонов до астера будут подпадать под обе трубы
ну дак я понимаю проблема больше не в пайпах, а в понимание работы ipfw
> 3. В описании шейпинга можно ли указать интерфейс внешний типа
> ${fw} add pipe 1 ip from any to table\(1\) out via em0попадание в пайп определяется обычными правилами ipfw
> чтобы внутрилокальный трафик никак в трубы не загонялся?надо бы таки определится с терминологией - если пакет прошел роутер, то он уже в любом случае не локальный
> Помогите пожалуйста решить весь этот сумбур в голове.
1) нарисовать схему что и как ходит
2) нарисовать схему что и как должно ходить
3) настроить пайпы исходя из №2
4) начать с простых правил и двигаться дальше в случае успеха
> ты действительно тормозишь, зачем пихать в трубу то, что ты хочешь защитить
> от затыка - пихай в трубу все остальноеЧертовски внезапная, абсолютно понятная и совершенно очевидная мысль. Спасибо!
> ну дак я понимаю проблема больше не в пайпах, а в понимание
> работы ipfwНу да, есть такое. Не уверен на 100% в знании инструмента. Но разбираюсь потихоньку, готовых решений не прошу. Спрашиваю совета лишь по непонятным моментам.
> 1) нарисовать схему что и как ходит
> 2) нарисовать схему что и как должно ходить
> 3) настроить пайпы исходя из №2
> 4) начать с простых правил и двигаться дальше в случае успехаЕсли я благодаря твоей идее №1, сделаю трубы на 90Мбит и таблицы:
table 1: все адреса которые должны быть загнаны в трубу
LAN_1/24
LAN_2/24
LAN_3/24table 2: все адреса которые находятся в локальной сети. Т.е. table(1) + ASTER_IP/32
ASTER_IP/32
LAN_1/24
LAN_2/24
LAN_3/24то верной ли будет схема:
${fw} add pipe 1 ip from not table\(2\) to table\(1\) out # входящий из инета
${fw} add pipe 2 ip from table\(1\) to not table\(2\) in # исходящий в инет
Ещё один вопрос по этой же теме. Что более правильно для качества asterisk'а:
1. Выделить из провайдерского канала кусок полосы только для него (запихав всё остальное в трубу)
2. Повысить приоритет в очереди для пакетов астериска в общем со всеми канале?
> Ещё один вопрос по этой же теме. Что более правильно для качества
> asterisk'а:
> 1. Выделить из провайдерского канала кусок полосы только для него (запихав всё
> остальное в трубу)да
> 2. Повысить приоритет в очереди для пакетов астериска в общем со всеми
> канале?бесполезно.
Все просто. Делай per-interface acl. На внешнем на выходе до Ната, на внешнем на входе - после Ната, через call/return заворачиваеш траф в dummynet. Там используя fq_codel & weight назначаеш нужным таблицам приоритет. Никаких жестких лимитов трафика уже не делай, за окном 2018...
Астер лучше запихнуть в jail/VIMAGE. Я этот подход тспользую, качай торрентом сколько хош пинг как был 6 мс так и остается.
> Все просто. Делай per-interface acl. На внешнем на выходе до Ната, на
> внешнем на входе - после Ната, через call/return заворачиваеш траф в
> dummynet. Там используя fq_codel & weight назначаеш нужным таблицам приоритет. Никаких
> жестких лимитов трафика уже не делай, за окном 2018...
> Астер лучше запихнуть в jail/VIMAGE. Я этот подход тспользую, качай торрентом сколько
> хош пинг как был 6 мс так и остается.Всё бы ничего, но это же линуксовый вариант, а у меня роутер уже на фре и астериск как раз в клетке и запускается.
Мигрировать на другую ОС может и вариант, но точно один из последних, если только имеющимися средствами не удастся это устаканить. А так-то этот fq_code1 интересная штука. Есть что-то подобное на фре?
> Всё бы ничего, но это же линуксовый вариант, а у меня роутер
> уже на фре и астериск как раз в клетке и запускается.Сам себе и отвечу, вот же https://lists.freebsd.org/pipermail/freebsd-ipfw/2016-Februa...
Сейчас ещё разберусь есть ли он в -stable, и может действительно попробую.> Мигрировать на другую ОС может и вариант, но точно один из последних,
> если только имеющимися средствами не удастся это устаканить. А так-то этот
> fq_code1 интересная штука. Есть что-то подобное на фре?Уже понял что дурак :)
А теперь самое интересное: на ВХОДЯЩИЙ (от провайдера до вас) трафик вы особо повлиять не сможете.
Трюки с шейпингом в направлении локалки - это надежда на то, что congestion control-алгоритмы (в первую очередь, конечно, TCP) сделают все нужное, когда поймут, что что-то не так. Но это ровно до тех пор, пока не появится какой-нибудь сломанный юдипишный uTP, который кладет болт на контроль перегрузок.
Да, входящий трафик лучше шейпить/приоритизировать на выходе внутреннего интерфейса. Но как быть, если у тебя 2 десятка внутренних epair, которые не соединены в мост, а в свей подсети, плюс интерфейсы внутренние в своих подсетях. Короче менее геморно приоритизировать на внешнем после Ната, когда видны реальные адреса. Как показывает практика с этим никаких проблем в случае приоритизации без жестого шейпинга.
> Да, входящий трафик лучше шейпить/приоритизировать на выходе внутреннего интерфейса.Товарищ так то имел ввиду, что бесполезно шейпером баловаться когда у тебя на канале флуд стоит ....