if_bridge + shaper
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
if_bridge + shaper
Доброго времени суток.
Столкнулся с проблемой - необходимо затянуть в шейпер часть локального трафа, заходящего на сервер через отдельную сетевую карту и медленный канал. На сервере есть еще одна сетевая с которой она сбриджована - все компы в одной подсети. И тут проблема - шейпить траф на интерфейсе который сбриджован не получается никак. Через правила фаервола пакетики бегают далеко не все, скажем так 1% от реального их количества. Гугл дал пару ссылок где говорится что фаервол и в частности дамминет вообще не работают на бридже. Посмотрел статью тут на сайте - шейпера там нету. Прошу совета, может кто сталкивался... Юзаю ядерный if_bridge, может стоит с ng_bridge повозится?
Заранее спасибо
Столкнулся с проблемой - необходимо затянуть в шейпер часть локального трафа, заходящего на сервер через отдельную сетевую карту и медленный канал. На сервере есть еще одна сетевая с которой она сбриджована - все компы в одной подсети. И тут проблема - шейпить траф на интерфейсе который сбриджован не получается никак. Через правила фаервола пакетики бегают далеко не все, скажем так 1% от реального их количества. Гугл дал пару ссылок где говорится что фаервол и в частности дамминет вообще не работают на бридже. Посмотрел статью тут на сайте - шейпера там нету. Прошу совета, может кто сталкивался... Юзаю ядерный if_bridge, может стоит с ng_bridge повозится?
Заранее спасибо
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: if_bridge + shaper
вы как бридж фильтруете, и фильтруете ли вобще?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
Бридж не фильтрую, раньше тот "медленный" (там WiFi) канал просто был воткнут в свич. Реально канал тянет около 15-16МБит но обладает одним неприятным свойством. Когда он его загрузка максимальна реско растет потеря пакетов, задержка и вообще линк начинает вести себя нестабильно. Решил пустить канал через сервер, ограничить средствами ipfw скорость, распределить трафик по приоритетам. Пропарился вчера весь вечер. Даже если первым правилом ставлю
(в rl0 воткнут тот самый WiFi)
и начинаю усиленно качать с ftp по WiFi то видно что во второе правило попало скажем сотня кб, хотя я скачал еже 10МБ. В первое итого меньше.
Пробовал включать в разных комбинациях три сисконтрола (уже сейчас не вспомню но два отвечают за фильтрацию на членах бриджа и на самом bridge0, третий net.link.bridge.ipfw кажется) не помагает
Фряха стоит обновленная недавно до 7.1-PRERELEASE
Делал все вроде стандартно:
потом
сам бридж работает, но через фаєр траф не ходит
Код: Выделить всё
allow all from any to any via rl0 in
allow all from any to any via rl0 out
и начинаю усиленно качать с ftp по WiFi то видно что во второе правило попало скажем сотня кб, хотя я скачал еже 10МБ. В первое итого меньше.
Пробовал включать в разных комбинациях три сисконтрола (уже сейчас не вспомню но два отвечают за фильтрацию на членах бриджа и на самом bridge0, третий net.link.bridge.ipfw кажется) не помагает
Фряха стоит обновленная недавно до 7.1-PRERELEASE
Делал все вроде стандартно:
Код: Выделить всё
device if_bridge в ядре
Код: Выделить всё
ifconfig bridge0 create
ifconfig bridge0 addm rl0 addm dc0 up
ifconfig dc0 10.0.20.200/24 polling up
ifconfig rl0 polling up
Последний раз редактировалось Alex Keda 2008-09-17 11:09:56, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: if_bridge + shaper
man if_bridge
раздел PACKET FILTERING смотрели?
раздел PACKET FILTERING смотрели?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
Смотрел, вот там есть такой интересный момент:
тоже не работает
Исходя из написанного пробовал делать так:When filtering is enabled, bridged packets will pass through the filter inbound on the originating interface, on the bridge interface and outbound on the appropriate interfaces.
Код: Выделить всё
add 10 count all from any to any recv rl0 xmit dc0
add 20 count all from any to any recv dc0 xmit rl0
sysctl net.link.bridge.pfil_member=1
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: if_bridge + shaper
раздел PACKET FLOW в man ipfw смотрели?
на предмет net.link.ether.bridge_ipfw
а также
на предмет net.link.ether.bridge_ipfw
а также
(yes, at the moment there is no way to differentiate between ether_demux and bdg_forward).
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
т.е. если говорить проще нифига из етой затеи не выйдет?
других методов я просто не знаю, как такое еще можно реализовать без бриджа?
других методов я просто не знаю, как такое еще можно реализовать без бриджа?
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
Я просто не уверен понимаю ли я правильно приведенную схемму
Внизу есть физические сетевые карточки. Входящий пакет допустим попадает в левый нижний "конец" и если он bridged то по пути [bdg_forward] сразу уходит на исходящий интерфейс и привет. тогда net.link.bridge.ipfw=1 должен включать фильтрование на бридже но я такого не наблюдаю
Код: Выделить всё
^ to upper layers V
| |
+----------->-----------+
^ V
[ip(6)_input] [ip(6)_output] net.inet(6).ip(6).fw.enable=1
| |
^ V
[ether_demux] [ether_output_frame] net.link.ether.ipfw=1
| |
+-->--[bdg_forward]-->--+ net.link.bridge.ipfw=1
^ V
| to devices |
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: if_bridge + shaper
ок попробуйте
все должно работать
Код: Выделить всё
sysctl net.link.bridge.pfil_bridge=1
systl net.link.bridge.ipfw=1
ipfw add count ip from any to any via bridge0
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
Вобщем победил, раскажу как победил )
WiFi линк полудуплекс, пайп и очередь одна.
Вот так работает все нормально только если ІР сервера назначен на bridge0. Если назначить любой сетевой в бридже - не работает. Если фильтровать на rl0 то ІР нужно назначать именно ей, а не bridge0 или dc0 - иначе траф от юзера до сервера или обратно не попадает в фаер. Проходящий траф юзер1-сервер-юзер2 попадает нормально.
Код: Выделить всё
net.link.bridge.ipfw=1
net.link.bridge.pfil_local_phys=1
net.link.bridge.pfil_member=0
net.link.bridge.pfil_bridge=1
Код: Выделить всё
pipe 3 config queue 50 bw 10Mbit/s
queue 5 config pipe 3 queue 50 mask src-ip 0xffffffff dst-ip 0xffffffff
add 5300 allow all from any to 10.0.20.255 via bridge0
add 5310 queue 5 all from table(2) to table(2) via bridge0
-
- сержант
- Сообщения: 188
- Зарегистрирован: 2007-12-13 1:06:44
- Откуда: г. Ровно
- Контактная информация:
Re: if_bridge + shaper
Код: Выделить всё
И тут проблема - шейпить траф на интерфейсе который сбриджован не получается никак
Код: Выделить всё
net.link.bridge.pfil_onlyip: 0
net.link.bridge.ipfw_arp: 0
net.link.bridge.pfil_bridge: 0
net.link.bridge.pfil_member: 0
net.link.bridge.pfil_local_phys: 0
net.link.bridge.log_stp: 0
net.link.bridge.ipfw: 1
Код: Выделить всё
ІР сервера назначен на bridge0
-
- ефрейтор
- Сообщения: 52
- Зарегистрирован: 2008-01-03 13:25:13
- Контактная информация:
Re: if_bridge + shaper
Предыдущий мой пост - отбой, нифига не работает. Тоесть работает но естественно режет траф на обеих интерфейсах. Фильтроватся то оно фильтруется, только мне нужно шейпить траф именно тот который пришел с rl0 и идет на любой комп локалки в том числе и на сам сервер (либо в обратную сторону) . Выловить его полностью не получается. Транзитный трафик проходящий сквозь бридж получается ловить вот так
А вот ловить траф проходящий от компов на rl0 к самому серверу не выходит. В правила типа from any to me via rl0 in траф вообще не попадает если на rl0 нет ІР адреса. Пример:
вот тут я переписал файлик 4МБ на сервер, потом скачал его с сервера (верхних 2 правила). Потом ради интереса проделал то же только на машину находящуюся по ту сторону бриджа (нижних два правила). Результат налицо. Картина поменяется если ІР сервера назначить на rl0 а не dc0 - но тогда верхние два правила сцитают траф который реально ходит через dc0, вот такой вот бардак получается с бриджами
Код: Выделить всё
count all from any to any via dc0 out bridged # траф в направлении rl0 -> dc0
count all from any to any via rl0 out bridged # траф в направлении dc0 -> rl0
Код: Выделить всё
05300 0 0 count ip from me to any via rl0 out
05310 0 0 count ip from any to me via rl0 in
05320 5434 4805939 count ip from any to any via dc0 out layer2
05330 5601 4823381 count ip from any to any via rl0 out layer2