Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » PF + ALTQ + Squid на FreeBSD

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

viciousrage



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго всем времени суток, хочу выставить приоритеты для трафика, но никак не получается...
Хочу что-бы я всегда мог слушать радио которое крутится на 84.204.58.67:9000
следущий приоритет для IM, SSH
потом форвадинг на сквида
ну и наименьший приоритет на остальное
 
Вот конфиг:  

Код:
int_if="fxp0"
ext_if="fxp1"
#=============================================================
 
web_ports="{80, 8080}"
squid="192.168.0.99"
lan="192.168.0.0/24"
icmp_types="{ echoreq, unreach }"
 
#Options
set skip on lo0
set block-policy return
 
set loginterface $ext_if
 
scrub in all
 
table <allow_all>       persist file "/etc/pf_conf/allow_all"
 
# Rules rdr & NAT
nat pass on $ext_if from <allow_all> to any -> $ext_if
 
rdr on $int_if proto tcp from <allow_all> to !$lan port $web_ports -> \
    $squid port 3128
 
antispoof quick for $ext_if
 
# SSH access from local
pass in quick on $int_if proto tcp from any to any port ssh
pass out quick on $int_if proto tcp from any to any port ssh
 
##
pass quick on { $int_if}
 
block in quick from any os NMAP
 
pass out quick on $ext_if inet proto icmp icmp-type $icmp_types
pass out quick on $ext_if proto udp keep state
pass out quick on $ext_if proto tcp flags S/SA keep state  
 
block all
 

 
Подскажите, пробовал что-то типа:  

Код:
#Priorites
altq on fxp1 bandwidth 360Kb  priq queue { squid, radio, im, other}
queue radio priority 6
queue im priority 5
queue squid priority 2
queue other priority 1 priq (default)
 
pass out quick on $ext_if proto tcp to any port 9000 \
     flags S/SA keep state queue radio
pass out quick on $ext_if proto tcp to any port 5190 \
     flags S/SA keep state queue im
pass out quick on $ext_if proto tcp to any port $web_ports \
     flags S/SA keep state queue squid
pass in quick on $int_if proto tcp from $int_server port 3128 to any \
     flags S/SA keep state queue squid
 
 
pass out quick on $ext_if inet proto icmp icmp-type $icmp_types
pass out quick on $ext_if proto udp keep state queue other
pass out quick on $ext_if proto tcp flags S/SA keep state queue other
 

 
Но ситуация непонятная, что-то попадает под очередь сквида, ну и в остальное...

Всего записей: 67 | Зарегистр. 14-02-2007 | Отправлено: 18:14 09-01-2009 | Исправлено: viciousrage, 18:21 09-01-2009
EveryonE



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
неясно какой поток трафика куда вы ограничиваете. писать ограничения для $ext_if для входящего трафика бессмысленно, т.к. то сколько вам будет поступать данных регулирует ваш провайдер, т.е. у вас просто не получится приоретизация. Лучше тогда ставить ограничения протокола на исходящий трафик на $int_if

Всего записей: 208 | Зарегистр. 19-03-2002 | Отправлено: 08:53 10-01-2009
viciousrage



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот статистика pfctl -vv -sq :

Код:
queue one on fxp0 priq( default )
  [ pkts:       5259  bytes:    6250303  dropped pkts:     82 bytes: 104035 ]
  [ qlength:   0/ 50 ]
  [ measured:    15.0 packets/s, 154.32Kb/s ]
queue two on fxp0 priority 2
  [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:      0 ]
  [ qlength:   0/ 50 ]
  [ measured:     0.0 packets/s, 0 b/s ]
queue three on fxp1 priq( default )
  [ pkts:       3375  bytes:     343303  dropped pkts:      0 bytes:      0 ]
  [ qlength:   0/ 50 ]
  [ measured:     9.9 packets/s, 7.09Kb/s ]
queue four on fxp1 priority 3
  [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:      0 ]
  [ qlength:   0/ 50 ]
  [ measured:     0.0 packets/s, 0 b/s ]
 

Вот pftop :

Код:
PR    D SRC                   DEST                 STATE   AGE   EXP  PKTS BYTES
tcp   I 192.168.0.13:1049     192.168.0.99:22       4:4    389 86397   294 83244
tcp   I 192.168.0.13:1050     64.12.24.229:5190     4:4    387 86357    81 25823
tcp   O 192.168.0.13:1050     64.12.24.229:5190     4:4    387 86357    81 25823
tcp   I 192.168.0.13:1064     82.137.152.80:11135   4:4    320 86382    37  2877
tcp   O 192.168.0.13:1064     82.137.152.80:11135   4:4    320 86382    37  2877
tcp   I 192.168.0.30:1838     82.139.118.170:43356  4:4    303 86399    29  2254
tcp   O 192.168.0.30:1838     82.139.118.170:43356  4:4    303 86399    29  2254
tcp   I 192.168.0.13:1099     84.204.58.67:9000     4:4    169 86400  3216 2882K
tcp   O 192.168.0.13:1099     84.204.58.67:9000     4:4    169 86400  3216 2882K

tcp   O 172.13.5.5:59870      83.222.4.243:80      10:10   132    18    24  6275
tcp   I 192.168.0.30:1925     192.168.0.99:3128     9:9    132    46    21  4644
tcp   I 192.168.0.30:1927     192.168.0.99:3128     9:9    132    51    27  4257
tcp   I 192.168.0.30:1931     192.168.0.99:3128     9:9    113    41    11  1563
tcp   I 192.168.0.30:1933     192.168.0.99:3128     9:9    109    46    26 13184
tcp   O 172.13.5.5:59745      93.186.227.125:80     9:9    109    45    23 13414
tcp   I 192.168.0.13:1112     192.168.0.99:3128     9:9     89     1    15  5812
tcp   O 172.13.5.5:64237      172.13.5.7:80         9:9     89     1    13  5858
tcp   I 192.168.0.13:1113     192.168.0.99:3128     9:9     89     1    11  1846

