Страница 1 из 1
установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-03 11:22:02
57EA17h
Доброго времени суток.
Возникла необходимость накладывать различные правила на обработку трафика в зависимости от того, откуда он пришел. Проблема в том, что есть NAT, соответственно на точке, где трафик обрабатывается нет возможности обрабатывать адрес источника.
Логично в этом случае отклассифицировать трафик на нате, установив DSCP биты в зависимости от классов сервиса и уже потом их использовать для наложения правил. NAT выполняется на машинке:
Код: Выделить всё
FreeBSD host.domen.ru 7.2-RELEASE-p6 FreeBSD 7.2-RELEASE-p6
при помощи ng_nat.
Так вот, внимательно читая маны по ipfw так и не нашел возможности работы с DiffServ битами. С помощью гугла нашел лишь патч к ядру от 2006 года:
http://www.freebsd.org/cgi/query-pr.cgi?pr=102471
Так понимаю, что особого смысла от него уже нет. Подскажите, в какую сторону копать с текущей версией FreeBSD для работы с DSCP?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-05 12:47:41
57EA17h
up!
Неужели никто не занимался хотя бы QoS на фре? Должен же быть в сетевой ОСи подобный инструментарий?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-09 19:41:55
lolwut
ЕМНИМС фря не умеет DSCP ставить ... красьте трафик на свиче в который она воткнута (D-Link DES-3526 100% позволяет и COS и DSCP менять ну или каталиста ставьте)
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-31 15:03:18
57EA17h
Видимо да... В крайнем случае я тоже дошел до такой же мысли..
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-31 15:11:31
terminus
ipfw tag не поможет разве?

Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-03-31 19:57:47
lolwut
terminus писал(а):ipfw tag не поможет разве?

man ipfw
man ipfw писал(а):
tag number
When a packet matches a rule with the tag keyword, the numeric
tag for the given number in the range 1..65534 will be attached
to the packet. The tag acts as an internal marker (it is not
sent out over the wire) that can be used to identify these pack-
ets later on.
внимательно читаем выделенный текст
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-04-05 22:51:51
budmo
Похожую задачу для внутреннего трафика решал с помощью TTL.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-14 8:24:15
orlov
Up-аю тему. Ибо актуально. Есть задача. Одна из составляющей задачи - анализ полей DSCP в пакетах. Т.е. в качестве бордера стоит FreeBSD. В ядре есть несколько маршрутизаторов Cisco. В моем случае циски раскрашивают трафик маркерами DSCP, а бордер на базе FreeBSD должен реагировать на выставленные маркеры и что-то делать с тарфиком. Есть куча мэйл-листов, где часто отписывается некий Вадим Гончаров. Отписал ему на мыло, пока молчит. Патч вроде какой-то нагуглил. Применил. Эффекта ноль. Функционала DSCP в ipfw не появилось. Может кто-то уже делал?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-14 12:20:52
lolwut
2 orlov
сэр, у Вас, к сожалению, всего 2 пути - поставить в качестве бордера:
1. линух, т.к. оно вроде знает про метки
2. циску (тут Вы все и сами знаете

)
потому что на фре пока нет гарантированно рабочего решения для работы с ToS/DSCP

по крайней мере я не встречал, а все что когда-то пробывал толком не работало да и не актуально оно уже, т.к. было во времена то ли последних 4-х версий, то ли первых 5-х ...
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-14 15:13:33
orlov
ну ipprecedence точно работает. Ладно, попробую. Может чего получится.
Тестовый стенд-то уже собрал.

