Модификация ToS/DSCP/TTL/etc. на FreeBSD: ng_patch

Jul 15, 2010 04:15

Патчи, позволяющие матчить и изменять ToS/DSCP на FreeBSD, ходят в разных вариантах по сети уже лет шесть, вот очередная инкарнация, например. К сожалению, ни один из них так и не попал в базовую систему, хотя пример по ссылке, скажем, для конкретной задачи удобнее того, что описано ниже. Даже возникает подозрение, что это всё потому, что ( Read more... )

сети, netgraph, freebsd, ipfw, админское

Leave a comment

Comments 27

ext_521046 April 22 2011, 17:30:12 UTC
сделал:

/usr/sbin/ngctl -f- <<-SEQ
mkpeer ipfw: patch 600 out
name ipfw:600 dscp_af33_out
msg dscp_af33_out: setconfig { count=2 csum_flags=1 ops=[ \
{ mode=7 value=0x03 length=1 offset=1 } \
{ mode=8 value=0x78 length=1 offset=1 } ] }
SEQ
/sbin/ipfw add 170 netgraph 700 ip from any to table\(100\)

и не помогло.
Подскажите что можно сделать ?

Reply


victor_sudakov February 15 2013, 10:59:29 UTC
А поле CoS в Ethernet 802.1q кадре можно каким-нибудь способом поменять средствами FreeBSD? Создаем интерфейс vlanXX, и дальше... Мне тут понадобился маленький стенд, который бы генерил ethernet трафик с разными значениями CoS, интересно, можно ли на FreeBSD изобразить или придется брать я даже не знаю что.

Reply

nuclight February 15 2013, 22:41:37 UTC
Вроде бы в свежем ng_vlan такое добавляли. Или то был патч, не помню... Но он точно так же цепляется к ng_ether, так что при необходимости пакеты или их набор можно изготовить самому - в man ng_source есть пример, как это делать из шестнадцатиричного набора вручную, на http://citrin.ru/my/ng_source.txt описано, как это сделать из пойманного tcpdump пакета (собсно ng_source как раз для тестовых стендов и предназначен).

Reply

victor_sudakov February 16 2013, 04:37:18 UTC
> Вроде бы в свежем ng_vlan такое добавляли.

В 9.1-STABLE не нашел.

Из пойманного пакета не интересно, мне нужна возможность на живом трафике (iperf) покрутить. Ладно, пропущу через Catalyst.

Reply

nuclight February 16 2013, 12:08:31 UTC
Ну, ng_patch в разрез между ng_vlan и ng_ether. Правда, он же все одинаково красить будет, пока программу не поменять.

Reply


ext_1149372 March 6 2013, 14:37:57 UTC
У меня на выходе пакеты все равно с неверной контрольной суммой, несмотря на csum_flags=1

ngctl msg ptch: setconfig {count=1 csum_flags=1 ops=[{mode=1 value=0x01010101 length=4 offset=26}]}

От чего это еще может зависить?

Reply

nuclight March 18 2013, 22:09:55 UTC
Судя по смещению, это почти наверняка уже за пределами заголовка IP (разве что правятся опции), так что надо ставить другое значение csum_flags, смотря какой там протокол (см. текст поста).

Reply

ivasian March 19 2013, 03:10:16 UTC
Что то мой предыдущий комментарий помечен как спам, что не так?

Reply


Leave a comment

Up