Ограничения кол-ва сесий и скорости в ipfw

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение HEDG_SS » 2008-11-22 20:45:39

Была поставлена задача ограничивать пользователей по количеству сесий и по скорости. Ограничения должны не мешать нормальному веб-серфингу даже по "тяжелым" сайтам (например таких как vkontakte.ru), пользования аськой, возможно что то поставить на закачку. Должна быть исключена возможность субпровайдинга и торентов.

Попытка реализации:
На шлюзе стоит FreeBSD 7.0-RELEASE, для ограничения выбран ipfw из-за достаточно простого применения.
Набор правил которые используются в ipfw

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

ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
В таблицу 10 заносятся все пользователи на которых действуют эти ограничения.

Решено резать только исходящие потоки, чтоб исключать такие моменты: как Пользователь открыл пару страниц, от него запросы ушли. Он потом решил, что его не интерисует больше данная страница и закрывает ее, пытаясь открыть другую. Ответы от ненужно страницы будут уже не нужными, но будут мешать открытию нужной страницы, внося задержки.

Для тестов на пользовательских компах использовалась ОС Windows XP Prof SP3 с последними обновлениями.
Что получено - нарезка трафика выполняется правильно, ограничение сесий действует, все как бы хорошо, но есть одно большое НО...

Собственно проблема:
Проблем нет при использовании Opera (8.x-9.x) или Mozila Firefox (2.x-3.x) (даже при ограничении конектов на 15), она появляется когда пользователь использует IE7 или браузер использующий его ядро (например Maxton). Некоторые картинки не подгружаются, а вместо них появляются красные крестики, в эти же моменты часто выбивает icq и putty.

Что пытался делать:
1. Пробовал с разных компов, ситуация не меняется.
2. Увеличивал колличство конектов до 100 , проблема остается. При увеличении до 150 иногда картинки все же вываливаются.
3. Отключал антифишинг и воообще все модули запуском из командной строки iexplore -extoff
4. По умолчанию количество одновременных сесий равно 10, пробовал уменьшать даже до 1. Не помогло.
5. В настройке пайпов пробовал ставить queue 1024Kbit/s
6. Пробовал через пайпы пропускать без ограничений только tcp сесии с флагом established. А Ограничения налаживать правилом, стоящим раньше

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

"ipfw -q add 400 allow ip from any to table(10) limit src-addr 30 out setup" 
Все вышеописанное не помогло :(, подскажите в чем может быть такая трабла? :st:
Чем так сильно отличается работа IE от Mozila и Opera?
Последний раз редактировалось manefesto 2008-11-22 21:02:15, всего редактировалось 1 раз.
Причина: Убедительная просьба юзать теги [code] при оформлении листингов.

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35428
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение Alex Keda » 2008-11-22 22:31:47

юзать правильный браузер?
===
тема-то виндовая - тюнинг ослика...
а вообще - разреши до всего этого вещщи типа ASK и т.п. - чтоб они мимо пайпов шли... мож поможет....
Убей их всех! Бог потом рассортирует...

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение HEDG_SS » 2008-12-01 14:39:53

Учитывая, что пользователи могут использовать практически любое ПО, в том числе и браузеры, то хочется один раз сделать, чтоб все работало "правильно" и забыть об этом :). поэтому все должно настраиваться на роутерах.
Последовал Вашему совету
Пробовал такую конструкцию.

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

