глюки с ipfw и dummynet?

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-24 10:45:26

Здравствуйте уважаемые гуру.

Столкнулся с следующей проблемой. Почему то по некоторым портам скорость не шейпится.

Установлена FreeBSD 6.4 i386.
Каналы нарезаются следующим способом.

Код: Выделить всё

${FwCMD} pipe 10 config mask src-ip 0xffffffff bw 64Kbit/s
${FwCMD} pipe 15 config mask dst-ip 0xffffffff bw 64Kbit/s
при добавлении следующего правила трафик почему то проходит мимо трубы, т.е. вообще не шейпится, скорость подпрыгивает до 5мбит/с

Код: Выделить всё

${FwCMD} add allow all from any 27000 to any
${FwCMD} add allow all from any to any 27000
в sysctl установлено следующее переменная net.inet.ip.fw.one_pass=0
Подскажите пожалуйста, куда копать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение terminus » 2010-02-24 10:55:49

all == ip.

Код: Выделить всё

${FwCMD} add allow tcp from any 27000 to any
${FwCMD} add allow tcp from any to any 27000
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-24 11:36:57

не множко не понял, извини за тупизм, т.е. получается что при задании add allow all не шейпится, а при задании add allow tcp шейпится?

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-24 11:41:30

сейчас поставил add allow tcp и все равно не шейпится:(

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение terminus » 2010-02-24 11:44:51

Код: Выделить всё

ipfw show
Все правила надо видеть, а так же куда вставляете эти строки.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-24 12:05:30

Код: Выделить всё

#!/bin/sh

FwCMD="/sbin/ipfw -q"

LanOut="em0"
NetOut="xxx.xxx.xxx.xxx
IpOut="xxx.xxx.xxx.xxx"

LanIn="em1"
NetIn="10.0.0.0/8"


${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush
#pipe
${FwCMD} add 100 allow ip from any to any via lo0
${FwCMD} add 101 deny ip from any to 127.0.0.1/8
${FwCMD} add 102 deny ip from 127.0.0.1/8 to any
${FwCMD} add 103 deny ip from table\(40\) to any
${FwCMD} add 104 deny ip from any to table\(40\)
${FwCMD} add 105 deny tcp from table\(40\) to any
${FwCMD} add 106 deny tcp from any to table\(40\)
${FwCMD} add 107 deny udp from table\(40\) to any
${FwCMD} add 108 deny udp from any to table\(40\)
${FwCMD} add 110 deny all from 10.0.0.0/8 to any in via em0
${FwCMD} add 111 divert natd all from any to any via em0
${FwCMD} add 112 deny log ip from any to me 3306
${FwCMD} add 113 deny log tcp from any to me 3306
${FwCMD} add 114 deny log udp from any to me 3306
${FwCMD} add 200 tee 7223 ip from any to any via em0
${FwCMD} add 201 reject tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
${FwCMD} add 202 reject tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
${FwCMD} add 203 reject log tcp from any to any not established tcpflags fin
${FwCMD} add 204 deny log ip from any to any not verrevpath in
#64Kbit/s
${FwCMD} pipe 10 config mask src-ip 0xffffffff bw 64Kbit/s queue 20Kbytes
${FwCMD} pipe 15 config mask dst-ip 0xffffffff bw 64Kbit/s queue 20Kbytes
${FwCMD} add pipe 10 all from table\(10\) to any in
${FwCMD} add pipe 15 all from any to table\(10\) out
${FwCMD} add allow tcp from table\(10\) to any
${FwCMD} add allow tcp from any to table\(10\)
${FwCMD} add allow udp from table\(10\) to any
${FwCMD} add allow udp from any to table\(10\)

#128Kbit/s
${FwCMD} pipe 20 config mask src-ip 0xffffffff bw 128Kbit/s queue 20Kbytes
${FwCMD} pipe 25 config mask dst-ip 0xffffffff bw 128Kbit/s queue 20Kbytes
${FwCMD} add pipe 20 all from table\(12\) to any in
${FwCMD} add pipe 25 all from any to table\(12\) out
${FwCMD} add allow tcp from table\(12\) to any
${FwCMD} add allow tcp from any to table\(12\)
${FwCMD} add allow udp from table\(12\) to any
${FwCMD} add allow udp from any to table\(12\)

#256Kbit/s
${FwCMD} pipe 30 config mask src-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} pipe 35 config mask dst-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} add pipe 30 all from table\(14\) to any in
${FwCMD} add pipe 35 all from any to table\(14\) out
${FwCMD} add allow tcp from table\(14\) to any
${FwCMD} add allow tcp from any to table\(14\)
${FwCMD} add allow udp from table\(14\) to any
${FwCMD} add allow udp from any to table\(14\)

