Dm1try Posted October 30, 2008 Posted October 30, 2008 (edited) Имеем: FreeBSD unico-lego.vgg.ru 6.4-PRERELEASE В ядре: # IPFW OPTIONS options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_FORWARD options IPSTEALTH options IPFIREWALL_VERBOSE_LIMIT=1000 options IPDIVERT options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options DEVICE_POLLING options HZ=1000 options INCLUDE_CONFIG_FILE Собираю тестовую схему подключения абонентов - задача оттестировать безлимитные тарифы: [PROV] <-> [uif (fxp1)] [FreeBSD][cif (fxp0)] <-> [CLI] В sysctl: net.inet.ip.forwarding=1 net.inet.ip.dummynet.io_fast=1 net.inet.ip.dummynet.hash_size=16384 net.inet.ip.fw.one_pass=0 net.inet.ip.dummynet.expire=0 В IPFW только правила, указанные ниже и ничего кроме них: #!/bin/sh # 1. Global variables # 1.1 Interfaces # 1.1.1 Uplink interface uif="fxp1" unet="194.128.23.252/30" uip="194.128.23.253" # 1.1.2 Client Interface cif="fxp0" cnet="172.16.2.252/30" cip="172.16.2.253" # 1.1.3 Contol Interface mif="vr0" mnet="192.168.23.0/24" mip="192.168.23.71" # 1.2 IPFW executable fwcmd='/sbin/ipfw -q' # 2. Functions (empty by now) # 3. Default ruleset # 3.1 Flushing all rules echo "Flushing all rules." ${fwcmd} -f flush ${fwcmd} -f pipe flush # 3.2 Shaper # 3.2.1 Template :: Unlim 64Kbit/s ${fwcmd} pipe 101 config bw 64Kbit/s ${fwcmd} pipe 102 config bw 64Kbit/s ${fwcmd} queue 101 config pipe 101 mask dst-ip 0xfffffffc queue 7KBytes ${fwcmd} queue 102 config pipe 102 mask src-ip 0xfffffffc queue 7KBytes # 3.2.2 Rules :: Shape IT ${fwcmd} add 101 queue 101 ip from any to ${cnet} out via ${cif} ${fwcmd} add 102 queue 102 ip from ${cnet} to any out via ${uif} При такой конфигурации возникает, значительная задержка. Вот пример: ping -s 1472 -i 0.2 -S 172.16.2.254 194.128.23.254 PING 194.128.23.254 (194.128.23.254) from 172.16.2.254: 1472 data bytes 1480 bytes from 194.128.23.254: icmp_seq=0 ttl=63 time=375.703 ms 1480 bytes from 194.128.23.254: icmp_seq=1 ttl=63 time=374.245 ms 1480 bytes from 194.128.23.254: icmp_seq=2 ttl=63 time=376.296 ms 1480 bytes from 194.128.23.254: icmp_seq=3 ttl=63 time=374.236 ms Хотелось бы разобраться почему, ведь очередь я не перегружаю и, в таком случае, при net.inet.ip.dummynet.io_fast=1 - задержка эмулироваться не должна? Или я принципиально неверно строю схему шейпинга? P.S> Таблица использовать планируется, но пока хочется разобраться с текущей проблемой. Edited October 30, 2008 by Dm1try Вставить ник Quote
t0ly Posted May 14, 2009 Posted May 14, 2009 тут либо для каждого клиента нужнен папйп либо на пайп нужно ставить dst-ip/src-ip маски Вставить ник Quote
mikevlz Posted May 14, 2009 Posted May 14, 2009 тут приводили расчеты по перегрузу очереди. Считается оно чуть-ли не в битах за тик. Вставить ник Quote
t0ly Posted May 14, 2009 Posted May 14, 2009 тут приводили расчеты по перегрузу очереди. Считается оно чуть-ли не в битах за тик. хм, интересно, а ссылка есть или ключ по которому искать? Вставить ник Quote
photon Posted May 15, 2009 Posted May 15, 2009 (edited) Очевидно, что эмуляция низкой скорости 64 kbit/s поверх быстрой среды 100 mbit/s с пакетами по 1472 байта достижима только с помощью больших задержек. Уменьшаются ли задержки при уменьшении размера пакета? queue 7KBytes -- это вообще зачем? Размер очереди лучше указывать в слотах, а не в байтах. Edited May 15, 2009 by photon Вставить ник Quote
t0ly Posted May 15, 2009 Posted May 15, 2009 Очевидно, что эмуляция низкой скорости 64 kbit/s поверх быстрой среды 100 mbit/s с пакетами по 1472 байта достижима только с помощью больших задержек. Уменьшаются ли задержки при уменьшении размера пакета? queue 7KBytes -- это вообще зачем? Размер очереди лучше указывать в слотах, а не в байтах. как например расчитать размер очереди для 70мбитного pipe при hz=1000 и при hz=4000? Вставить ник Quote
photon Posted May 15, 2009 Posted May 15, 2009 Можно оставить и дефолтные 50 слотов, т.к. разница между 70 и 100 мбитами невелика. Главное не ставить слишком малый размер очереди, чтобы пакеты не терялись. Вставить ник Quote
t0ly Posted May 15, 2009 Posted May 15, 2009 (edited) Можно оставить и дефолтные 50 слотов, т.к. разница между 70 и 100 мбитами невелика. Главное не ставить слишком малый размер очереди, чтобы пакеты не терялись. а где в коде либо в коментариях разроботчиков системы dummynet можно про это почитать более развернуто? собственно спрашиваю потому что случается так что на пайпах шириной в 5-70 и более мбит вижу до 15% дропов при недогруженном канале смотрю при помощи ipfw pipe <n> show;sleep 1;ipfw pipe <n> show это глюк отображения или чего либо ещё? как это выяснить в какую сторону двигатся? ЗЫ подобное наблюдаю на freebsd 6.x Edited May 15, 2009 by t0ly Вставить ник Quote
Dm1try Posted May 17, 2009 Author Posted May 17, 2009 t0ly - ссылка вот: http://forum.nag.ru/forum/index.php?showto...st&p=363479 Вставить ник Quote
t0ly Posted May 19, 2009 Posted May 19, 2009 спасибо за ссылку, но тут ссылка на расчёт задержки, как задержка корелирует с размером очереди необходимой для настройки в pipe? Вставить ник Quote
Dm1try Posted May 19, 2009 Author Posted May 19, 2009 тут приводили расчеты по перегрузу очереди. Считается оно чуть-ли не в битах за тик.хм, интересно, а ссылка есть или ключ по которому искать? Я Вам отвечал вот на это. Вставить ник 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.