ipfw -q add 400 allow tcp from table(10) to any out setup limit src-addr 200
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
IE работает без проблем. появилося другой момент. При обычном серфинге большая
часть tcp соединений проходит мимо пайпа, соответственно тем же торентом при быстрой раздаче можно
раскочегарить пакет на большую скорость, что совсем не приемлимо. Пробовал
запихать это правило тоже в пайп

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

ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 550 pipe 500 tcp from table(10) to any out setup limit src-addr 200
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 30
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
Получается что почти все tcp пакеты попадают в 550 правило, tcp соединения не
проходят :(
Подскажите пожалуйста, что я не понимаю или не знаю в динамических правилах и
пайпах. Почему одно и тоже правило вне пайпа работает,а в пайпе нет?

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение HEDG_SS » 2008-12-06 12:21:08

В общем после бесчисленного колличества эксперементов пришел к такой конструкции

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

ipfw -q add 400 allow tcp from table(10) to any out setup
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 20
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
Лимит из 400 правила убрал, т.к. образуется динамическое правило через которое могло проходить много трафика (например при помощи того же торента). Т.е. разрешается посылка неограниченного количества tcp пакетов c флагом syn (первая стадия тройного рукопожатия), эти пакеты имеют маленький размер. В результате через 1-е правило проходит примерно 0,5-0,6 % трафика клиента, что является приемлемым. При этом IE работает нормально.

Примечание: lissyara, СПАСИБО огромное за подсказку в каком направлении копать!! Потому что на тот момент я начал тихо ненавидеть ipfw и :st: . Хуже всего когда не остается мыслей, что еще можно попробовать...

Я понимаю конечно, что данная конструкция далека от совершенства ) .
Если, кто-то сможет подсказать более красивое решение, буду очень рад :)

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

Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение jiuhb » 2008-12-06 14:48:09

Ситуация следующая:
Есть локалка из 10и компов и 1 общий канал в инет(АДСЛ). Есть фряшный роутер, который занимается раздачей инета и подсчётом статистики.

Теперь в подробностях:

uname -a :

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

FreeBSD jupiter.skynet 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #2: Sun Nov 30 15:29:37 EET 2008     
root@jupiter.skynet:/usr/obj/usr/src/sys/JUPITER  i386
ядро:

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

#Packet filter
device          pf
device          pflog
device          pfsync


#IPFW and kernel NAT options
options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #enable logging to syslogd(8)
options         IPFIREWALL_DEFAULT_TO_ACCEPT    #allow everything by default
options         IPDIVERT
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         IPFIREWALL_NAT          #ipfw kernel nat support
options         LIBALIAS

options         DEVICE_POLLING

options         NETGRAPH
options         NETGRAPH_PPP
options         PPP_BSDCOMP
options         PPP_DEFLATE
options         PPP_FILTER
#options         TCP_DROP_SYNFIN
options         NETGRAPH_NAT
options         NETGRAPH_NETFLOW
options         NETGRAPH_SPLIT
options         NETGRAPH_ETHER
options         NETGRAPH_KSOCKET
options         KVA_PAGES=512

options         NETGRAPH_SOCKET
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_MPPC_ENCRYPTION
#options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC

options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
- в качестве NAT использую kernel NAT
- ALTQ и PF включил в надежде что поможет в решении моей проблемы... не тут то было...

ifconfig:

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

vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:17:9a:bb:ba:1a
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:4e:06:1d:7c
        inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 127.0.0.1 netmask 0xff000000
pflog0: flags=0<> metric 0 mtu 33204
ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng2: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1456
        inet 10.10.1.1 --> 10.10.1.11 netmask 0xffffffff
ng3: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng4: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng5: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng6: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng7: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng8: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng9: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng10: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng11: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        inet 92.112.ххх.ххх --> 195.5.5.185 netmask 0xffffffff
        Opened by PID 3904
где
- vr0 - смотрящий в сторону ADSL-модема;
- rl0 - смотрящий в локалку;
- ngx - mpd интерфейсы, обслуживающий несколько VPN клиентов;
- tun0 - смотрящий в инет (для подключения используется ppp)

ipfw pipe show:

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

00001: 512.000 Kbit/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 udp   194.145.187.23/12907    192.168.0.10/6888  7500  6925959  0    0  41
==> При малейшей загрузке канала начинается следующее: <==

Огромный пинг

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

C:\Users\Inferno>ping 195.5.11.210 -t

Обмен пакетами с 195.5.11.210 по с 32 байт данных:

Ответ от 195.5.11.210: число байт=32 время=210мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=18мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=390мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=1002мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=971мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=1326мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=1942мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=1947мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=506мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=16мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=194мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=23мс TTL=61
Ответ от 195.5.11.210: число байт=32 время=97мс TTL=61

Статистика Ping для 195.5.11.210:
    Пакетов: отправлено = 13, получено = 13, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 16мсек, Максимальное = 1947 мсек, Среднее = 664 мсек
=============================================================================
Да и скорость слишком уж режется:

Изображение