#512Kbit/s
${FwCMD} pipe 40 config mask src-ip 0xffffffff bw 512Kbit/s queue 20Kbytes
${FwCMD} pipe 45 config mask dst-ip 0xffffffff bw 512Kbit/s queue 20Kbytes
${FwCMD} add pipe 40 all from table\(16\) to any in
${FwCMD} add pipe 45 all from any to table\(16\) out
${FwCMD} add allow tcp from table\(16\) to any
${FwCMD} add allow tcp from any to table\(16\)
${FwCMD} add allow udp from table\(16\) to any
${FwCMD} add allow udp from any to table\(16\)

########################################################################
${FwCMD} pipe 50 config mask src-ip 0xffffffff bw 1Mbit/s queue 20Kbytes
${FwCMD} pipe 55 config mask dst-ip 0xffffffff bw 1Mbit/s queue 20Kbytes
${FwCMD} add pipe 50 all from table\(18\) to any in
${FwCMD} add pipe 55 all from any to table\(18\) out
${FwCMD} add allow tcp from table\(18\) to any
${FwCMD} add allow tcp from any to table\(18\)
${FwCMD} add allow udp from table\(10\) to any
${FwCMD} add allow udp from any to table\(10\)

${FwCMD} add 449 deny all from any 139 to me in via em0
${FwCMD} add 449 deny all from any 145 to me in via em0

${FwCMD} add 450 allow ip from me to 10.0.0.0/8
${FwCMD} add 550 allow ip from 10.0.0.0/8 to me
#########################################################################################################################################
#DNS
${FwCMD} add 560 allow udp from any 53, 123 to any
${FwCMD} add 570 allow udp from any to any 53, 123

#Counter-Strike
${FwCMD} add 575 allow udp from any 27000-29999 to any
${FwCMD} add 577 allow udp from any to any 27000-29999
${FwCMD} add 579 allow tcp from any 27000-29999 to any
${FwCMD} add 581 allow tcp from any to any 27000-29999


#WOW
${FwCMD} add 607 allow tcp from any 1119, 3000, 3724 to any
${FwCMD} add 608 allow tcp from any to any 1119, 3000, 3724

#FTP 20
${FwCMD} add 609 allow tcp from any 20 to any
${FwCMD} add 610 allow tcp from any to any 20
${FwCMD} add 611 allow udp from any 20 to any
${FwCMD} add 612 allow udp from any to any 20

#FTP 21
${FwCMD} add 613 allow tcp from any 21 to any
${FwCMD} add 614 allow tcp from any to any 21
${FwCMD} add 615 allow udp from any 21 to any
${FwCMD} add 616 allow udp from any to any 21

#Ventrilo
${FwCMD} add 616 allow udp from any 3908 to any
${FwCMD} add 617 allow udp from any to any 3908
${FwCMD} add 618 allow tcp from any 3908 to any
${FwCMD} add 619 allow tcp from any to any 3908
${FwCMD} add 620 allow udp from any 4088 to any
${FwCMD} add 621 allow tcp from any 4088 to any
${FwCMD} add 622 allow udp from any to any 4088
${FwCMD} add 623 allow tcp from any to any 4088

