PF+ALTQ странность с очередями

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 4:51:33

FreeBSD 6.3 + PF + ALTQ
pf.conf
vr0 - внутрисетевой интерфейс
vr1 - интерфейс 1Mbit инета

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

altq on vr0 cbq bandwidth 100Mb queue { lan adsl }  
    queue lan bandwidth 98Mb cbq(borrow) 
    queue adsl bandwidth 1024Kb { alla in64 } 
        queue alla cbq(default borrow) 
        queue in64 bandwidth 64Kb cbq(red) 

nat on vr1 from 192.168.0.0/24 to any ->(vr1) 
pass out on vr0 from any to 192.168.0.3 queue in64 
все нормально, скорость режется до 64 кбит
добавляем к очереди in64 прибавку свободного канала borrow

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

altq on vr0 cbq bandwidth 100Mb queue { lan adsl }  
    queue lan bandwidth 98Mb cbq(borrow) 
    queue adsl bandwidth 1024Kb { alla in64 } 
        queue alla cbq(default borrow) 
        queue in64 bandwidth 64Kb cbq(red borrow) 

nat on vr1 from 192.168.0.0/24 to any ->(vr1) 
pass out on vr0 from any to 192.168.0.3 queue in64 
безрезультатно...как было 64Kb так и осталось

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение zingel » 2008-08-20 9:51:48

а логи что говорят?
Z301171463546 - можно пожертвовать мне денег

CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 12:47:44

Тестируем:
1.
pf.conf

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

altq on vr0 cbq bandwidth 100Mb queue { lan adsl }  
    queue lan bandwidth 98Mb cbq(borrow) 
    queue adsl bandwidth 1024Kb { alla in64 } 
        queue alla cbq(default borrow) 
        queue in64 bandwidth 64Kb cbq(red) 

nat on vr1 from 192.168.0.0/24 to any ->(vr1) 
pass out on vr0 from any to 192.168.0.3 queue in64 
загружаем правила:

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

# pfctl -f /etc/pf.conf
pfctl: the sum of the child bandwidth higher than parent "adsl"
#
начинаем качать файл. закачку продолжаю ровно 1 минуту, вот лог с pftop:
до начала закачки:

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

pfTop: Up Queue 1-5/5, View: queue, Cache: 10000                                             15:35:26

QUEUE                 BW SCH  PRIO     PKTS   BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN   P/S    B/S
root_vr0            100M cbq     0       89   11886        0        0    0      0      0   0.6     55
 lan                 98M cbq              0       0        0        0    0      0      0     0      0
 adsl              1024K cbq              0       0        0        0    0      0      0     0      0
  alla             1024K cbq             86   11724        0        0    0      0      0   0.4     44
  in64             64000 cbq              3     162        0        0    0      0      0   0.2     10
после завершения закачки(лог через минуту):

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

pfTop: Up Queue 1-5/5, View: queue, Cache: 10000                                             15:36:29

QUEUE                 BW SCH  PRIO     PKTS   BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN   P/S    B/S
root_vr0            100M cbq     0      620  625812        0        0    0      0      0   0.4     41
 lan                 98M cbq              0       0        0        0    0      0      0     0      0
 adsl              1024K cbq              0       0        0        0    0      0      0     0      0
  alla             1024K cbq            170   27400        0        0    0      0      0   0.4     41
  in64             64000 cbq            450  598412       46    64584    0      0    140     0      0
скорость выше 8 не поднималась

2.pf.conf

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

altq on vr0 cbq bandwidth 100Mb queue { lan adsl }  
    queue lan bandwidth 98Mb cbq(borrow) 
    queue adsl bandwidth 1024Kb { alla in64 } 
        queue alla cbq(default borrow) 
        queue in64 bandwidth 64Kb cbq(red borrow) 

nat on vr1 from 192.168.0.0/24 to any ->(vr1) 
pass out on vr0 from any to 192.168.0.3 queue in64
загружаем правила:

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

# pfctl -f /etc/pf.conf
pfctl: the sum of the child bandwidth higher than parent "adsl"
#
начинаем качать файл. закачку продолжаю ровно 1 минуту, вот лог с pftop:
до начала закачки:

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

pfTop: Up Queue 1-5/5, View: queue, Cache: 10000                                             15:41:38