До этого связка natd+ipfw dummynet работала безотказно более года, правда на другом железе и на FreeBSD 6.2 .
Уважаемые гуру, помогите плиз в решении этой проблемы, вся надежда на вас. Ибо гугл был перелопачен уже неоднократно... но к сожалению безрезультатно.

Заранее благодарен!

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение zingel » 2008-12-06 15:05:49

не нужно столько всего в ядро.
Z301171463546 - можно пожертвовать мне денег

Гость
проходил мимо

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение Гость » 2008-12-06 15:13:01

zingel писал(а):не нужно столько всего в ядро.
согласен, это всё результат моих попыток исправить сложившееся положение.

и всё же, подскажи плиз, куда рыть?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение zingel » 2008-12-06 15:29:17

я бы попробовал потюнить сетевой стек через sysctl, предворительно глянув

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

vmstat -z
Z301171463546 - можно пожертвовать мне денег

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

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение jiuhb » 2008-12-06 16:45:05

Вот результат вывода vmstat -z:

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

ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS  FAILURES

UMA Kegs:                 128,        0,       89,        1,       89,        0
UMA Zones:                120,        0,       89,        1,       89,        0
UMA Slabs:                 64,        0,      554,       36,     2070,        0
UMA RCntSlabs:            104,        0,      200,       22,      200,        0
UMA Hash:                 128,        0,        4,       26,        6,        0
16 Bucket:                 76,        0,       30,       20,       34,        0
32 Bucket:                140,        0,       52,        4,       59,        0
64 Bucket:                268,        0,       77,        7,       94,        0
128 Bucket:               524,        0,      329,        0,      343,     3739
VM OBJECT:                124,        0,    11998,     4680,   323689,        0
MAP:                      140,        0,        7,       49,        7,        0
KMAP ENTRY:                68,    15736,       20,      148,    11577,        0
MAP ENTRY:                 68,        0,     2077,      275,   348169,        0
DP fakepg:                 72,        0,        0,        0,        0,        0
mt_zone:                   64,        0,      177,       59,      177,        0
16:                        16,        0,     2524,      318, 138384114,        0
32:                        32,        0,     1858,     4018, 111150305,        0
64:                        64,        0,     3956,     1177, 123599959,        0
128:                      128,        0,      972,     6228,   462490,        0
256:                      256,        0,      557,     3883,   303892,        0
512:                      512,        0,      160,       40,    46047,        0
1024:                    1024,        0,       47,       61,   297403,        0
2048:                    2048,        0,      200,      134,      929,        0
4096:                    4096,        0,       99,       20,    12957,        0
Files:                     72,        0,      191,       74,   580826,        0
TURNSTILE:                 76,        0,      127,       65,      127,        0
umtx pi:                   52,        0,        0,        0,        0,        0
PROC:                     684,        0,       74,       16,     8715,        0
THREAD:                   516,        0,      110,       16,     2747,        0
UPCALL:                    44,        0,        0,        0,        0,        0
SLEEPQUEUE:                32,        0,      127,      212,      127,        0
VMSPACE:                  232,        0,       37,       31,     8678,        0
audit_record:             856,        0,        0,        0,        0,        0
mbuf_packet:              256,        0,      256,      128, 62299093,        0
mbuf:                     256,        0,        5,      136, 159873724,        0
mbuf_cluster:            2048,     8896,      385,        5,  1079892,        0
mbuf_jumbo_pagesize:     4096,     4448,        0,        5,      316,        0
mbuf_jumbo_9k:           9216,     2224,        0,        0,        0,        0
mbuf_jumbo_16k:         16384,     1112,        0,        0,        0,        0
mbuf_ext_refcnt:            4,        0,        0,      203,      143,        0
ACL UMA zone:             388,        0,        0,        0,        0,        0
NetGraph items:            36,      546,        1,      155, 30100170,        0
g_bio:                    132,        0,        0,     1595,  2210219,        0
ata_request:              192,        0,        0,      420,   552651,        0
ata_composite:            184,        0,        0,        0,        0,        0
VNODE:                    272,        0,    14842,     2350,   774038,        0
VNODEPOLL:                 64,        0,        0,        0,        0,        0
S VFS Cache:               68,        0,    20830,     1234,  2527009,        0
L VFS Cache:              291,        0,      197,      128,     9374,        0
NAMEI:                   1024,        0,        0,       12, 10665306,        0
DIRHASH:                 1024,        0,      713,       63,     2117,        0
pipe:                     396,        0,        7,       23,     4214,        0
ksiginfo:                  80,        0,       63,       81,       63,        0
itimer:                   220,        0,        0,        0,        0,        0
KNOTE:                     68,        0,        0,      112,      194,        0
socket:                   396,     3980,       77,       23,    18237,        0
unpcb:                    168,     3979,       28,       41,     1548,        0
ipq:                       32,      339,        0,      226,        7,        0
udpcb:                    180,     3982,        6,       38,    15904,        0
inpcb:                    180,     3982,       14,       30,      436,        0
tcpcb:                    464,     3976,       14,       10,      436,        0
tcptw:                     52,      864,        0,      144,       63,        0
syncache:                 100,    15366,        0,       78,      142,        0
hostcache:                 76,    15400,        1,       99,       33,        0
tcpreass:                  20,      676,        0,      169,      393,        0
sackhole:                  20,        0,        0,      169,      953,        0
ripcb:                    180,     3982,        3,       41,      141,        0
rtentry:                  120,        0,       19,       45,    10615,        0
pfsrctrpl:                124,    10013,        0,        0,        0,        0
pfrulepl:                 828,        0,        9,       11,       33,        0
pfstatepl:                284,    10010,      289,      621,   294440,        0
pfaltqpl:                 224,        0,        0,        0,        0,        0
pfpooladdrpl:              68,        0,        8,      104,       27,        0
pfrktable:               1240,     1002,        0,        0,        0,        0
pfrkentry:                156,   200000,        0,        0,        0,        0
pfrkentry2:               156,        0,        0,        0,        0,        0
pffrent:                   16,     5075,        0,      203,     1180,        0
pffrag:                    48,        0,        0,      156,      427,        0
pffrcache:                 48,    10062,        0,        0,        0,        0
pffrcent:                  12,    50141,        0,        0,        0,        0
pfstatescrub:              28,        0,        0,        0,        0,        0
pfiaddrpl:                100,        0,        0,        0,        0,        0
pfospfen:                 108,        0,      696,       24,     6960,        0
pfosfp:                    28,        0,      407,      228,     4070,        0
divcb:                    180,     3982,        1,       43,        2,        0
IPFW dynamic rule:        108,        0,        0,        0,        0,        0
SWAPMETA:                 276,    31066,        0,        0,        0,        0
Mountpoints:              668,        0,        6,        6,        6,        0
FFS inode:                132,        0,    14811,     2299,   773962,        0
FFS1 dinode:              128,        0,        0,        0,        0,        0
FFS2 dinode:              256,        0,    14811,     2274,   773962,        0
и вот ещё netstat -m:

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

