Кашмир Posted February 12, 2008 Posted February 12, 2008 Внешний канал 1984Кбит/сек. пограничный роутер с FreeBSD6.2. Решил поделить канал между бзверями сидящими за натом, иначе скачки по пингам стали одолевать, и прикрутил следующую схему: #CHANNEL SHAPER /sbin/ipfw pipe 1 config bw 1950Kbit/s /sbin/ipfw queue 1 config pipe 1 weight 50 mask dst-ip 0xffffffff src-ip 0xffffffff /sbin/ipfw queue 2 config pipe 1 weight 50 mask dst-ip 0xffffffff src-ip 0xffffffff /sbin/ipfw add 1 queue 1 ip from any to 10.10.15.0/24 via rl0 /sbin/ipfw add 1 queue 1 ip from 10.10.15.0/24 to any via rl0 /sbin/ipfw add 1 queue 2 ip from any to 10.10.16.0/24 via rl0 /sbin/ipfw add 1 queue 2 ip from 10.10.16.0/24 to any via rl0 В итоге общая загрузка канала упала до 1700-1750 кбит/сек и дальше этой планке нельзя грузануть, все получили очень низкую скорость и какой-то тупой серфинг. Что еще можно покрутить? Вставить ник Quote
DiM_TauRus Posted February 12, 2008 Posted February 12, 2008 Неверна взята маска. Заменить на 0x000000ff Использовать не via rl0 - а пользовать in recv rl0 и xmit rl0 Вставить ник Quote
Кашмир Posted February 12, 2008 Author Posted February 12, 2008 Спасибо, причесал, теперь буду наблюдать #CHANNEL SHAPER /sbin/ipfw pipe 1 config bw 1950Kbit/s /sbin/ipfw queue 1 config pipe 1 weight 50 mask dst-ip 0x000000ff src-ip 0x000000ff /sbin/ipfw queue 2 config pipe 1 weight 50 mask dst-ip 0x000000ff src-ip 0x000000ff /sbin/ipfw add 1 queue 1 ip from any to 10.10.15.0/24 in recv rl0 /sbin/ipfw add 1 queue 1 ip from 10.10.15.0/24 to any out xmit rl0 /sbin/ipfw add 1 queue 2 ip from any to 10.10.16.0/24 in recv rl0 /sbin/ipfw add 1 queue 2 ip from 10.10.16.0/24 to any out xmit rl0 Вставить ник Quote
netmonster Posted February 12, 2008 Posted February 12, 2008 (edited) на входящий трафик... почти также для исходящего только заместо dst-ip нужно src-ip pipe 1 config bw 1950Kbit/s queue 100 buckets 256 queue 1 config pipe 1 weight 50 mask dst-ip 0x000000ff queue 2 config pipe 1 weight 50 mask dst-ip 0x000000ff add 1 queue 1 ip from any to 10.10.15.0/24 out via rl0 add 2 queue 2 ip from any to 10.10.16.0/24 out via rl0 rl0 интерфейс в локалку Edited February 12, 2008 by netmonster Вставить ник Quote
Кашмир Posted February 12, 2008 Author Posted February 12, 2008 (edited) Бррр. запутался. Плиз, поправьте мне правила (тыкнув носом) Попробывал так: /sbin/ipfw pipe 1 config bw 1950Kbit/s queue 100 buckets 256 /sbin/ipfw queue 1 config pipe 1 weight 50 mask dst-ip 0x000000ff /sbin/ipfw queue 2 config pipe 1 weight 50 mask dst-ip 0x000000ff /sbin/ipfw add 1 queue 1 ip from any to 10.10.15.0/24 out xmit rl0 /sbin/ipfw add 1 queue 1 ip from 10.10.15.0/24 to any in recv rl0 /sbin/ipfw add 1 queue 2 ip from any to 10.10.16.0/24 out xmit rl0 /sbin/ipfw add 1 queue 2 ip from 10.10.16.0/24 to any in recv rl0 Один фиг загрузка канала макс: 1727000 00001 2568 267826 queue 1 ip from 10.10.15.0/24 to any out xmit rl0 00001 2187 1579124 queue 2 ip from any to 10.10.16.0/24 in recv rl0 00001 1650 199335 queue 2 ip from 10.10.16.0/24 to any out xmit rl0 00001 758 462505 queue 3 ip from any to 83.234.240.0/25 in recv rl0 billing# ipfw pipe show 1 00001: 1.950 Mbit/s 0 ms 100 sl. 0 queues (1 buckets) droptail q00001: weight 50 pipe 1 50 sl. 54 queues (64 buckets) droptail mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000 BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp 0 ip 0.0.0.0/0 0.0.0.64/0 11 1677 0 0 0 1 ip 0.0.0.0/0 0.0.0.1/0 19 789 0 0 0 2 ip 0.0.0.0/0 0.0.0.130/0 6 1501 0 0 0 3 ip 0.0.0.0/0 0.0.0.67/0 1 40 0 0 0 4 ip 0.0.0.0/0 0.0.0.132/0 14 2134 0 0 0 5 ip 0.0.0.0/0 0.0.0.69/0 3 590 0 0 0 6 ip 0.0.0.0/0 0.0.0.134/0 2 80 0 0 0 7 ip 0.0.0.0/0 0.0.0.71/0 1 40 0 0 0 8 ip 0.0.0.0/0 0.0.0.72/0 14 668 0 0 0 10 ip 0.0.0.0/0 0.0.0.10/0 23 1104 0 0 0 11 ip 0.0.0.0/0 0.0.0.139/0 13 535 0 0 0 12 ip 0.0.0.0/0 0.0.0.76/0 9 3817 0 0 0 13 ip 0.0.0.0/0 0.0.0.77/0 5 977 0 0 0 15 ip 0.0.0.0/0 0.0.0.15/0 50 53200 0 0 0 16 ip 0.0.0.0/0 0.0.0.208/0 1 46 0 0 0 17 ip 0.0.0.0/0 0.0.0.17/0 742 144849 0 0 0 18 ip 0.0.0.0/0 0.0.0.146/0 1 46 0 0 0 19 ip 0.0.0.0/0 0.0.0.19/0 6 632 0 0 0 20 ip 0.0.0.0/0 0.0.0.212/0 5 463 0 0 0 21 ip 0.0.0.0/0 0.0.0.21/0 64 15133 0 0 0 22 ip 0.0.0.0/0 0.0.0.22/0 10 1510 0 0 0 23 ip 0.0.0.0/0 0.0.0.87/0 1 40 0 0 0 24 ip 0.0.0.0/0 0.0.0.24/0 77 3696 0 0 0 25 ip 0.0.0.0/0 0.0.0.217/0 2 80 0 0 0 26 ip 0.0.0.0/0 0.0.0.90/0 252 10080 0 0 0 27 ip 0.0.0.0/0 0.0.0.27/0 54 5177 0 0 0 28 ip 0.0.0.0/0 0.0.0.156/0 3 610 0 0 0 29 ip 0.0.0.0/0 0.0.0.29/0 1 84 0 0 0 30 ip 0.0.0.0/0 0.0.0.222/0 66 4663 0 0 0 31 ip 0.0.0.0/0 0.0.0.31/0 5 390 0 0 0 33 ip 0.0.0.0/0 0.0.0.225/0 25 1000 0 0 0 35 ip 0.0.0.0/0 0.0.0.35/0 1 48 0 0 0 36 ip 0.0.0.0/0 0.0.0.100/0 1 40 0 0 0 37 ip 0.0.0.0/0 0.0.0.37/0 2 623 0 0 0 38 ip 0.0.0.0/0 0.0.0.166/0 8 1446 0 0 0 39 ip 0.0.0.0/0 0.0.0.231/0 1 52 0 0 0 41 ip 0.0.0.0/0 0.0.0.233/0 45 2368 0 0 0 42 ip 0.0.0.0/0 0.0.0.234/0 2 926 0 0 0 43 ip 0.0.0.0/0 0.0.0.171/0 4 679 0 0 0 44 ip 0.0.0.0/0 0.0.0.172/0 13 1582 0 0 0 45 ip 0.0.0.0/0 0.0.0.173/0 2 1493 0 0 0 47 ip 0.0.0.0/0 0.0.0.175/0 2 80 0 0 0 49 ip 0.0.0.0/0 0.0.0.113/0 1 46 0 0 0 50 ip 0.0.0.0/0 0.0.0.242/0 1 57 0 0 0 52 ip 0.0.0.0/0 0.0.0.116/0 1 46 0 0 0 53 ip 0.0.0.0/0 0.0.0.117/0 75 4181 0 0 0 55 ip 0.0.0.0/0 0.0.0.119/0 1 35 0 0 0 56 ip 0.0.0.0/0 0.0.0.56/0 2 96 0 0 0 57 ip 0.0.0.0/0 0.0.0.249/0 5 1052 0 0 0 58 ip 0.0.0.0/0 0.0.0.250/0 31 2635 0 0 0 59 ip 0.0.0.0/0 0.0.0.123/0 66 7896 0 0 0 60 ip 0.0.0.0/0 0.0.0.60/0 1 40 0 0 0 61 ip 0.0.0.0/0 0.0.0.253/0 1 40 0 0 0 62 ip 0.0.0.0/0 0.0.0.126/0 4 1222 0 0 0 q00002: weight 50 pipe 1 50 sl. 40 queues (64 buckets) droptail mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000 BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp 1 ip 0.0.0.0/0 0.0.0.1/0 2 80 0 0 0 4 ip 0.0.0.0/0 0.0.0.4/0 5 677 0 0 0 5 ip 0.0.0.0/0 0.0.0.133/0 2 80 0 0 0 6 ip 0.0.0.0/0 0.0.0.6/0 196 118585 0 0 0 7 ip 0.0.0.0/0 0.0.0.135/0 28 1120 0 0 0 9 ip 0.0.0.0/0 0.0.0.9/0 3 221 0 0 0 10 ip 0.0.0.0/0 0.0.0.138/0 49 8556 0 0 0 11 ip 0.0.0.0/0 0.0.0.11/0 56 7717 0 0 0 12 ip 0.0.0.0/0 0.0.0.140/0 1 40 0 0 0 14 ip 0.0.0.0/0 0.0.0.78/0 27 1192 0 0 0 18 ip 0.0.0.0/0 0.0.0.18/0 40 1600 0 0 0 19 ip 0.0.0.0/0 0.0.0.83/0 50 59120 0 0 0 22 ip 0.0.0.0/0 0.0.0.214/0 4 638 0 0 0 23 ip 0.0.0.0/0 0.0.0.151/0 8 452 0 0 0 24 ip 0.0.0.0/0 0.0.0.24/0 34 9831 0 0 0 25 ip 0.0.0.0/0 0.0.0.89/0 298 345002 0 0 0 26 ip 0.0.0.0/0 0.0.0.90/0 3 597 0 0 0 27 ip 0.0.0.0/0 0.0.0.155/0 1 78 0 0 0 30 ip 0.0.0.0/0 0.0.0.158/0 43 4450 0 0 0 31 ip 0.0.0.0/0 0.0.0.95/0 39 1560 0 0 0 32 ip 0.0.0.0/0 0.0.0.96/0 3 120 0 0 0 35 ip 0.0.0.0/0 0.0.0.99/0 1 40 0 0 0 36 ip 0.0.0.0/0 0.0.0.36/0 27 1104 0 0 0 37 ip 0.0.0.0/0 0.0.0.37/0 1 41 0 0 0 38 ip 0.0.0.0/0 0.0.0.38/0 1 40 0 0 0 39 ip 0.0.0.0/0 0.0.0.103/0 2 80 0 0 0 40 ip 0.0.0.0/0 0.0.0.104/0 6 717 0 0 0 41 ip 0.0.0.0/0 0.0.0.105/0 13 1654 0 0 0 43 ip 0.0.0.0/0 0.0.0.43/0 9 12600 0 0 0 45 ip 0.0.0.0/0 0.0.0.109/0 5 679 0 0 0 46 ip 0.0.0.0/0 0.0.0.174/0 6 648 0 0 0 48 ip 0.0.0.0/0 0.0.0.112/0 183 44225 0 0 0 50 ip 0.0.0.0/0 0.0.0.50/0 68 2720 0 0 0 51 ip 0.0.0.0/0 0.0.0.51/0 2 80 0 0 0 53 ip 0.0.0.0/0 0.0.0.245/0 3 144 0 0 0 58 ip 0.0.0.0/0 0.0.0.250/0 2 80 0 0 0 60 ip 0.0.0.0/0 0.0.0.124/0 4 160 0 0 0 61 ip 0.0.0.0/0 0.0.0.253/0 4 160 0 0 0 62 ip 0.0.0.0/0 0.0.0.126/0 3 120 0 0 0 63 ip 0.0.0.0/0 0.0.0.63/0 4 296 0 0 0 Edited February 12, 2008 by Кашмир Вставить ник Quote
dsk Posted February 12, 2008 Posted February 12, 2008 ipfw pipe 1 config bw 2260Kbit/s ipfw pipe 2 config bw 2260Kbit/s ipfw queue 1 config pipe 1 weight 50 mask src-ip 0x0000ffff ipfw queue 2 config pipe 2 weight 50 mask dst-ip 0x0000ffff ipfw add 1 queue 1 ip from 10.10.15.0/24,10.10.16.0/24 to any in ipfw add 2 queue 2 ip from any to 10.10.15.0/24,10.10.16.0/24 out Вставить ник Quote
Кашмир Posted February 13, 2008 Author Posted February 13, 2008 Огромное спасибо, други! Немного edit по тексту и вот такая конструктия пашет на ура: #CHANNEL SHAPER /sbin/ipfw pipe 1 config bw 1950Kbit/s /sbin/ipfw pipe 2 config bw 1950Kbit/s /sbin/ipfw queue 1 config pipe 1 weight 50 mask src-ip 0x0000ffff gred 0.002/10/30/0.1 /sbin/ipfw queue 2 config pipe 2 weight 75 mask dst-ip 0x0000ffff gred 0.002/10/30/0.1 /sbin/ipfw add 80 queue 1 ip from 10.10.15.0/24,10.10.16.0/24 to any in /sbin/ipfw add 85 queue 2 ip from any to 10.10.15.0/24,10.10.16.0/24 out Вставить ник Quote
hmd Posted February 13, 2008 Posted February 13, 2008 (edited) Люди Человеки кто нить может доходчиво обьяснить один раз и навсегда как этот MASk вычесляется .... Edited February 13, 2008 by hmd Вставить ник Quote
Кашмир Posted February 13, 2008 Author Posted February 13, 2008 (edited) Скачай Ланкалькулятор Edited February 13, 2008 by Кашмир Вставить ник Quote
hmd Posted February 14, 2008 Posted February 14, 2008 (edited) с инвертированной маской типа понятно, но почему у тебя маска стала /16= 0x0000ffff когда подсеть /24 Edited February 14, 2008 by hmd Вставить ник Quote
DiM_TauRus Posted February 14, 2008 Posted February 14, 2008 Он или опечатался - или невнимательно скопировал то что я в начале давал. Вставить ник Quote
Кашмир Posted February 14, 2008 Author Posted February 14, 2008 (edited) Опечатался, сорри. Вот верно: #CHANNEL SHAPER /sbin/ipfw pipe 1 config bw 1950Kbit/s /sbin/ipfw pipe 2 config bw 1950Kbit/s /sbin/ipfw queue 1 config pipe 1 weight 50 mask src-ip 0x000000ff gred 0.002/10/30/0.1 /sbin/ipfw queue 2 config pipe 2 weight 75 mask dst-ip 0x000000ff gred 0.002/10/30/0.1 /sbin/ipfw add 80 queue 1 ip from 10.10.15.0/24,10.10.16.0/24 to any in /sbin/ipfw add 85 queue 2 ip from any to 10.10.15.0/24,10.10.16.0/24 out Edited February 14, 2008 by Кашмир Вставить ник Quote
dsk Posted February 14, 2008 Posted February 14, 2008 (edited) Не было там опечатки, и правильно как раз было 0x0000ffff ибо в случае 0x000000ff пайпа будет создаваться по последнему октету, т.е. в одну трубу попадут сразу допустим 10.10.15.15 и 10.10.16.15. Наглядно все это видно в выводе ipfw pipe 1 sh Edited February 14, 2008 by dsk Вставить ник Quote
Alexspils Posted February 16, 2008 Posted February 16, 2008 а ещё замени 10.10.15.0/24,10.10.16.0/24 на таблицу создай файлик, сделай что б запускался вместе с rc.firewall fwcmd="/sbin/ipfw -q" ${fwcmd} table 1 flush ${fwcmd} table 1 add 10.10.15.0/24 ${fwcmd} table 1 add 10.10.16.0/24 ... и вместо /sbin/ipfw add 80 queue 1 ip from 10.10.15.0/24,10.10.16.0/24 to any in /sbin/ipfw add 85 queue 2 ip from any to 10.10.15.0/24,10.10.16.0/24 out получится /sbin/ipfw add 80 queue 1 ip from "table(1)" to any in /sbin/ipfw add 85 queue 2 ip from any to "table(1)" out после этого в таблицу можно добавлять записи не перезапуская весь firewall. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.