Патчи, позволяющие матчить и изменять ToS/DSCP на FreeBSD, ходят в разных вариантах по сети уже лет шесть, вот
очередная инкарнация, например. К сожалению, ни один из них так и не попал в базовую систему, хотя пример по ссылке, скажем, для конкретной задачи удобнее того, что описано ниже. Даже возникает подозрение, что это всё потому, что
(
Read more... )
Comments 27
Reply
Reply
Reply
Reply
Reply
И еще один вопрос. Он работает только с ipfw или с pf тоже?
(а за статью по netgraph спасибо, буду вдумчиво читать)
Reply
Разумеется, нету. И не будет.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/index.html
> И еще один вопрос. Он работает только с ipfw или с pf тоже?
Только с ipfw, pf вообще такая нерасширяемая вещь в себе. Но в случае с pf можно прицепить к ng_ether, например, независимо от файрвола - правда, тогда пойдут изменяться все пакеты =) Можно нагородить схему с ng_tee + ng_bpf, конечно, но лично я, например, не считаю pf стоящим того.
Reply
у меня вот такая проблема :
Конфиг ngctl :
Код:
/usr/sbin/ngctl -f- <<-SEQ
mkpeer ipfw: patch 500 in
name ipfw:500 dscp_af33_in
msg dscp_af33_in: 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 160 netgraph 500 ip from table\(100\) to any
IPFW:
Код:
00160 52 4881 netgraph 500 ip from table(100) to any
ngctl :
Код:
There are 4 total nodes:
Name: ngctl37276 Type: socket ID: 00000007 Num hooks: 0
Name: ipfw Type: ipfw ID: 00000001 Num hooks: 2
Name: dscp_af33_in Type: patch ID: 00000003 Num hooks: 1
Name: dscp_af33_out Type: patch ID: 00000005 Num hooks: 1
sysctl:
Код:
net.inet.ip.fw.one_pass: 0
все ноды создаются и все без ошибок отрабатывает но после этого
трафик больше не ходит к таблице 100
по какой причине это может быть ?
Reply
Reply
1) Пакет начинает проходить правила файрвола
2) Встречается правило отправляющее на обработку в ng_patch in ( netgraph 500)
Я так понимаю что пакет выходит из ng_patch out, и по логике ему еще надо вернуться в ipfw чтобы проходить правила дальше. Куда надо подключить ng_patch out? Правило вида
00160 52 4881 netgraph 500 ip from table(100) to any
ОТПРАВЛЯЕТ пакет в netgraph но не принимает его. Даже если подключить ноду out к ng_ipfw куда придет пакет из ng_patch?
p.s. читать исходники не готов ))
Reply
connect ipfw: имя_ноды_patch: 140 out
Номер хука на ng_ipfw любой, главное, чтоб он был. Через него и вернется обратно. Информация, с какого правила продолжить по рулесету ipfw, прицеплена к пакету, имя хука здесь не играет роли.
Reply
Leave a comment