FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mkutsevol
рядовой
Сообщения: 19
Зарегистрирован: 2008-08-07 0:45:43

FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение mkutsevol » 2008-08-07 1:43:10

Доброго времени суток!
Учитался манами до упора, но не помогло :(
Задача:Есть инет через VPN (клиент - MPD5) + две сетевухи rl0 и rl1 (10.0.0.0/24 и 10.0.1.0/24). Надо мне сделать шейпер с шедулером HFSC так, чтобы он шейпил один входящий канал на две сетевухи, типа как в dummynet - там же определяется pipe и в него все пхнется, а у пайпа есть ширина. А тут же очереди определяются для каждого физического интерфейса отдельно, да и шейпит он исходящий с интерфейсов траф. Запутался я с ним. Выручите!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение freeman » 2008-08-07 15:30:03

Может начнёшь с ALTQ c CBQ ? А то про HFSC мало примеров в нете, да и сложнее он для понимания новичкам.
Остатся должен только один ...

mkutsevol
рядовой
Сообщения: 19
Зарегистрирован: 2008-08-07 0:45:43

Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение mkutsevol » 2008-08-08 20:35:41

Да моя проблема состоит не в шедулере, пусть будет CBQ.
Суть в том, что есть 2 локалки (физических интерфейса) и один канал из инета.
Нужно шейпить инет так, чтобы одина из локалок (любая) могла "доедать" канал инета если другая его недоиспользует (borrow) но borrow работает только в дереве, а дерево на очередь, а очередь на отдельный интерфейс, а у меня их два. Я подумываю можно ли запихать траф в виртуальный интерфейс (ничего пока не нашел пока такого), отшейпить его, а потом разорвать на два физических интерфейса.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение paradox » 2008-08-09 20:18:55

а кинте ваш конфиг по pf & altq

посмотреть

возможно очередь стоит делать не на локальных интерфейсах
а на инетном интерфейсе
по апиадрессам локалки

Аватара пользователя
BonDit
проходил мимо
Сообщения: 8
Зарегистрирован: 2008-05-29 23:11:49
Откуда: Ульяновск
Контактная информация:

Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение BonDit » 2008-08-10 22:45:53

Код: Выделить всё

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.

Данная конфигурация у меня работает.

mkutsevol
рядовой
Сообщения: 19
Зарегистрирован: 2008-08-07 0:45:43

Re: FreeBSD 7.0, ALTQ c HFSC на два локальных интерфейса

Непрочитанное сообщение mkutsevol » 2008-08-12 13:47:32

Спасибо, разобрался.
Уставший совсем маны читал, и решил, что шейпить можно только исходящий из физического интерфейса траф.