А вот конфиг на все интерфейсы:

Код:
ks="keep state"
altq on fxp0 priq bandwidth 360Kb queue {one ,two}
queue one priq(default)
queue two priority 2
altq on fxp1 priq bandwidth 360Kb queue {three,four}
queue three priq(default)
queue four priority 3
 
pass out on $int_if proto tcp to any port 9000 $ks queue two
pass in on $int_if proto tcp to any port 9000 $ks queue two
pass out on $ext_if proto tcp to any port 9000 $ks queue four
pass in on $ext_if proto tcp to any port 9000 $ks queue four


Всего записей: 67 | Зарегистр. 14-02-2007 | Отправлено: 11:40 10-01-2009 | Исправлено: viciousrage, 11:54 10-01-2009
bga83



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
прежде всего при использовании pf+altq крайне не желательно использование keep state правил, так как в данном случае пакеты приходящие в ответ будут попадать в ту же самую очередь. Учитывая ширину канала в 360К,  отдавать пакеты со шлюза в локальную сеть, ограничивая максимальную скорость такой цифрой, не разумно. Необходимы пары правил типа no state

Цитата:
EveryonE
прав  - целесообразно включить atlq на обоих интерфейсах и шейпить исходящий трафик на обоих интерфейсах
 
При этом как оказалось правила будут не симметричные, посмотри http://forum.ru-board.com/topic.cgi?forum=65&topic=3107#1 - некоторые особенности синтаксиса правил, полученные на собственном опыте

Всего записей: 2008 | Зарегистр. 30-11-2007 | Отправлено: 12:11 10-01-2009
viciousrage



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Натолкнуло на пару мыслей, завтра попробую, сегодня что-то совсем желания нету эксперементировать...

Всего записей: 67 | Зарегистр. 14-02-2007 | Отправлено: 22:26 10-01-2009
DimaITS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Есть у меня сеть состоящая из роутера с двумя wan портами в который приходит интернет (2 канала по 25Mb). Из него идёт шнурок в шлюз FreeBSD 9.0 (dhcp+pf+altq+squid), а уже из него шнурок в локальную сеть.
Решил я озадачиться и настроить очереди, так чтобы весь исходящий трафик http имел наивысший приоритет, а трафик dns, ftp и остальной приоритет пониже.
Написал, примерно, такой конфиг:
int_if="re0"
ext_if="em1"
lan_my="192.168.1.0/24"
 
set block-policy drop
set skip on lo0
 
scrub in on $ext_if all
 
altq on $ext_if cbq bandwidth 48Mb queue {qhttp, qdns, qftp, qdef}
   queue qhttp bandwidth 70% priority 6 cbq (borrow)
   queue qdns bandwidth 10% priority 5 cbq (borrow)
   queue qftp bandwidth 10% priority 3 cbq (borrow)
   queue qdef bandwidth 10% priority 2 cbq (default borrow)
 
nat on $ext_if from $lan_my to any -> ($ext_if)
 
rdr on $ext_if proto tcp from any to $ext_if port 81 -> 192.168.1.9 port 81
rdr on $int_if inet proto tcp from any to any port www -> 127.0.0.1 port 3128
rdr on $ext_if proto tcp from any to $ext_if port 3389 -> 192.168.1.11 port 3389
rdr on $ext_if proto {tcp, udp} from 85.94.32.244 to $ext_if port 5061 -> 192.168.1.16 port 5061
rdr on $ext_if proto {tcp, udp} from 85.94.32.244 to $ext_if port 5062 -> 192.168.1.16 port 5062
rdr on $ext_if proto {tcp, udp} from 85.94.32.244 to $ext_if port 5064 -> 192.168.1.15 port 5064
rdr on $ext_if proto {tcp, udp} from 85.94.32.244 to $ext_if port 5068 -> 192.168.1.17 port 5068
 
antispoof quick for {lo0, $int_if, $ext_if}
 
block on $ext_if all
 
pass out on $ext_if inet proto {tcp, udp} to port www queue qhttp
pass out on $ext_if inet proto {tcp, udp} to port domain queue qdns
pass out on $ext_if inet proto {tcp, udp} to port ftp queue qftp
 
pass in on $ext_if inet proto {tcp, udp} to port www queue qhttp
pass in on $ext_if inet proto {tcp, udp} to port domain queue qdns
pass in on $ext_if inet proto {tcp, udp} to port ftp queue qftp
 
pass out on $ext_if
pass on $int_if from $lan_my to any
 
pass in on $ext_if proto {tcp, udp} from 85.94.32.244 to any
pass in on $ext_if proto tcp from any to any port 3389
pass in on $ext_if proto tcp from any to any port 81
 
block on $ext_if proto {tcp, udp} from any to any port 6969
block on $ext_if proto {tcp, udp} from any to any port {6881:6889}
 
В итоге, все пакеты, тупо, валятся в очередь по умолчанию. Я уже пробовал и squid отключать, и правила вертел по разному, no keep state тоже ставил; всё безрезультатно. Может я просто чего то недопонимаю? Про Altq начал читать только вчера, но как мне казалось логика мне ясна.
 

Всего записей: 6 | Зарегистр. 17-07-2008 | Отправлено: 16:27 18-07-2013 | Исправлено: DimaITS, 16:28 18-07-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » PF + ALTQ + Squid на FreeBSD


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru