Название: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Andrey Zentavr от 07 Февраля 2010, 04:52:18 Нарезал себе канал 10 Мбит на исход, 10 Мбит на вход. Захожу на небезизвестный speedtest.net, тыкаю на близлежащую звёздочку и имеем:
(http://www.speedtest.net/result/708431855.png) (http://www.speedtest.net)(http://www.speedtest.net/result/708441346.png) (http://www.speedtest.net)(http://www.speedtest.net/result/708441976.png) (http://www.speedtest.net) (http://www.speedtest.net/result/708442884.png) (http://www.speedtest.net)(http://www.speedtest.net/result/708443312.png) (http://www.speedtest.net)(http://www.speedtest.net/result/708443848.png) (http://www.speedtest.net) Прошу помощи: ибо я где-то недосмотрел, ибо косяк. (http://img10.imageshack.us/img10/3427/tariff.png) (http://img10.imageshack.us/i/tariff.png/) Фаерволл: [root@gw3 ~]# ipfw list 00001 allow ip from any to any via lo0 00002 deny ip from any to 127.0.0.0/8 00003 deny ip from 127.0.0.0/8 to any 00101 allow tcp from me 14120 to 10.1.10.100 00102 allow tcp from 10.1.10.100 to me dst-port 14120 00103 allow tcp from me 14121 to 10.1.10.100 00104 allow tcp from 10.1.10.100 to me dst-port 14121 00105 allow ip from me to 10.1.10.200 00105 allow ip from 10.1.10.200 to me 00106 allow ip from me to me 00107 allow ospf from any to any via lagg0 00107 allow igmp from any to any via lagg0 00107 allow ip from any to 224.0.0.0/4 via lagg0 00108 allow ip from me 22 to table(5) 00108 allow ip from table(5) to me dst-port 22 00109 allow icmp from me to table(5) icmptypes 0,3,4,8,11,12 00109 allow icmp from table(5) to me icmptypes 0,3,4,8,11,12 00110 allow udp from 10.1.10.0/24 to me dst-port 161 in via lagg0 00110 allow udp from me 161 to 10.1.10.0/24 out via lagg0 00120 skipto 130 ip from table(1) to any out via lagg0 00121 skipto 130 ip from any to table(1) in via lagg0 00122 divert 8668 tcp from table(5) to not 10.1.10.100,10.1.10.16 dst-port 80 out via lagg0 00123 divert 8668 tcp from 10.1.10.100 10080 to me in via lagg0 00124 allow tcp from table(5) to any dst-port 80 00125 allow tcp from any 80 to table(5) 00130 skipto 1000 ip from me to any 00135 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17 00140 skipto 2000 ip from any to me 00156 allow tcp from table(5) to 10.1.10.16 dst-port 80 00156 allow tcp from 10.1.10.16 80 to table(5) 00157 allow ip from table(5) to 10.1.10.100 00157 allow ip from 10.1.10.100 to table(5) 00158 allow udp from table(5) to 10.0.0.0/8 dst-port 53 00158 allow udp from 10.0.0.0/8 53 to table(5) 00159 allow udp from table(5) to 194.126.204.0/26 dst-port 53 00159 allow udp from 194.126.204.0/26 53 to table(5) 00170 allow tcp from table(1) to 10.1.10.5 dst-port 20 setup limit src-addr 2 00170 allow tcp from table(1) to 10.1.10.5 dst-port 21 setup limit src-addr 2 00170 allow tcp from table(1) to 10.1.10.10 dst-port 20 setup limit src-addr 2 00170 allow tcp from table(1) to 10.1.10.10 dst-port 21 setup limit src-addr 2 00170 allow tcp from table(1) to 10.1.10.6 dst-port 20 setup limit src-addr 2 00170 allow tcp from table(1) to 10.1.10.6 dst-port 21 setup limit src-addr 2 00200 skipto 500 ip from any to any via lagg0 00300 skipto 4500 ip from any to any in 00400 ngtee 100 ip from any to any 00490 allow ip from any to any 00500 skipto 32500 ip from any to any in 00510 ngtee 100 ip from any to any 00540 allow ip from any to any 01000 allow udp from any 53,7723 to any 01010 allow tcp from any to any setup keep-state 01020 allow udp from any to any keep-state 01100 allow ip from any to any 02000 check-state 02010 allow icmp from any to any 02020 allow tcp from any to any dst-port 80,443 02050 deny ip from any to any via lagg0 02060 allow udp from any to any dst-port 53,7723 02100 deny ip from any to any 05000 deny ip from not table(0) to any 05001 skipto 5010 ip from table(127) to table(126) 05002 skipto 5030 ip from any to not table(2) 05003 deny ip from any to not table(1) 05004 pipe tablearg ip from table(21) to any 05005 deny ip from any to any 05010 pipe tablearg ip from table(127) to any 05030 deny tcp from table(15) to any dst-port 0 05400 pipe tablearg ip from table(11) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 pipe tablearg ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 pipe tablearg ip from any to table(20) 33003 deny ip from any to any 33400 pipe tablearg ip from any to table(10) 65535 allow ip from any to any Количество пакетов, прошедших через фаерволл: [root@gw3 ~]# uptime 4:52AM up 79 days, 9:49, 1 user, load averages: 0.44, 0.38, 0.28 [root@gw3 ~]# ipfw show 00001 893469 57828440 allow ip from any to any via lo0 00002 0 0 deny ip from any to 127.0.0.0/8 00003 0 0 deny ip from 127.0.0.0/8 to any 00101 6414 405668 allow tcp from me 14120 to 10.1.10.100 00102 5377 300434 allow tcp from 10.1.10.100 to me dst-port 14120 00103 644 37777 allow tcp from me 14121 to 10.1.10.100 00104 594 33088 allow tcp from 10.1.10.100 to me dst-port 14121 00105 0 0 allow ip from me to 10.1.10.200 00105 0 0 allow ip from 10.1.10.200 to me 00106 0 0 allow ip from me to me 00107 8367463 915623316 allow ospf from any to any via lagg0 00107 11 352 allow igmp from any to any via lagg0 00107 0 0 allow ip from any to 224.0.0.0/4 via lagg0 00108 987235 842094900 allow ip from me 22 to table(5) 00108 652989 31274196 allow ip from table(5) to me dst-port 22 00109 1969163 278802942 allow icmp from me to table(5) icmptypes 0,3,4,8,11,12 00109 2052769 144545474 allow icmp from table(5) to me icmptypes 0,3,4,8,11,12 00110 2130872 220060087 allow udp from 10.1.10.0/24 to me dst-port 161 in via lagg0 00110 2085108 252040140 allow udp from me 161 to 10.1.10.0/24 out via lagg0 00120 131024594873 73624255719661 skipto 130 ip from table(1) to any out via lagg0 00121 142196278807 139295018211159 skipto 130 ip from any to table(1) in via lagg0 00122 24648980 1218129891 divert 8668 tcp from table(5) to not 10.1.10.100,10.1.10.16 dst-port 80 out via lagg0 00123 12332 5726852 divert 8668 tcp from 10.1.10.100 10080 to me in via lagg0 00124 15009157616 1591806547865 allow tcp from table(5) to any dst-port 80 00125 21885221164 27970769653605 allow tcp from any 80 to table(5) 00130 362752017 348759851654 skipto 1000 ip from me to any 00135 8353 8776896 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17 00140 197975807 85820995566 skipto 2000 ip from any to me 00156 41823 1920124 allow tcp from table(5) to 10.1.10.16 dst-port 80 00156 80349 115665015 allow tcp from 10.1.10.16 80 to table(5) 00157 322854255 17213302371 allow ip from table(5) to 10.1.10.100 00157 282520061 31209384199 allow ip from 10.1.10.100 to table(5) 00158 2469467 344404590 allow udp from table(5) to 10.0.0.0/8 dst-port 53 00158 2179765 246231457 allow udp from 10.0.0.0/8 53 to table(5) 00159 363957667 23075113712 allow udp from table(5) to 194.126.204.0/26 dst-port 53 00159 359707668 73784728156 allow udp from 194.126.204.0/26 53 to table(5) 00170 0 0 allow tcp from table(1) to 10.1.10.5 dst-port 20 setup limit src-addr 2 00170 4953632 273453660 allow tcp from table(1) to 10.1.10.5 dst-port 21 setup limit src-addr 2 00170 0 0 allow tcp from table(1) to 10.1.10.10 dst-port 20 setup limit src-addr 2 00170 2921849 169615556 allow tcp from table(1) to 10.1.10.10 dst-port 21 setup limit src-addr 2 00170 0 0 allow tcp from table(1) to 10.1.10.6 dst-port 20 setup limit src-addr 2 00170 3595295 210873784 allow tcp from table(1) to 10.1.10.6 dst-port 21 setup limit src-addr 2 00200 272059283866 212392736950972 skipto 500 ip from any to any via lagg0 00300 201953821573 151192722754465 skipto 4500 ip from any to any in 00400 203926804741 188632076926001 ngtee 100 ip from any to any 00490 0 0 allow ip from any to any 00500 141728653380 139153398433558 skipto 32500 ip from any to any in 00510 130355382642 73253551711672 ngtee 100 ip from any to any 00540 0 0 allow ip from any to any 01000 38702997 7886691270 allow udp from any 53,7723 to any 01010 181243856 79786294221 allow tcp from any to any setup keep-state 01020 292969958 343678621076 allow udp from any to any keep-state 01100 508576 42227791 allow ip from any to any 02000 0 0 check-state 02010 760579 222539411 allow icmp from any to any 02020 789 38480 allow tcp from any to any dst-port 80,443 02050 2036061 162911710 deny ip from any to any via lagg0 02060 39820357 2488154750 allow udp from any to any dst-port 53,7723 02100 4683364 311963627 deny ip from any to any 05000 215425850 14261032946 deny ip from not table(0) to any 05001 0 0 skipto 5010 ip from table(127) to table(126) 05002 95463883299 71224761054395 skipto 5030 ip from any to not table(2) 05003 70791496 4096108620 deny ip from any to not table(1) 05004 106277394865 79927379227591 pipe tablearg ip from table(21) to any 05005 63 26584 deny ip from any to any 05010 0 0 pipe tablearg ip from table(127) to any 05030 766 37716 deny tcp from table(15) to any dst-port 0 05400 95456435767 71242162164860 pipe tablearg ip from table(11) to any 32000 219 39686 deny ip from any to any 32490 16023 1044533 deny ip from any to any 33000 0 0 pipe tablearg ip from table(126) to table(127) 33001 102022110874 80835334612446 skipto 33010 ip from not table(2) to any 33002 39742282108 58314084658404 pipe tablearg ip from any to table(20) 33003 2239656 124403257 deny ip from any to any 33400 101195114226 79778251670008 pipe tablearg ip from any to table(10) 65535 823513388 1058324921584 allow ip from any to any Ищю свой ИП: [root@gw3 ~]# ipfw table 10 list | grep "10.1.32.194" 10.1.32.194/32 2800 [root@gw3 ~]# ipfw table 11 list | grep "10.1.32.194" 10.1.32.194/32 2801 Смотрю настройки пайпа: [root@gw3 ~]# ipfw pipe 2800 show 02800: 10.240 Mbit/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 62.244.5.162/50968 10.1.32.194/54045 388645928 206677261661 0 0 455562 [root@gw3 ~]# ipfw pipe 2801 show 02801: 10.240 Mbit/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.1.32.194/54044 95.133.186.70/36946 460290607 429148643885 0 0 22366 Оба на 10 Мбит/сек!!! sysctl.conf: [root@gw3 ~]# cat /etc/sysctl.conf #security.bsd.see_other_uids=0 net.inet.tcp.sendspace=3217968 net.inet.tcp.recvspace=3217968 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.inet.tcp.nolocaltimewait=1 net.inet.ip.fastforwarding=1 net.inet.ip.intr_queue_maxlen=5000 net.inet.ip.portrange.first=1024 net.inet.tcp.log_in_vain=0 net.inet.udp.log_in_vain=0 net.inet.tcp.rfc1323=1 net.inet.ip.redirect=0 net.inet.ip.portrange.randomized=0 net.inet.ip.dummynet.hash_size=2048 net.inet.ip.dummynet.io_fast=1 net.inet.ip.fw.one_pass=1 net.inet.ip.fw.dyn_buckets=2048 net.inet.ip.fw.dyn_max=8192 net.isr.direct=1 kern.maxfiles=204800 kern.maxfilesperproc=200000 kern.ipc.maxsockbuf=8388608 kern.ipc.somaxconn=4096 kern.ipc.nmbclusters=262144 kern.ipc.maxsockets=204800 net.inet.tcp.maxtcptw=40960 kern.sync_on_panic=1 kern.coredump=0 net.graph.maxdgram=128000 net.graph.recvspace=128000 #### em tuning dev.em.0.rx_int_delay=250 dev.em.0.tx_int_delay=250 dev.em.0.rx_abs_int_delay=250 dev.em.0.tx_abs_int_delay=250 dev.em.0.rx_kthreads=4 dev.em.1.rx_int_delay=250 dev.em.1.tx_int_delay=250 dev.em.1.rx_abs_int_delay=250 dev.em.1.tx_abs_int_delay=250 dev.em.1.rx_kthreads=4 dev.em.2.rx_int_delay=250 dev.em.2.tx_int_delay=250 dev.em.2.rx_abs_int_delay=250 dev.em.2.tx_abs_int_delay=250 dev.em.2.rx_kthreads=4 dev.em.3.rx_int_delay=250 dev.em.3.tx_int_delay=250 dev.em.3.rx_abs_int_delay=250 dev.em.3.tx_abs_int_delay=250 dev.em.3.rx_kthreads=4 dev.em.4.rx_int_delay=250 dev.em.4.tx_int_delay=250 dev.em.4.rx_abs_int_delay=250 dev.em.4.tx_abs_int_delay=250 dev.em.4.rx_kthreads=4 dev.em.5.rx_int_delay=250 dev.em.5.tx_int_delay=250 dev.em.5.rx_abs_int_delay=250 dev.em.5.tx_abs_int_delay=250 dev.em.5.rx_kthreads=4 dev.em.6.rx_int_delay=250 dev.em.6.tx_int_delay=250 dev.em.6.rx_abs_int_delay=250 dev.em.6.tx_abs_int_delay=250 dev.em.6.rx_kthreads=4 dev.em.7.rx_int_delay=250 dev.em.7.tx_int_delay=250 dev.em.7.rx_abs_int_delay=250 dev.em.7.tx_abs_int_delay=250 dev.em.7.rx_kthreads=4 FreeBSD 7.2-RELEASE-p4 i386. Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: elite от 07 Февраля 2010, 10:23:34 сколько HZ стоит в конфиге ядра?
Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Andrey Zentavr от 07 Февраля 2010, 23:45:58 Ядро:
cpu I686_CPU ident YANDEX options NETGRAPH options NETGRAPH_ETHER options NETGRAPH_TEE options NETGRAPH_NETFLOW options NETGRAPH_PPTPGRE options NETGRAPH_PPP options NETGRAPH_SOCKET options NETGRAPH_IPFW options NETGRAPH_KSOCKET options NETGRAPH_IFACE options NETGRAPH_TCPMSS options NETGRAPH_PPPOE options IPFIREWALL options IPFIREWALL_FORWARD options IPDIVERT options IPFILTER options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options LIBALIAS options KDB_UNATTENDED makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_ULE options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories options UFS_GJOURNAL # Enable gjournal-based UFS journaling options MD_ROOT # MD is a potential root device options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT options MSDOSFS # MSDOS Filesystem options CD9660 # ISO 9660 Filesystem options PROCFS # Process filesystem (requires PSEUDOFS) options PSEUDOFS # Pseudo-filesystem framework options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev options ADAPTIVE_GIANT # Giant mutex is adaptive. options STOP_NMI # Stop CPUS using NMI instead of IPI options AUDIT # Security event auditing options SMP # Symmetric MultiProcessor Kernel device apic # I/O APIC device cpufreq device pci device ata device atadisk # ATA disk drives device ataraid # ATA RAID drives device atapicd # ATAPI CDROM drives device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) device atkbdc # AT keyboard controller device atkbd # AT keyboard device psm # PS/2 mouse device kbdmux # keyboard multiplexer device vga # VGA video card driver device splash # Splash screen and screen saver support device sc device agp # support several AGP chipsets device pmtimer device sio # 8250, 16[45]50 based serial ports device uart # Generic UART driver device loop # Network loopback device random # Entropy device device ether # Ethernet support device sl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" device gif # IPv6 and IPv4 tunneling device faith # IPv6-to-IPv4 relaying (translation) device firmware # firmware assist module device bpf # Berkeley packet filter device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) device ugen # Generic device uhid # "Human Interface Devices" device ukbd # Keyboard device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse Как видно - в конфиге это не указывается. Да и при чём здесь это - поллинга то нет. [zentavr@gw3 ~]$ sysctl -a | grep hz kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 } kern.hz: 1000 debug.psm.hz: 20 Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: dad Min от 12 Февраля 2010, 12:58:39 http://community.livejournal.com/ru_freebsd/169951.html
Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Andrey Zentavr от 12 Февраля 2010, 17:20:00 http://community.livejournal.com/ru_freebsd/169951.html Установка net.inet.ip.dummynet.io_fast=0 не помогла. После обращения переменной в 0 глюк имеет место быть.(http://www.speedtest.net/result/714572455.png) (http://www.speedtest.net) Кстате, что у меня, что и у автора - система amd64 Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: dad Min от 15 Февраля 2010, 11:16:00 Как видно - в конфиге это не указывается. Да и при чём здесь это - поллинга то нет. [zentavr@gw3 ~]$ sysctl -a | grep hz kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 } kern.hz: 1000 debug.psm.hz: 20 HZ не только используется для полинга, в dummynet ипользуется тоже Цитата: Shape-NAT-NetFlow на больших сетях. Часть 1. (http://www.nag.ru/news/17045/) Стоит также отметить одну особенность шейпинга на серверах под управлением FreeBSD. Как известно, параметры шейпинга и точность нарезки канала очень сильно зависят от параметра ядра HZ. Этот параметр задает количество срабатываний внутреннего таймера прерываний в секунду, как правило, он ставится в значение 1000. При необходимости шейпинга трафика на больших количествах очередей и при высокой загруженности сетевой системы по количеству пакетов в секунду, значение этого параметра надо увеличивать, в противном случае пакеты будут пролетать по трубе быстрее, чем шейпер будет успевать их обрабатывать в случае превышения полосы пропускания на клиента. Так, при настройках по умолчанию, на торрент-трафике есть шансы выдать клиенту не 5 мбит/сек, а все 25. В случае шейпинга на ОС Mikrotik данная особенность обнаружена не была. Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Andrey Zentavr от 15 Февраля 2010, 22:13:31 Этт конечно всё хорошо, но почену на приём к клиенту шейп есть, на исход - нет?
Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: smallcms от 16 Февраля 2010, 00:18:38 Этт конечно всё хорошо, но почену на приём к клиенту шейп есть, на исход - нет? Потому что двухмегабитный анлим на 100 юзеров, с исходящими 512кбит на ADSL билионе не каждый программист видел. Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Efendy от 19 Февраля 2010, 22:57:46 Код: ipfw add 1 count ip from 10.1.32.194 to any in Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: Andrey Zentavr от 28 Февраля 2010, 06:19:58 Код: ipfw add 1 count ip from 10.1.32.194 to any in Код: Every 1s: ipfw show | grep "10.1.32.194" Sun Feb 28 05:36:55 2010 Название: Re: Шейпер на аплоад: скорость выше указанной в 2-4 раза Отправлено: smallcms от 28 Февраля 2010, 07:20:49 Осмелюсь предложить указать в тарифе исходящий 0.
Это даст Вам возможность гулять в одном пайпе, правда тариф будет называться не 10 вх + 10 исх, а 10 суммарно (или 20 суммарно). Но я не настаиваю. Просто как вариант... |