#garena
#${FwCMD} add 638 allow tcp from any 6100-9999 to any
#${FwCMD} add 639 allow tcp from any to any 6100-9999
#${FwCMD} add 640 allow udp from any 6100-9999 to any
#${FwCMD} add 641 allow udp from any to any 6100-9999
${FwCMD} add 642 allow tcp from any 1513, 1514, 8688, 7456, 6112, 4000, 6200, 8080 to any
${FwCMD} add 643 allow tcp from any to any 1513, 1514, 8688, 7456, 6112, 4000, 6200, 8080
${FwCMD} add 644 allow udp from any 1513, 1514, 8688, 7456, 6112, 4000, 6200, 8080 to any
${FwCMD} add 645 allow udp from any to any 1513, 1514, 8688, 7456, 6112, 4000, 6200, 8080

#Lord of the Rings
${FwCMD} add 646 allow tcp from any 20, 21, 1080, 2900, 2937, 3389, 6015, 7000, 9000, 9002, 9004, 9006, 9008, 9010, 9012, 9014, 9016, 19001, 19093 to any
${FwCMD} add 647 allow tcp from any to any  20, 21, 1080, 2900, 2937, 3389, 6015, 7000, 9000, 9002, 9004, 9006, 9008, 9010, 9012, 9014, 9016, 19001, 19093
${FwCMD} add 648 allow udp from any  2900, 9000, 9002, 9004, 9006, 9008, 9010, 9012, 9014, 9016 to any
${FwCMD} add 649 allow udp from any to any 2900, 9000, 9002, 9004, 9006, 9008, 9010, 9012, 9014, 9016

${FwCMD} add 750 allow tcp from any to me in via em0
${FwCMD} add 810 allow tcp from me to any out via em0

${FwCMD} add 3026 pass tcp from any 3908 to any
${FwCMD} add 3027 deny icmp from any to me via em0
${FwCMD} add 3028 deny icmp from any to me via em1

${FwCMD} add deny all from any to any via em0
${FwCMD} add deny log ip from any to any
Если какая то строчка не в том месте находится, плз подскажи.

Кстати, ipfw по умолчанию deny.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение terminus » 2010-02-24 12:09:25

в какое место конфига это

Код: Выделить всё

${FwCMD} add allow all from any 27000 to any
${FwCMD} add allow all from any to any 27000
вставлялось?

какой IP у того для кого перестают работать лимиты? в какой он таблице?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-24 12:34:46

вообщем сейчас стало шепится вроде как, но если запускаешь торрент у клиента на порту 27000, то нифига не шейпится.
вот это

Код: Выделить всё

${FwCMD} add allow all from any 27000 to any
${FwCMD} add allow all from any to any 27000
раньше было так

Код: Выделить всё

${FwCMD} add 575 allow all from any 27000-29999 to any
${FwCMD} add 577 allow all from any to any 27000-29999
а теперь вот так

Код: Выделить всё

${FwCMD} add 575 allow udp from any 27000-29999 to any
${FwCMD} add 577 allow udp from any to any 27000-29999
${FwCMD} add 579 allow tcp from any 27000-29999 to any
${FwCMD} add 581 allow tcp from any to any 27000-29999

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-26 15:02:45

Почему то, если добавляю setup keep-state в конце этих правил, скорость торрента ограничивается, а например Counter-Strike не работает

Код: Выделить всё

${FwCMD} add 575 allow udp from any 27000-29999 to any setup keep-state
${FwCMD} add 577 allow udp from any to any 27000-29999 setup keep-state
${FwCMD} add 579 allow tcp from any 27000-29999 to any setup keep-state
${FwCMD} add 581 allow tcp from any to any 27000-29999 setup keep-state

Аватара пользователя
bahan
рядовой
Сообщения: 35
Зарегистрирован: 2009-03-31 13:43:48

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение bahan » 2010-02-26 15:11:44

