Страница 1 из 1
FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-07 1:43:10
mkutsevol
Доброго времени суток!
Учитался манами до упора, но не помогло
Задача:Есть инет через VPN (клиент - MPD5) + две сетевухи rl0 и rl1 (10.0.0.0/24 и 10.0.1.0/24). Надо мне сделать шейпер с шедулером HFSC так, чтобы он шейпил один входящий канал на две сетевухи, типа как в dummynet - там же определяется pipe и в него все пхнется, а у пайпа есть ширина. А тут же очереди определяются для каждого физического интерфейса отдельно, да и шейпит он исходящий с интерфейсов траф. Запутался я с ним. Выручите!
Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-07 15:30:03
freeman
Может начнёшь с ALTQ c CBQ ? А то про HFSC мало примеров в нете, да и сложнее он для понимания новичкам.
Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-08 20:35:41
mkutsevol
Да моя проблема состоит не в шедулере, пусть будет CBQ.
Суть в том, что есть 2 локалки (физических интерфейса) и один канал из инета.
Нужно шейпить инет так, чтобы одина из локалок (любая) могла "доедать" канал инета если другая его недоиспользует (borrow) но borrow работает только в дереве, а дерево на очередь, а очередь на отдельный интерфейс, а у меня их два. Я подумываю можно ли запихать траф в виртуальный интерфейс (ничего пока не нашел пока такого), отшейпить его, а потом разорвать на два физических интерфейса.
Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-09 20:18:55
paradox
а кинте ваш конфиг по pf & altq
посмотреть
возможно очередь стоит делать не на локальных интерфейсах
а на инетном интерфейсе
по апиадрессам локалки
Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-10 22:45:53
BonDit
Код: Выделить всё
vpn_if = "ng0"
lan_if = "rl0"
bondit_net = "192.168.3.0/24"
server1="192.168.3.2"
server2="192.168.3.3"
#ALTQ
altq on $vpn_if cbq bandwidth 200Kb queue { bondit_out, bondik_out }
queue bondit_out bandwidth 100Kb cbq(ecn borrow)
queue bondik_out bandwidth 100Kb cbq(default ecn)
altq on $lan_if cbq bandwidth 200Kb queue { bondit_in, bondik_in }
queue bondit_in bandwidth 100Kb cbq(ecn borrow)
queue bondik_in bandwidth 100Kb cbq(default ecn)
#nat
nat on $vpn_if proto { tcp, udp icmp } from $bondit_net to any -> ($vpn_if)
# default deny
block on { $vpn_if, $lan_if } all
# правила фильтрации исходящего трафика на интерфейсе ng0
pass out on $vpn_if from $bondit_net to any keep state
pass out on $vpn_if from ($vpn_if) to any keep state queue bondit_out
pass out on $vpn_if from ($vpn_if) to any keep state queue bondik_out
# правила фильтрации входящего трафика на интерфейсе rl0
pass in on $lan_if from $bondit_net to any keep state
pass in on $lan_if from $server1 to any queue bondit_in
pass in on $lan_if from $server2 to any queue bondik_in
# правила фильтрации исходящего трафика на интерфейсе rl0
pass out on $lan_if from $lan_if to $bondit_net
Работоспособность очередей проверял так pfctl -vv -s queue и pftop -v queue.
Данная конфигурация у меня работает.
Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса
Добавлено: 2008-08-12 13:47:32
mkutsevol
Спасибо, разобрался.
Уставший совсем маны читал, и решил, что шейпить можно только исходящий из физического интерфейса траф.