QUEUE                 BW SCH  PRIO     PKTS   BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN   P/S    B/S
root_vr0            100M cbq     0       49   16970        0        0    0      0      0     4   2690
 lan                 98M cbq              0       0        0        0    0      0      0     0      0
 adsl              1024K cbq              0       0        0        0    0      0      0     0      0
  alla             1024K cbq             47   16862        0        0    0      0      1     4   2690
  in64             64000 cbq              2     108        0        0    0      0      0     0      0
после завершения закачки(лог через минуту):

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

pfTop: Up Queue 1-5/5, View: queue, Cache: 10000                                             15:46:13

QUEUE                 BW SCH  PRIO     PKTS   BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN   P/S    B/S
root_vr0            100M cbq     0      473  590357        0        0    0      0      0     5   6381
 lan                 98M cbq              0       0        0        0    0      0      0     0      0
 adsl              1024K cbq              0       0        0        0    0      0      0     0      0
  alla             1024K cbq             45    9418        0        0    0      0      0   0.4     51
  in64             64000 cbq            428  580939       42    58848    0    324     66     4   6329
скорость началась с 12,5 но через 3 сек. скинулась до 7,5 редко поднималась до 8.8

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение zingel » 2008-08-20 13:39:06

а в логах ничего про ~CLOSE_WAIT нету? (dmesg && messages)?

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

58848 DROP_B
подозрительно
Z301171463546 - можно пожертвовать мне денег

CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 15:24:08

еще раз ставлю закачку...

pf.conf

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

altq on vr0 cbq bandwidth 100Mb queue { lan adsl }  
    queue lan bandwidth 98Mb cbq(borrow) 
    queue adsl bandwidth 1024Kb { alla in64 } 
        queue alla cbq(default borrow) 
        queue in64 bandwidth 64Kb cbq(red borrow) 

nat on vr1 from 192.168.0.0/24 to any ->(vr1) 
pass out on vr0 from any to 192.168.0.3 queue in64

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

# pfctl -f /etc/pf.conf
pfctl: the sum of the child bandwidth higher than parent "adsl"
#

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

pfTop: Up State 1-8/8, View: default, Order: none, Cache: 10000                                                    18:21:00

PR       DIR SRC                      DEST                             STATE                AGE       EXP     PKTS    BYTES
tcp      Out 192.168.0.3:4691         194.186.55.19:2041      ESTABLISHED:ESTABLISHED  10:24:14  13:39:11       38    10507
tcp      Out 192.168.0.3:4519         194.186.55.23:2041      ESTABLISHED:ESTABLISHED  11:13:29  13:35:20      230    22425
tcp      Out 192.168.0.3:4717         194.186.55.28:2041      ESTABLISHED:ESTABLISHED  10:18:18  13:42:56       31    10111
tcp      Out 192.168.0.3:1101         194.186.55.31:2041      ESTABLISHED:ESTABLISHED  00:02:20  23:59:42       30     9790
tcp      Out 192.168.0.3:1106         213.79.68.155:80        ESTABLISHED:ESTABLISHED  00:00:07  23:59:57        7      720
tcp      Out 192.168.0.3:1105         213.79.68.155:80        ESTABLISHED:ESTABLISHED  00:00:08  24:00:00      108    89199
udp      Out 192.168.0.3:50468        195.38.32.2:53             MULTIPLE:SINGLE       00:00:16  00:00:22        5      408
udp      Out 192.168.0.3:50468        195.38.33.2:53               SINGLE:NO_TRAFFIC   00:00:15  00:00:22        3      183

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

pfTop: Up Queue 1-5/5, View: queue, Cache: 10000                                                                   18:21:34

QUEUE                             BW SCH  PRIO     PKTS    BYTES   DROP_P   DROP_B QLEN BORROW SUSPEN     P/S     B/S
root_vr0                        100M cbq     0      349   395607        0        0    0      0      0
 lan                             98M cbq              0        0        0        0    0      0      0
 adsl                          1024K cbq              0        0        0        0    0      0      0
  alla                         1024K cbq             55    11018        0        0    0      0      0
  in64                         64000 cbq            294   384589       12    17208   14    211     38

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

pfTop: Up State 1-9/9, View: speed, Order: none, Cache: 10000                                                      18:21:56