Не пропадать же добру.
Много где говорят, что и dummynet хреново работает.
Но
Код: Выделить всё
[root@Gate /]# uname -a
FreeBSD Gate 7.2-RELEASE FreeBSD 7.2-RELEASE #3: Mon Feb 8 15:15:05 UTC 2010 admin@Gate:/usr/src/sys/i386/compile/PAE i386
[root@Gate /]#
и
Код: Выделить всё
[root@Gate /]# ipfw pipe show | grep ip | wc -l
4714
[root@Gate /]#
Отпишусь вобщем о результатах.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-18 5:25:52
orlov
На данный момент новости такие.
Сегодняшний ipfw умеет только заглядывать в поле ToS и анализировать только биты IPprecedence.
Код: Выделить всё
[root@test /etc]# ipfw show
65000 22787950 18275284714 allow ip from any to any
65535 32 1752 deny ip from any to any
[root@test /etc]# ipfw add 00100 count ip from any to any ipprecedence 5
00100 count ip from any to any ipprecedence 5
[root@test /etc]# ipfw show
00100 0 0 count ip from any to any ipprecedence 5
65000 22788652 18275831521 allow ip from any to any
65535 32 1752 deny ip from any to any
[root@test /etc]#
Менять их нельзя. Нужно накладывать патч для того, чтобы ipfw умел менять эти биты.
Списался с Marcelo Araujo, который в 2008 году разработал patch для ipfw, который позволяет утсанавливать биты IPprecedence и DSCP в поле ToS пакетов.
Он указал на то, что его патч работает только с ipfw revision number 1.118.
Сказал, что нужно собрать ipfw именно этой ревизии. Подскажите кто-нидь, как узнать номер ревизии существующего ipfw и как собрать ipfw нужной ревизии.
Сам не могу допереть. Marcelo указал на то, что можно это сделать через cvsup. Сам давно пользуюсь cvsup-without-gui, но вот как сдернуть исходники ipfw определенной ревизии не знаю. Гугл и маны не помогли особо.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-20 12:40:34
FreeBSP
а теги vlan не выход?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-25 4:09:23
orlov
FreeBSP писал(а):а теги vlan не выход?
Чета не понял. Вы о CoS чтоле, в смысле спецификация 802.1p?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-25 11:56:42
BlackCat
57EA17h, посмотрите в сторону pf, конкретнее: работа с полем ToS. Это не самый лучший выход - использовать левый МСЭ, но за-то быстрый.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 2:19:38
orlov
А можно ссылочку хоть какую-нибудь?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 2:20:34
orlov
И еще, люди, может все-таки кто-то знает как сдернуть исходники ipfw определенной ревизии?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 7:11:58
BlackCat
orlov писал(а):А можно ссылочку хоть какую-нибудь?
Конечно, вот она:
man pf.conf, далее - поиском по фразе "tos".
Странно, имеется подозрение, что под FreeBSD отсутствует возможность установки флагов. Вот оригинальное обсуждение OpenBSD версии:
http://groups.google.com/group/bit.list ... wc=1&pli=1.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 7:50:00
orlov
Совершенно верно. В том-то и дело, что существующие механизмы позволяют только заглядывать в поле ToS, но нужно как раз вытсавить значение в этом поле.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 8:44:05
BlackCat
orlov писал(а):Совершенно верно. В том-то и дело, что существующие механизмы позволяют только заглядывать в поле ToS, но нужно как раз вытсавить значение в этом поле.
Тогда остаётся модификация исходников, но здесь могу помочь только добрым словом. Или в качестве другой крайней меры - смена ОС/железа.
=====
В своём первом сообщении вы писали:
orlov писал(а):бордер на базе FreeBSD должен реагировать на выставленные маркеры и что-то делать с тарфиком
, теперь потребовалось ещё и выставлять метки?
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-05-26 9:14:08
orlov
Да, согласен. Чуть не так задачу расписал.
Надо как раз средствами FreeBSD раскрасить трафик величинами ToS.
Железо сменить не получится у меня. На циску денег пока не дают. Так что надо решать теми средствами, что есть. Сейчас жду ответа Marcello по поводу сбора ipfw определенной ревизии, сказал, что поможет. О результатах конечно отпишусь
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-07-16 18:52:34
terminus
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-07-17 6:57:18
orlov
угу, зергут. Спасибо.
Вадим таки добился коммита. Молоток. Надо теперь будет попробовать.
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2010-07-19 14:17:23
FreeBSP
найс

)
Re: установка флагов DSCP в IP пакетах во FreeBSD
Добавлено: 2014-10-04 13:24:23
s3men
Наткнулся на необходимость установки dscp во фряхе, напоролся на вашу статейку.
Возрадуемся, в 10-RELEASE закомиттили код по работе с dscp:
https://wiki.freebsd.org/WhatsNew/FreeBSD10
экшн ipfw setdscp для установки
и паттерн dscp для проверки