262/263/525 mbufs in use (current/cache/total)
257/133/390/8896 mbuf clusters in use (current/cache/total/max)
256/128 mbuf+clusters out of packet secondary zone in use (current/cache)
0/5/5/4448 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/2224 9k jumbo clusters in use (current/cache/total/max)
0/0/0/1112 16k jumbo clusters in use (current/cache/total/max)
579K/351K/931K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/5/2480 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
1 requests for I/O initiated by sendfile
0 calls to protocol drain routines
и подскажи плиз что и на какие значения менять. а то я всё же не здорово силён в этом разнообразии параметров
спасибо!

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение zingel » 2008-12-06 17:38:00

Z301171463546 - можно пожертвовать мне денег

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

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение jiuhb » 2008-12-06 18:03:17

Сделал так как описано в статье, поставил те же значения:

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

16:42:48 ineo@jupiter.skynet:~>sysctl -a | grep net.inet.ip.redirect
net.inet.ip.redirect: 1
16:43:08 ineo@jupiter.skynet:~>sudo sysctl net.inet.ip.redirect=0
net.inet.ip.redirect: 1 -> 0

16:44:28 ineo@jupiter.skynet:~>sysctl -a | grep net.inet.icmp.drop_redirec
net.inet.icmp.drop_redirect: 0
16:45:01 ineo@jupiter.skynet:~>sudo sysctl net.inet.icmp.drop_redirect=1
net.inet.icmp.drop_redirect: 0 -> 1

16:45:52 ineo@jupiter.skynet:~>sudo sysctl -a | grep net.inet.icmp.log_redirect
net.inet.icmp.log_redirect: 0
16:45:56 ineo@jupiter.skynet:~>sudo sysctl  net.inet.icmp.log_redirect=1
net.inet.icmp.log_redirect: 0 -> 1

16:46:08 ineo@jupiter.skynet:~>sudo sysctl -a | grep net.inet.tcp.sendspace
net.inet.tcp.sendspace: 32768
16:46:38 ineo@jupiter.skynet:~>sudo sysctl net.inet.tcp.sendspace=65536
net.inet.tcp.sendspace: 32768 -> 65536

16:47:00 ineo@jupiter.skynet:~>sudo sysctl -a | grep net.inet.tcp.recvspace
net.inet.tcp.recvspace: 65536

16:47:36 ineo@jupiter.skynet:~>sudo sysctl -a | grep net.link.ether.inet.max_age
net.link.ether.inet.max_age: 1200

16:47:42 ineo@jupiter.skynet:~>sysctl -a | grep sourceroute
net.inet.ip.sourceroute: 0
net.inet.ip.accept_sourceroute: 0
16:48:11 ineo@jupiter.skynet:~>sysctl -a | grep bmcastecho
net.inet.icmp.bmcastecho: 0
16:48:26 ineo@jupiter.skynet:~>sysctl -a | grep maskrepl
net.inet.icmp.maskrepl: 0

16:49:05 ineo@jupiter.skynet:~>sysctl -a | grep net.inet.tcp.msl
net.inet.tcp.msl: 30000
16:49:25 ineo@jupiter.skynet:~>sudo sysctl net.inet.tcp.msl=15000
net.inet.tcp.msl: 30000 -> 15000

16:49:45 ineo@jupiter.skynet:~>sysctl -a | grep net.inet.tcp.log_in_vain
net.inet.tcp.log_in_vain: 0
16:53:04 ineo@jupiter.skynet:~>sysctl -a | net.inet.tcp.sack.enable
-bash: net.inet.tcp.sack.enable: command not found

16:53:53 ineo@jupiter.skynet:~>sysctl -a | grep net.inet.tcp.sack.enable
net.inet.tcp.sack.enable: 1
16:53:59 ineo@jupiter.skynet:~>sudo sysctl net.inet.tcp.sack.enable=0
net.inet.tcp.sack.enable: 1 -> 0
но к сожалению ситуация не изменилась. Какие ещё могут быть варианты?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение zingel » 2008-12-06 18:04:39

зачем те же.....ну ман бы хоть мосмотрел

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

man sysctl
Z301171463546 - можно пожертвовать мне денег

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

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение jiuhb » 2008-12-06 18:32:38

Хорошо, с ядром я ещё попробую поколупаться, хотя я здорово сомневаюсь что дело в нём, смотрел vmstat -z на своём старом роутере, с 6.2 фрёй, не шибко они и отличаются. Какие могут быть ещё варианты?
сетевая карточка? стоит попробовать конфигурацию из одинаковых сетевушек?(на старом роутере именно так и было)

И ещё одно, как пользоваться sysctl я знаю(наверное имелся ввиду ключик -d), но сам понимаешь, параметров там тьма тьмущая, и менять я их уже пробовал, и не однократно, причём предварительно ознакомившись с их значениями(не всегда, правда, но тем не менее ;) ). Поэтому и прошу привести тот небольшой списочек который поможет мне исправить досадную ситуацию с пайпами. На худой конец, хотя бы полный список их значений было бы замечательно найти. Уверен, файлик с описанием всех без исключения параметров где то таится в недрах самой фри ;-)

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение RusBiT » 2009-01-01 15:24:50

HEDG_SS писал(а):

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

ipfw -q add 400 allow tcp from table(10) to any out setup
ipfw -q add 500 pipe 500 ip from any to table(10) out
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 20
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
limit src-addr 20 - как понимаю ставит ограничение на возможность открыть только 20 соединений с разными ip адресами.
А как поставить ограничение в 20 сессий, на входящие и исходящие адреса и порты одновременно?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение HEDG_SS » 2009-01-25 4:59:06

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

ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 20
Эта строка говорит, о том что для каждого ip из таблицы 10 разрешается 20 соединений с любыми другими ip
> А как поставить ограничение в 20 сессий, на входящие и исходящие адреса и порты одновременно?
Опишите более подробно задачу, постараюсь помочь

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение RusBiT » 2009-01-25 6:21:38