PR    DIR SRC                  DEST                  RATE  PEAK   AVG BYTES STATE  PKTS   AGE   EXP RU GW
tcp   Out 192.168.0.3:4691     194.186.55.19:2041       0     0     0 10507  4:4     38 37510 49095  * 192.168.1.253:51758
tcp   Out 192.168.0.3:4519     194.186.55.23:2041       0     0     0 22425  4:4    230 40465 48864  * 192.168.1.253:55108
tcp   Out 192.168.0.3:4717     194.186.55.28:2041       0     0     0 10111  4:4     31 37154 49320  * 192.168.1.253:63666
tcp   Out 192.168.0.3:1101     194.186.55.31:2041       0     0    52 10310  4:4     38   196 86388  * 192.168.1.253:64236
tcp   Out 192.168.0.3:1107     213.79.68.155:80      1460  1460  1718 89386  4:4    110    52 86400  * 192.168.1.253:55862
tcp   Out 192.168.0.3:1108     213.79.68.155:80      4948  4948  3309  164K  4:4    209    51 86400  * 192.168.1.253:54389
tcp   Out 192.168.0.3:1106     213.79.68.155:80         0     0  2216  136K  4:4    180    63 86393  * 192.168.1.253:63628
tcp   Out 192.168.0.3:1109     213.79.68.155:80      2312  2312  2432  102K  4:4    134    43 86400  * 192.168.1.253:54776
tcp   Out 192.168.0.3:1105     213.79.68.155:80       300  4340  1963  122K  4:4    155    64 86400  * 192.168.1.253:61433

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

pfTop: Up Rule 1-1/1, View: rules, Cache: 10000                                                                    18:22:22

RULE ACTION   DIR LOG Q IF     PR        K     PKTS    BYTES   STATES   MAX INFO
   0 Pass     Out       vr0                     648   879025        0       inet from any to 192.168.0.3/32  queue in64

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

# dmesg && messages
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE #0: Wed Aug 20 06:49:38 UTC 2008
    root@:/usr/obj/usr/src/sys/CUBE
ACPI APIC Table: <GBT    AWRDACPI>
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) XP 1800+ (1540.49-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x681  Stepping = 1
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
  AMD Features=0xc0400800<SYSCALL,MMX+,3DNow+,3DNow>
real memory  = 1073676288 (1023 MB)
avail memory = 1041690624 (993 MB)
ioapic0 <Version 0.3> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <GBT AWRDACPI> on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8377 (Apollo KT400/KT400A/KT600) host to PCI bridge> mem 0xd0000000-0xd7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
rl0: <RealTek 8139 10/100BaseTX> port 0xd000-0xd0ff mem 0xeb000000-0xeb0000ff irq 17 at device 9.0 on pci0
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:50:22:c8:2a:f5
vr0: <VIA VT6105 Rhine III 10/100BaseTX> port 0xd400-0xd4ff mem 0xeb001000-0xeb0010ff irq 18 at device 10.0 on pci0
miibus1: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus1
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:0d:88:63:9f:24
vr1: <VIA VT6105 Rhine III 10/100BaseTX> port 0xd800-0xd8ff mem 0xeb002000-0xeb0020ff irq 19 at device 11.0 on pci0
miibus2: <MII bus> on vr1
ukphy1: <Generic IEEE 802.3u media interface> on miibus2
ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr1: Ethernet address: 00:15:e9:3d:54:a7
pci0: <serial bus, USB> at device 16.0 (no driver attached)
pci0: <serial bus, USB> at device 16.1 (no driver attached)
pci0: <serial bus, USB> at device 16.2 (no driver attached)
pci0: <serial bus, USB> at device 16.3 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8235 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe800-0xe80f at device 17.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
pci0: <multimedia, audio> at device 17.5 (no driver attached)
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: <Standard parallel printer port> port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
pmtimer0 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1540488435 Hz quality 800
Timecounters tick every 1.000 msec
ad0: 38166MB <Seagate ST340016A 3.19> at ata0-master UDMA100
acd0: DVDR <PIONEER DVD-RW DVR-112D/1.22> at ata1-master UDMA66
Trying to mount root from ufs:/dev/ad0s1a
uhci0: <VIA 83C572 USB controller> port 0xdc00-0xdc1f irq 21 at device 16.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xe000-0xe01f irq 21 at device 16.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 21 at device 16.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <VIA 83C572 USB controller> on uhci2
usb2: USB revision 1.0
uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0: <VIA VT6202 USB 2.0 controller> mem 0xeb003000-0xeb0030ff irq 21 at device 16.3 on pci0
ehci0: [GIANT-LOCKED]
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3: <VIA VT6202 USB 2.0 controller> on ehci0
usb3: USB revision 2.0
uhub3: VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
altq: emulate 256000000Hz cpu clock
vr1: link state changed to DOWN
vr1: link state changed to UP
vr1: link state changed to DOWN
vr1: link state changed to UP
messages: Command not found.
#

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение zingel » 2008-08-20 16:09:21

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

messages: Command not found.
#
это что такое? =)
Z301171463546 - можно пожертвовать мне денег

CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 19:16:27

zingel писал(а):а в логах ничего про ~CLOSE_WAIT нету? (dmesg && messages)?

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

58848 DROP_B
подозрительно

ну вот выполнил команду: dmesg && messages

она и выдала command messages not found :)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение zingel » 2008-08-20 19:25:06

понятненько.....=)

p.s. попробуйте, для начала, ipfw
Z301171463546 - можно пожертвовать мне денег

CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 20:16:32

в том то и дело, что ipfw не справляется с тем что мне нужно реализовать. вот уже 3 суток сижу с pf мучаюсь)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение zingel » 2008-08-20 20:32:57

а чего добиться хотите?:
Z301171463546 - можно пожертвовать мне денег

CrazyAdmin
рядовой
Сообщения: 15
Зарегистрирован: 2008-02-26 12:25:45

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение CrazyAdmin » 2008-08-20 20:42:45

есть канал инета 1 мбит...надо разделить его на 5 пользователей. каждому выделить по фиксированной ширине. одному 80кбит, другому 50кбит ну и т.д. С этим IPFW справляется...НО если человек не пользуется своим каналом - его часть получается простаивает. Надо сделать чтоб неиспользуемая ширина канала добавлялась к фиксированной. Это на ALTQ сделал вроде бы вот таким конфигом:

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

altq on vr0 cbq bandwidth 1024Kb queue { all user1 user2 user3 }  
        queue all cbq(default borrow) 
        queue user1 bandwidth 50Kb cbq(red borrow) 
        queue user2 bandwidth 80Kb cbq(red borrow) 
        queue user3 bandwidth 120Kb cbq(red borrow) 
тут все нормально работает, но получается что пропуск.способность интерфейса становится 1Мбит...а ведь есть еще локальная сеть...надо сделать для нее 100 мбит...вот и надо организовать 2 очереди(LAN(99Mbit) и ADSL(1Mbit),который включает уже дочерние очереди юзеров)

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

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение freeman » 2008-08-21 8:41:33

Как насчёт того, чтобы приоритеты очередей cbq добавить и посмотреть что тогда получится ? А то обе очереди borrow получаются на равных правах, я стараюсь такого не допускать, автомат делить очень хорошо как я понял не умеет даже с red.
Остатся должен только один ...

sith
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-09-16 1:18:08

Re: PF+ALTQ странность с очередями

Непрочитанное сообщение sith » 2008-09-18 1:11:07

Можно попробывать:
Вариант1:

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

ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
sith="192.168.1.2"
dad="192.168.1.3"
table <private_net> { 10.0.0.0/8 } 
set block-policy return
set skip on lo0 
scrub in all 

altq on $int_if cbq bandwidth 100Mb queue { inet_in, default_in }
queue inet_in bandwidth 124Kb { q_sith_in, q_dad_in }
queue q_sith_in bandwidth 50% cbq(red, borrow)
queue q_dad_in bandwidth 50% cbq(red, borrow)
queue default_in bandwidth 99% cbq(default)

nat on $ext_if from $int_if:network to any -> ($ext_if) 
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
pass out on $int_if from ! <private_net> to $sith queue q_sith_in
pass out on $int_if from ! <private_net> to $dad queue q_dad_in
Вариант2:

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

ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
dad="192.168.1.3"
sith="192.168.1.2"
table <a_private_net> { 10.0.0.0/8 192.168.1.0/24 81.28.160.181 }
set block-policy return
set skip on lo0

altq on $int_if bandwidth 100Mb hfsc queue { inet_in, default_in }
        queue default_in bandwidth 99Mb priority 0 hfsc(default)
        queue inet_in bandwidth 128Kb priority 7 hfsc{ q_sith_in, q_dad_in }
                queue q_sith_in bandwidth 64Kb priority 5 hfsc(realtime 64Kb upperlimit 128Kb)
                queue q_dad_in bandwidth 64Kb priority 5 hfsc(realtime 64Kb upperlimit 128Kb)

nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)

pass out on $int_if from ! <a_private_net> to $sith queue q_sith_in
pass out on $int_if from ! <a_private_net> to $dad queue q_dad_in