URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 63275
[ Назад ]

Исходное сообщение
"IPFW (Dummynet) и SQUID на одной сетевой карте"

Отправлено Maximus_808 , 11-Янв-06 16:34 
В локальной сети находится машина со squid'ом под FreeBSD, перенаправляющая запросы пользователей на squid провайдера (через маршрутизатор).Пытаюсь создать pipe (IPFW) для управления траффиком для пользователей squid.Он слушает запросы пользователей и отправляет их дальше через один сетевой интерфейс.Пытался ограничить правилами типа:
setup_loopback
    ${fwcmd} add pipe 1 all from 10.10.0.18 8080 to any
    ${fwcmd} add pipe 2 all from хост_провайдера 8080 to 10.10.0.18
    ${fwcmd} pipe 1 config bw 32Kbit/s
    ${fwcmd} pipe 2 config bw 32Kbit/s    
    ${fwcmd} queue 1 config pipe 1 weight 75
    ${fwcmd} queue 2 config pipe 1 weight 50    
    ${fwcmd} queue 3 config pipe 1 weight 50    
    ${fwcmd} add queue 3 all from хост_провайдера 8080 to 10.10.0.18    
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.111
      ${fwcmd} add queue 1 all from хост_провайдера 8080 to 10.10.0.7
    ${fwcmd} add queue 1 all from 10.10.0.18 8080 to 10.10.0.254
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.56
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.21
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.100
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.28
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.58
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.23
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.60
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.222
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.92
    ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.6
    ${fwcmd} add pass all from any to any
Разделение траффика не происходит:
#ipfw pipe show
00001:  32.000 Kbit/s    0 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp       10.10.0.18/8080       10.10.0.21/48628 72005 59433826 16 16599 1444
00002:  32.000 Kbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
q00001: weight 75 pipe 1   50 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
q00002: weight 50 pipe 1   50 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
q00003: weight 50 pipe 1   50 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
#ipfw -a show
00100   7064  2903384 allow ip from any to any via lo0
00200      0        0 deny ip from any to 127.0.0.0/8
00300      0        0 deny ip from 127.0.0.0/8 to any
00400  72673 59730971 pipe 1 ip from 10.10.0.18 8080 to any
00500      0        0 pipe 2 ip from адрес_провайдера 8080 to 10.10.0.18
00600      0        0 queue 3 ip from 10.10.11.12 8080 to 10.10.0.18
00700      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.111
00800      0        0 queue 1 ip from 10.10.0.18 8080 to 10.10.0.7
00900      0        0 queue 1 ip from 10.10.0.18 8080 to 10.10.0.254
01000      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.56
01100      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.21
01200      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.100
01300      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.28
01400      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.58
01500      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.23
01600      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.60
01700      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.222
01800      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.92
01900      0        0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.6
02000 255476 82405213 allow ip from any to any
65535      0        0 deny ip from any to any
Когда пробовал настроить правила, как описано в статье, http://unixwood.org.ru/manview.php?id=64 то траффик делился, но squid был недоступен.
Но вопрос, поднятый в статье, для групп пользователей с разным весом весьма инетересен.
Заранее благодарен за какие либо соображения на эту тему.

Содержание

Сообщения в этом обсуждении
"IPFW (Dummynet) и SQUID на одной сетевой карте"
Отправлено Саня , 11-Янв-06 17:27 
>В локальной сети находится машина со squid'ом под FreeBSD, перенаправляющая запросы пользователей
>на squid провайдера (через маршрутизатор).Пытаюсь создать pipe (IPFW) для управления траффиком
>для пользователей squid.Он слушает запросы пользователей и отправляет их дальше через
>один сетевой интерфейс.Пытался ограничить правилами типа:
>setup_loopback
> ${fwcmd} add pipe 1 all from 10.10.0.18 8080 to any
> ${fwcmd} add pipe 2 all from хост_провайдера 8080 to 10.10.0.18
> ${fwcmd} pipe 1 config bw 32Kbit/s
> ${fwcmd} pipe 2 config bw 32Kbit/s
> ${fwcmd} queue 1 config pipe 1 weight 75
> ${fwcmd} queue 2 config pipe 1 weight 50
> ${fwcmd} queue 3 config pipe 1 weight 50
> ${fwcmd} add queue 3 all from хост_провайдера 8080 to 10.10.0.18
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.111
>      ${fwcmd} add queue 1 all from
>хост_провайдера 8080 to 10.10.0.7
> ${fwcmd} add queue 1 all from 10.10.0.18 8080 to 10.10.0.254
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.56
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.21
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.100
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.28
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.58
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.23
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.60
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.222
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.92
> ${fwcmd} add queue 2 all from 10.10.0.18 8080 to 10.10.0.6
> ${fwcmd} add pass all from any to any
>Разделение траффика не происходит:
>#ipfw pipe show
>00001:  32.000 Kbit/s    0 ms   50
>sl. 1 queues (1 buckets) droptail
>    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
>BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
>  0 tcp       10.10.0.18/8080  
>     10.10.0.21/48628 72005 59433826 16 16599 1444
>
>00002:  32.000 Kbit/s    0 ms   50
>sl. 0 queues (1 buckets) droptail
>    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
>q00001: weight 75 pipe 1   50 sl. 0 queues (1
>buckets) droptail
>    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
>q00002: weight 50 pipe 1   50 sl. 0 queues (1
>buckets) droptail
>    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
>q00003: weight 50 pipe 1   50 sl. 0 queues (1
>buckets) droptail
>    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
>#ipfw -a show
>00100   7064  2903384 allow ip from any to any
>via lo0
>00200      0      
>  0 deny ip from any to 127.0.0.0/8
>00300      0      
>  0 deny ip from 127.0.0.0/8 to any
>00400  72673 59730971 pipe 1 ip from 10.10.0.18 8080 to any
>
>00500      0      
>  0 pipe 2 ip from адрес_провайдера 8080 to 10.10.0.18
>
>00600      0      
>  0 queue 3 ip from 10.10.11.12 8080 to 10.10.0.18
>
>00700      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.111
>
>00800      0      
>  0 queue 1 ip from 10.10.0.18 8080 to 10.10.0.7
>
>00900      0      
>  0 queue 1 ip from 10.10.0.18 8080 to 10.10.0.254
>
>01000      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.56
>
>01100      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.21
>
>01200      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.100
>
>01300      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.28
>
>01400      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.58
>
>01500      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.23
>
>01600      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.60
>
>01700      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.222
>
>01800      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.92
>
>01900      0      
>  0 queue 2 ip from 10.10.0.18 8080 to 10.10.0.6
>
>02000 255476 82405213 allow ip from any to any
>65535      0      
>  0 deny ip from any to any
>Когда пробовал настроить правила, как описано в статье, http://unixwood.org.ru/manview.php?id=64 то траффик делился,
>но squid был недоступен.
>Но вопрос, поднятый в статье, для групп пользователей с разным весом весьма
>инетересен.
>Заранее благодарен за какие либо соображения на эту тему.

Ты какой то бредятины понаписывал :)
Сам то понял что написал :)
IPFW такая штука понимаешь она находит правило
1 мол переадресовать туда (улетело)
потом стоит правило
2 (твои пайпы) до которого ничего не дошло (улавливаешь ?)

И точно также в обратную сторону...
нашло пайп урезало что нужно а на следующее правило о трансляции забило :)
Для этого используется не allow а pass шоля....короче док нужно читать....чтобы фаер после чтения правила посылал обработаный пакет обрабатывать следующими правилами...

ну вроде так....сиди разбирайся...я когда то же над подобной проблемой долбался :)