HEDG_SS писал(а): Опишите более подробно задачу, постараюсь помочь
Раздаю интернет через VPN. Хочу для безлимитных тарифов поставить ограничение максимум 50 (что для серфинга вполне нормально, а торренты немного подрежет) tcp соединения, т.е. в эти 50 соединения входят src-addr, dst-addr, src-port, dst-port
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение HEDG_SS » 2009-01-26 12:47:49

Раздаю интернет через VPN. Хочу для безлимитных тарифов поставить ограничение максимум 50 (что для серфинга вполне нормально, а торренты немного подрежет) tcp соединения, т.е. в эти 50 соединения входят src-addr, dst-addr, src-port, dst-port
Не совсем понимаю зачем прописывать отдельные ограничения по портам...
А вообще попробуй что-то такое, по идее должено работать

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

ipfw -q add 400 allow tcp from table(10) to any out setup limit src-addr 200
ipfw -q add 500 pipe 500 ip from any to table(10) out limit dst-addr 50
ipfw -q add 600 pipe 600 ip from table(10) to any out limit src-addr 50
ipfw -q pipe 500  config bw 5000Kbit/s
ipfw -q pipe 600  config bw 5000Kbit/s
ipfw -q add 700 allow ip from any to table(10) out
ipfw -q add 700 allow ip from table(10) to any out
Когда резал входящие потоки столкнулся с проблемой, что по вебу не все картинки догружаются особенно в IE. Также могут на реальник идти просто куча левых обращений, поэтому я решил не резать вход.. также 400 правило добавил, чтоб работал нормально IE

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение RusBiT » 2009-02-14 7:04:23

Возник вопрос, например у меня такие правила
1 allow all from 10.0.0.0/8 to any out setup limit src-addr 50
2 allow all from 10.0.0.0/24 to any out setup limit src-addr 1000
3 allow all from 10.0.0.1/23 to any
4 deny all from 10.0.0.3/25 to ant

Правило #2,3,4 по сути будут игнорироваться?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
buryanov
ст. сержант
Сообщения: 311
Зарегистрирован: 2008-04-29 13:41:48
Откуда: Харьков
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение buryanov » 2009-02-14 13:08:11

Возник вопрос, например у меня такие правила
1 allow all from 10.0.0.0/8 to any out setup limit src-addr 50
2 allow all from 10.0.0.0/24 to any out setup limit src-addr 1000
3 allow all from 10.0.0.1/23 to any
4 deny all from 10.0.0.3/25 to ant
Правило #2,3,4 по сути будут игнорироваться?
Напиши правила в обратном порядке
Дмитрий.
buryanov*ukr.net
icq# 118639660; skype: buryanov

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение RusBiT » 2009-02-14 16:35:07

buryanov писал(а):
Возник вопрос, например у меня такие правила
1 allow all from 10.0.0.0/8 to any out setup limit src-addr 50
2 allow all from 10.0.0.0/24 to any out setup limit src-addr 1000
3 allow all from 10.0.0.1/23 to any
4 deny all from 10.0.0.3/25 to ant
Правило #2,3,4 по сути будут игнорироваться?
Напиши правила в обратном порядке
Я знаю что правила идут от 1 -> 65535 , обрбатывается первое вхождение в правило, дальше все игнорируется. Вообщем я прав. :unknown:
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

generik
ефрейтор
Сообщения: 62
Зарегистрирован: 2008-08-08 10:29:43

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение generik » 2009-03-03 11:37:56

Есть задача ограничить количество tcp сессий для ip из внешнего мира. Стоит веб сервер за роутером с ipfw нужно ограничить количество одновременных tcp сессий для кадого ip из вне в заданное количество.

Можно простой примерчик правил для файрвола?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Ограничения кол-ва сесий и скорости в ipfw

Непрочитанное сообщение zingel » 2009-03-04 11:20:49

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

ipfw add allow tcp from any to 1.2.3.4 22 limit src-addr 10
Z301171463546 - можно пожертвовать мне денег