ребят помогите пожалуйста разобраться с проблемой, handbook весь перечитал и googl-ил тоже
Почему то чел который находится в любой из этих таблиц, если врубает торрент, то вываливается из pipe-а своего

napTu2
проходил мимо

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение napTu2 » 2010-05-24 19:25:24

чет я тоже замечаю что иногда торент рулит в обход установленного правила,
но точно еще не определился, но это при 30-40Мегабит и на 8й фре

А вот по вашей ситуации,
у вас трафик шейпится только для table,

Код: Выделить всё

${FwCMD} pipe 30 config mask src-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} pipe 35 config mask dst-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} add pipe 30 all from table\(14\) to any in
${FwCMD} add pipe 35 all from any to table\(14\) out
а затем у кого прошейпилось, тому и разрешается весь tcp и udp

Код: Выделить всё

${FwCMD} add allow tcp from table\(14\) to any
${FwCMD} add allow tcp from any to table\(14\)
${FwCMD} add allow udp from table\(14\) to any
${FwCMD} add allow udp from any to table\(14\
и не нужно тут никаких дополнительных

Код: Выделить всё

${FwCMD} add allow all from any 27000 to any
${FwCMD} add allow all from any to any 27000
а если абонент не в table, то и шейпится не будет.

Кроме того порядок нужно учитывать, чтобы сначала в шейпер загонялось, а потом разрешалось.

napTu
рядовой
Сообщения: 17
Зарегистрирован: 2009-09-23 18:47:44

Re: глюки с ipfw и dummynet?

Непрочитанное сообщение napTu » 2010-05-25 17:43:20

человек отписал проблему с dummynet, когда та не режет трафик, у себя в жж http://community.livejournal.com/ru_freebsd/169951.html
у него при превышении 11999Kbit/s перестает работать ограничение, но врубается при net.inet.ip.dummynet.io_fast=0

наблюдаю тоже самое на 8й фре.
точно порог не определял, но на 16Мегабитной пайпе качают иногда 30-40мегабит
При переводе io_fast в 0 трафик становится равным порогу.
вот что говорит trafshow:

Код: Выделить всё

Source                          Destination                     Protocol     Size         CPS
????????????????????????????????????????????????????????????????????????????????????????????????????
sol-fttb.231.220.163.188.,43732 192.168.15.122,59443            tcp          24043K       34
109.86.42.250,27305             192.168.15.122,16223            udp          23644K       870K
212.87.173.190,64786            192.168.15.122,59452            tcp          22840K       141K
94.244.16.27,44209              192.168.15.122,59719            tcp          21268K       462K
188.231.155.52.freenet.co,59039 192.168.15.122,16223            udp          20610K       1131K
95.69.188.49,21829              192.168.15.122,16223            udp          19977K       537K
188.231.155.179.freenet.c,53549 192.168.15.122,16223            udp          19279K       901K
sol-fttb.250.103.27.94.so,43815 192.168.15.122,60015            tcp          16781K       429K
sol-fttb.197.192.163.188.,30317 192.168.15.122,59752            tcp          4276K        87K
sol-fttb.194.25.163.188.s,40278 192.168.15.122,59423            tcp          2904K        104K
sol-fttb.153.67.27.94.sov,20180 192.168.15.122,60007            tcp          2628K        85K
silkwormly-eraser.volia.n,54576 192.168.15.122,16223            udp          1612K        46K
sol-fttb.118.95.27.94.sov,18068 192.168.15.122,59748            tcp          1438K        19K
remissionly.oatmeal.volia,42258 192.168.15.122,16223            udp          1243K        10K
93.126.84.223,32082             192.168.15.122,16223            udp          1054K        81K
sol-fttb.124.133.163.188.,13316 192.168.15.122,59446            tcp          443K         18K
а отсюда можно увидеть что проблема возможно в том что трафик одновременно поступает с разных хостов на один адрес и порт.