Ru-Board.club
← Вернуться в раздел «UNIX»

» OpenBSD, PF+ALTQ, проблема с правилами дочерних очередей

Автор: Dinoll
Дата сообщения: 06.10.2007 17:37
Отписал на форуме http://www.obsd.ru и дублирую сдесь ( если нельзя указывать линки на другие ресурсы прошу простить по первому разу )

Некоторое время назад задумал на шлюзе разделить внутренний и внешний трафик, как я думал тривиальная задача

в результате наваял следующий конфиг :

ext_if="xl0"
int_if="rl0"


table <trast> { 192.168.0.111, 192.168.0.50, 192.168.0.93 }

set block-policy drop
set skip on lo0
set require-order yes
set optimization normal

altq on $int_if cbq bandwidth 100Mb queue { net_in, lan_in }
queue net_in cbq bandwidth 256Kb { d, x, a }
queue d cbq ( default, borrow, red ) bandwidth 34%
queue x cbq ( borrow, red ) bandwidth 33%
queue a cbq ( borrow, red ) bandwidth 33%
queue lan_in bandwidth 90Mb cbq

################## NAT #################


nat on $ext_if from <trast> to any -> $ext_if

block in
block out


############# INTERNAL NET #############



pass in quick on $int_if from <trast> to 192.168.0.112 keep state queue lan_in

############# TRAST NET ##############
pass in on $int_if from 192.168.0.111 to { $ext_if, !192.168.0.112 } keep state queue d
pass in on $int_if from 192.168.0.50 to { $ext_if, !192.168.0.112 } keep state queue x
pass in on $int_if from 192.168.0.93 to { $ext_if, !192.168.0.112 } keep state queue a

pass out on $ext_if from $ext_if to any keep state
pass out on $int_if from $int_if to any keep state

результат приятно поразил за одним исключением, дочерние очереди ( d x a )не заимствовали полосу у родительской ( net_in ) после недели неудачных экспириментов, перечитав ещё раз форум на www.obsd.ru написал конфиг практически 1 в 1 как у уважаемого lector'a ( 2 пост http://www.obsd.ru/cgi-bin/forum.cgi?op=view_thread;board=5;thread=474 ) конфиг с виртуальной машины но различия только в именах ифейсов и айпишках, также перепроверялся и на реальной машине


ext_if="pcn1"
int_if="pcn0"


table <trast> { 192.168.136.1, 192.168.136.50, 192.168.136.93 }

set block-policy drop
set skip on lo0
set require-order yes
set optimization normal

altq on $int_if tbrsize 1 cbq bandwidth 100Mb queue { net_in, lan_in }
queue net_in bandwidth 256Kb { d, x, a }
queue d bandwidth 25% priority 2 cbq(borrow)
queue x bandwidth 25% priority 1 cbq(borrow)
queue a bandwidth 50% priority 4 cbq(borrow)
queue lan_in bandwidth 90Mb cbq(default)

################## NAT #################


nat on $ext_if from <trast> to any -> $ext_if

pass in
pass out


############# INTERNAL NET #############

pass out quick on $int_if from ($int_if) to <trast> queue lan_in

############# TRAST NET ##############

pass out on $int_if from any to 192.168.136.1 queue d
pass out on $int_if from any to 192.168.136.50 queue x
pass out on $int_if from any to 192.168.136.93 queue a

pass out on $ext_if from $ext_if to any keep state
pass out on $int_if from $int_if to any keep state

результат тотже, незаимствуется полоса
Гдето я ошибаюсь, понять где немогу, помогите плз, вера в волшебный бубен практически утеряна

PS. OpenBSD 4.0 / i386

Страницы: 1

Предыдущая тема: Выбор платформы под File-server


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.