Сильно тормозят сеть правила ipfw с использованием divert

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Сильно тормозят сеть правила ipfw с использованием divert

Непрочитанное сообщение alexmrrc » 2011-08-15 15:37:37

Вкратце ситуация такая, использую для трансляции адресов natd, так вот если правила на него прописаны таким образом:

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

00900    32     1446 divert 8668 ip from 192.168.0.0/24 to any out via msk0 
01000     0        0 divert 8668 ip from 192.168.1.0/24 to any out via msk0 
01100     0        0 divert 8668 ip from 192.168.2.0/24 to any out via msk0 
01200     0        0 divert 8668 ip from 192.168.3.0/24 to any out via msk0 
01300     0        0 divert 8668 ip from 192.168.4.0/24 to any out via msk0 
01400     0        0 divert 8668 ip from 192.168.5.0/24 to any out via msk0 
01500     0        0 divert 8668 ip from 192.168.6.0/24 to any out via msk0 
01600     0        0 divert 8668 ip from 192.168.7.0/24 to any out via msk0 
01700     0        0 divert 8668 ip from 192.168.8.0/24 to any out via msk0 
01800     0        0 divert 8668 ip from 192.168.9.0/24 to any out via msk0 
01900    38     2450 divert 8668 ip from 192.168.10.0/24 to any out via msk0 
02100     0        0 divert 8668 ip from 192.168.11.0/24 to any out via msk0 
02200     0        0 divert 8668 ip from 192.168.12.0/24 to any out via msk0 
02300 18430  6623969 divert 8668 ip from any to EXTERNAL_IP in via msk0
Все работает быстро и исправно.
Если же описать замес-то вышеприведенного одной строкой:

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

${fwcmd} add 2400 divert natd ip from any to any via msk0
То трафик начинает тормозить, практически перестают открываться страницы, да и работая в shell по ssh это отчетливо ощущается. Такое чувство, что не хватает каких-то буферов в системе или драйверах сетевых устройств.

Собственно наткнулся на это экспериментальным путем, когда пытался использовать на этом новом оборудовании много лет используемый ранее в разных конфигурациях Netams (начиная с версии FreeBSD 4.11-RELEASE и вплоть до FreeBSD 8.1-RELEASE (откуда конфигурация и перекочевала на новый мощный сервер с большим количеством интерфейсов), при заворачивании трафика в него с помощью divert с использованием правил вида divert 199 ip from any to any via igb0 у пользователей локальных сетей начинаются полные тормоза при обращении к находящему на этом же сервере squid-у, хотя при этом если сделать дырку в правилах ipfw и обратиться напрямую к веб-серверу в инете от пользователя, то все летает.

Т.е. по каким-то причинам divert СЕРВИС ip from any to any via IF приводит к подобному эффекту, будь то natd или netams. Первый раз с подобным сталкиваюсь, явно нужно что-то еще тюнить в системе, может и сами драйвера сетевых интерфейсов..
Кстати надо сказать, если использовать tee (когда пакеты копируются) вместо divert (когда пакеты заворачиваются), то с netams все работает без сетевых тормозов.
Сетевая нагрузка совсем небольшая пока.
Какие будут мысли по решению проблемы?

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

CPU: Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz (2822.51-MHz 686-class CPU) 
real memory = 4294967296 (4096 MB) 
avail memory = 3598565376 (3431 MB) 
FreeBSD 8.2-RELEASE (i386) 
netams-3.4.5_1 
squid-3.1.14
8 igb iface 
4 msk iface

Хостинговая компания 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 с использованием diver

Непрочитанное сообщение terminus » 2011-08-15 19:47:00

тоесть проблема именно когда так:

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

${fwcmd} add 2400 divert natd ip from any to any via msk0
а так все ок:

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

${fwcmd} add 2400 divert 8668 ip from any to any via msk0
?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение alexmrrc » 2011-08-15 20:34:22

Так это же одно и тоже :Search:
Только первое в файле скрипта ipfw описывается, второе уже на деле после применения правила.
Или вы про что?

Если же сделать, чтобы за natd отвечала одна строка правил ipfw - divert natd ip from any to any via msk0, сразу начинаются сетевые тормоза в системе и судя по ipfw show несется за секунд тридцать вот такой трафик по этому правилу:

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

02400 4688861 13986034259 divert 8668 ip from any to any via msk0
Которого на деле у меня в жизни не проходит через этот сервак, вся нагрузка - это работа в рабочее время через этот шлюз сотни пользователей, ясно дело не одновременно.

Откуда такие цифры 13986034259 берутся вообще, это ж около семи гигов трафика прошло что ли через это правило менее чем за минуту? Видимо из-за этого сетевые тормоза и наступают, интерфейсы не справляются с такой нагрузкой. В чем дело то может быть?

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

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение terminus » 2011-08-15 21:11:51

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

alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение alexmrrc » 2011-08-15 21:30:21

nat не приходилось, ибо с детской нагрузкой всегда хватало natd.
Есть у меня подозрения на драйвера сетевых интерфейсов, все же igb с msk относительно свежие устройства или что-то изменилось в поведении сетевых служб во FreeBSD 8.2-RELEASE по сравнению с 8.1, где все то же самое работало по такой же схеме, правда всего на шести сетевых интерфейсах реалтек.

C некоторыми ремарками полный вывод ipfw show ниже, все работает на ура многие годы.
Как видно, вместо divert в 00500 - 00860 используется tee для учета трафика в Netams, с divert те же тормоза сетевые при работе со шлюзом, но уже у пользователей локальных сетей.
igb0 - igb5 - смотрят во внутренние локальные сети
msk0 - смотрит наружу

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

00100  8180283 8171659265 allow ip from any to any via lo0
00200        0          0 deny ip from any to 127.0.0.0/8
00300        0          0 deny ip from 127.0.0.0/8 to any
00400   396564   38492659 deny udp from any to any dst-port 137,138
00401        0          0 allow tcp from 192.168.0.0/24 to 192.168.0.1 dst-port 80 via igb3
00402        0          0 allow tcp from 192.168.0.1 80 to 192.168.0.0/24 via igb3
00403        0          0 allow tcp from 192.168.1.0/24 to 192.168.1.1 dst-port 80 via igb1
00404        0          0 allow tcp from 192.168.1.1 80 to 192.168.1.0/24 via igb1
00405        0          0 allow tcp from 192.168.2.0/24 to 192.168.2.1 dst-port 80 via igb2
00406        0          0 allow tcp from 192.168.2.1 80 to 192.168.2.0/24 via igb2
00407        0          0 allow tcp from 192.168.3.0/24 to 192.168.3.1 dst-port 80 via igb3
00408        0          0 allow tcp from 192.168.3.1 80 to 192.168.3.0/24 via igb3
00409        0          0 allow tcp from 192.168.4.0/24 to 192.168.4.1 dst-port 80 via igb2
00410        0          0 allow tcp from 192.168.4.1 80 to 192.168.4.0/24 via igb2
00411        0          0 allow tcp from 192.168.5.0/24 to 192.168.5.1 dst-port 80 via igb2
00412        0          0 allow tcp from 192.168.5.1 80 to 192.168.5.0/24 via igb2
00413        0          0 allow tcp from 192.168.6.0/24 to 192.168.6.1 dst-port 80 via igb0
00414        0          0 allow tcp from 192.168.6.1 80 to 192.168.6.0/24 via igb0
00415        0          0 allow tcp from 192.168.7.0/24 to 192.168.7.1 dst-port 80 via igb4
00416        0          0 allow tcp from 192.168.7.1 80 to 192.168.7.0/24 via igb4
00417        0          0 allow tcp from 192.168.8.0/24 to 192.168.8.1 dst-port 80 via igb5
00418        0          0 allow tcp from 192.168.8.1 80 to 192.168.8.0/24 via igb5
00419        0          0 allow tcp from 192.168.9.0/24 to 192.168.9.1 dst-port 80 via igb1
00420        0          0 allow tcp from 192.168.9.1 80 to 192.168.9.0/24 via igb1
00421        0          0 allow tcp from 192.168.10.0/24 to 192.168.10.1 dst-port 80 via igb1
00422        0          0 allow tcp from 192.168.10.1 80 to 192.168.10.0/24 via igb1
00423        0          0 allow tcp from 192.168.11.0/24 to 192.168.11.1 dst-port 80 via igb1
00424        0          0 allow tcp from 192.168.11.1 80 to 192.168.11.0/24 via igb1
00425        0          0 allow tcp from 192.168.12.0/24 to 192.168.12.1 dst-port 80 via igb1
00426        0          0 allow tcp from 192.168.12.1 80 to 192.168.12.0/24 via igb1
00430        0          0 allow ip from 192.168.12.10 to 192.168.0.100
00431        0          0 allow ip from 192.168.0.100 to 192.168.12.10
00432        0          0 allow tcp from 192.168.10.50 to 192.168.10.1 dst-port 22
00433        0          0 allow tcp from 192.168.10.1 22 to 192.168.10.50
00500  9228059 1191241727 tee 199 ip from any to any via igb0
00600 40102858 2568300607 tee 199 ip from any to any via igb1
00700 33330458 2120967047 tee 199 ip from any to any via igb2
00800 14726216 2082760058 tee 199 ip from any to any via igb3
00850   194487  164133332 tee 199 ip from any to any via igb4
00860 22770200  947802428 tee 199 ip from any to any via igb5
00900    53732   20970196 divert 8668 ip from 192.168.0.0/24 to any out via msk0
01000     3306     209889 divert 8668 ip from 192.168.1.0/24 to any out via msk0
01100      183       8057 divert 8668 ip from 192.168.2.0/24 to any out via msk0
01200     3614     208152 divert 8668 ip from 192.168.3.0/24 to any out via msk0
01300     7668     337055 divert 8668 ip from 192.168.4.0/24 to any out via msk0
01400     4717     336175 divert 8668 ip from 192.168.5.0/24 to any out via msk0
01500    22809    2110750 divert 8668 ip from 192.168.6.0/24 to any out via msk0
01600    10252    1111689 divert 8668 ip from 192.168.7.0/24 to any out via msk0
01700        0          0 divert 8668 ip from 192.168.8.0/24 to any out via msk0
01800    47921   20676088 divert 8668 ip from 192.168.9.0/24 to any out via msk0
01900     3532    3637286 divert 8668 ip from 192.168.10.0/24 to any out via msk0
02100       99       4108 divert 8668 ip from 192.168.11.0/24 to any out via msk0
02200      545      35986 divert 8668 ip from 192.168.12.0/24 to any out via msk0
02300  5447107 4407918700 divert 8668 ip from any to ext_if in via msk0
02400        0          0 check-state
02500    92057    9288335 allow ip from 000.000.00.00 to any
02600    73396  112153328 allow ip from any to 000.000.000.00
02700   115399   20317913 allow udp from me to any dst-port 53 keep-state
02800      143      16947 allow tcp from me to any dst-port 53 keep-state
02900     6867    1099625 allow udp from 192.168.0.0/24 to 192.168.0.1 dst-port 53 via igb3 keep-state
03000      856     160351 allow udp from 192.168.1.0/24 to 192.168.1.1 dst-port 53 via igb1 keep-state
03100   176616   17602510 allow udp from 192.168.2.0/24 to 192.168.2.1 dst-port 53 via igb2 keep-state
03200     2654     504693 allow udp from 192.168.3.0/24 to 192.168.3.1 dst-port 53 via igb3 keep-state
03300     2605     387368 allow udp from 192.168.4.0/24 to 192.168.4.1 dst-port 53 via igb2 keep-state
03400     1945     330609 allow udp from 192.168.5.0/24 to 192.168.5.1 dst-port 53 via igb2 keep-state
03500     5581    1099532 allow udp from 192.168.6.0/24 to 192.168.6.1 dst-port 53 via igb0 keep-state
03600     2876     439925 allow udp from 192.168.7.0/24 to 192.168.7.1 dst-port 53 via igb4 keep-state
03700     4521     780323 allow udp from 192.168.8.0/24 to 192.168.8.1 dst-port 53 via igb5 keep-state
03800     4240     675107 allow udp from 192.168.9.0/24 to 192.168.9.1 dst-port 53 via igb1 keep-state
03900     1120     184207 allow udp from 192.168.10.0/24 to 192.168.10.1 dst-port 53 via igb1 keep-state
04000     1840     341765 allow udp from 192.168.11.0/24 to 192.168.11.1 dst-port 53 via igb1 keep-state
04100     1512     288474 allow udp from 192.168.12.0/24 to 192.168.12.1 dst-port 53 via igb1 keep-state
04200        0          0 allow icmp from 192.168.10.2 to any keep-state
04300        0          0 allow tcp from 192.168.10.2 to any dst-port 23 keep-state
04400        0          0 deny log logamount 1000 icmp from any to any frag
04500      692      67438 allow icmp from any to any
04600   696078  636663524 allow tcp from any to 000.00.000.000 dst-port 25,110,139 keep-state
04700      581     145820 allow tcp from any to 000.00.000.000
04800      598     530456 allow tcp from 000.00.000.000 to any
04900        8        608 allow udp from me to 000.000.00.00 dst-port 123 keep-state
05000 14293957 1867804819 allow tcp from 192.168.0.0/24 to 192.168.0.1 dst-port 8080 via igb3 keep-state
05100   733819   61742592 allow tcp from 192.168.1.0/24 to 192.168.1.1 dst-port 8080 via igb1 keep-state
05200  8180790  786496548 allow tcp from 192.168.2.0/24 to 192.168.2.1 dst-port 8080 via igb2 keep-state
05300   244470   70705471 allow tcp from 192.168.3.0/24 to 192.168.3.1 dst-port 8080 via igb3 keep-state
05400  7407922  340489394 allow tcp from 192.168.4.0/24 to 192.168.4.1 dst-port 8080 via igb2 keep-state
05500 17517443  942082314 allow tcp from 192.168.5.0/24 to 192.168.5.1 dst-port 8080 via igb2 keep-state
05600  9154203 1149879664 allow tcp from 192.168.6.0/24 to 192.168.6.1 dst-port 8080 via igb0 keep-state
05700   157642  141343139 allow tcp from 192.168.7.0/24 to 192.168.7.1 dst-port 8080 via igb4 keep-state
05800 22762245  946710832 allow tcp from 192.168.8.0/24 to 192.168.8.1 dst-port 8080 via igb5 keep-state
05900 37182528 1894318048 allow tcp from 192.168.9.0/24 to 192.168.9.1 dst-port 8080 via igb1 keep-state
06000  1035068  221203595 allow tcp from 192.168.10.0/24 to 192.168.10.1 dst-port 8080 via igb1 keep-state
06100    30068   31415860 allow tcp from 192.168.11.0/24 to 192.168.11.1 dst-port 8080 via igb1 keep-state
06200   835579  198941734 allow tcp from 192.168.12.0/24 to 192.168.12.1 dst-port 8080 via igb1 keep-state
06300        0          0 allow tcp from 000.00.000.000 to me dst-port 8080 via msk0 keep-state
06400   241263  273206813 allow tcp from 000.00.000.000 to me dst-port 8080 via msk0 keep-state
06500        0          0 allow udp from 000.00.000.000 to me dst-port 3130 via msk0 keep-state
06600   304310  425837830 allow tcp from 000.000.000.000 to me dst-port 8080 keep-state
06700    17538     707521 allow tcp from 000.00.000.000 to me dst-port 8080 keep-state
06800  1275717   83687460 allow tcp from 000.00.00.000 to me dst-port 8080 keep-state
06900  7497702 4468401502 allow ip from ext_if to any via msk0 keep-state
07000        0          0 allow udp from me to any dst-port 33434-33523 via msk0 keep-state
07100        0          0 allow tcp from 192.168.5.3 to 192.168.5.1 dst-port 22,80 via igb2 keep-state
07200        0          0 allow tcp from 000.00.000.00/28 to me dst-port 22,80 keep-state
07300        0          0 allow tcp from 00.000.00.000 to me dst-port 22,80 keep-state
07400        0          0 allow tcp from 000.000.000.00 to me dst-port 22,80 keep-state
07500        0          0 allow tcp from 00.000.000.00 to me dst-port 22,80 keep-state
07600        0          0 allow tcp from 000.000.000.00 to any dst-port 22 keep-state
07700        0          0 allow tcp from 000.000.000.00 to any dst-port 22 keep-state
07800        0          0 allow tcp from 192.168.10.5 to any dst-port 5190 keep-state
07900        0          0 allow tcp from 000.000.000.00 to me keep-state
08000        0          0 allow tcp from 192.168.0.1 to 192.168.0.100 dst-port 4899,8001,8002,8003,8005,8006,8007 keep-state
08100        0          0 allow tcp from 192.168.12.1 to 192.168.12.6 dst-port 4900,8011,8012,8013 keep-state
08200        0          0 allow ip from 192.168.12.10 to 192.168.0.100
08300        0          0 allow ip from 192.168.0.100 to 192.168.12.10
08400        0          0 allow tcp from 192.168.1.8 to 193.110.5.134 keep-state
08500        0          0 allow tcp from 192.168.1.8 to 62.148.128.28 keep-state
08600        0          0 allow tcp from 192.168.1.8 to 194.146.119.236 keep-state
08700        0          0 allow tcp from 192.168.1.8 to 89.104.68.244 keep-state
08800        0          0 allow ip from 192.168.1.8 to 89.179.20.56 keep-state
08900        0          0 allow ip from 192.168.1.8 to 77.235.214.114 keep-state
09000        0          0 allow ip from 192.168.1.8 to 77.108.81.202 keep-state
09100      196      23924 allow ip from 192.168.1.8 to 80.76.176.227 keep-state
09200     1364    1317904 allow ip from 192.168.1.8 to 80.76.176.163 keep-state
09300        0          0 allow ip from 192.168.1.11 to 89.179.20.56 keep-state
09400        0          0 allow ip from 192.168.1.11 to 77.235.214.114 keep-state
09500        0          0 allow ip from 192.168.1.11 to 77.108.81.202 keep-state
09600        0          0 allow tcp from 192.168.11.6 to 62.113.102.200 dst-port 5000 keep-state
09700        0          0 allow tcp from 192.168.9.27 to 62.113.102.200 dst-port 5000 keep-state
09800        0          0 allow ip from 192.168.6.91 to 62.148.144.17
09900        0          0 allow ip from 62.148.144.17 to 192.168.6.91
10000        0          0 allow ip from 192.168.6.91 to 62.148.144.17 keep-state
10100        0          0 allow ip from 62.148.144.17 to 192.168.6.91 keep-state
10200      628      92675 allow ip from 192.168.6.88 to 62.148.151.2 keep-state
10300        0          0 allow ip from 192.168.6.150 to 81.176.67.146 keep-state
10400        0          0 allow tcp from 192.168.6.17 to 194.67.23.111 keep-state
10500        0          0 allow tcp from 192.168.6.17 to 194.67.23.102 keep-state
10600        0          0 allow ip from 192.168.0.11 to 12.41.43.56 keep-state
10700        0          0 allow ip from 192.168.0.11 to 12.189.200.131 keep-state
10800        0          0 allow tcp from 192.168.0.11 to 146.145.183.116 keep-state
10900        0          0 allow ip from 192.168.9.40 to any keep-state
11000        0          0 allow ip from 192.168.12.15 to 193.202.77.22 keep-state
11100    33584   37000766 allow ip from 192.168.10.50 to any
11200    28459    3541815 allow ip from any to 192.168.10.50
11300    61843   59059243 allow ip from 192.168.6.175 to any keep-state
11400        0          0 allow ip from 192.168.9.176 to any keep-state
11500        0          0 allow ip from 192.168.2.100 to any keep-state
11600        0          0 allow ip from 192.168.9.25 to any keep-state
11700        0          0 allow ip from 192.168.6.82 to 94.79.10.43 keep-state
11800        0          0 allow ip from 192.168.6.82 to 94.79.10.44 keep-state
11900        0          0 allow ip from 192.168.6.82 to 77.108.108.78 keep-state
12000        0          0 allow ip from 192.168.6.82 to 62.148.144.218 keep-state
12100        0          0 allow tcp from 192.168.0.86 to 81.176.67.146 dst-port 8470 keep-state
12200        0          0 allow tcp from 192.168.11.6 to 94.79.10.44 keep-state
12300        0          0 allow tcp from 192.168.11.6 to 62.148.144.218 keep-state
12400        0          0 allow tcp from 192.168.11.6 to 77.108.108.78 keep-state
12500        0          0 allow tcp from 192.168.5.6 to 217.15.198.247 dst-port 22 keep-state
12600        0          0 allow tcp from 192.168.5.6 to 46.4.38.21 dst-port 3690 keep-state
12700        0          0 allow ip from 192.168.8.0/24 to 62.148.147.149 keep-state
12800     1595     927604 allow ip from 192.168.5.10 to any keep-state
12900   220677   16679514 deny log logamount 1000 ip from any to any
65535        0          0 deny ip from any to any

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

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение terminus » 2011-08-15 22:06:00

Ну, предположим, что цифры из

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

02400 4688861 13986034259 divert 8668 ip from any to any via msk0
и

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

02300  5447107 4407918700 divert 8668 ip from any to ext_if in via msk0
это цифры одного порядка:
13986034259/2=6993017129

6993017129
4407918700

это байты. Просто в первом случае у нас считается трафик в обе стороны (via msk0), а во втором только в одну (in via msk0).
если посчитать еще и проход out, то выйдет наверно примерно 1:1.

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

alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение alexmrrc » 2011-08-15 22:14:25

terminus писал(а):Ну, предположим, что цифры из

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

02400 4688861 13986034259 divert 8668 ip from any to any via msk0
и

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

02300  5447107 4407918700 divert 8668 ip from any to ext_if in via msk0
это цифры одного порядка:
13986034259/2=6993017129

6993017129
4407918700

это байты. Просто в первом случае у нас считается трафик в обе стороны (via msk0), а во втором только в одну (in via msk0).
если посчитать еще и проход out, то выйдет наверно примерно 1:1.
Все бы это было так, коллега, если бы в первом случае значение не достигалось за минуты работы, а во втором за день работы :cz2:
Чувствуете разницу?
terminus писал(а):интересно тут другое - почему же он начинает тормозить... :unknown:
Вот и я не пойму, подбешивает уже.
Видимо, нижеследующее не обделено истинной:
Есть у меня подозрения на драйвера сетевых интерфейсов, все же igb с msk относительно свежие устройства или что-то изменилось в поведении сетевых служб во FreeBSD 8.2-RELEASE по сравнению с 8.1, где все то же самое работало по такой же схеме, правда всего на шести сетевых интерфейсах реалтек.

alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение alexmrrc » 2011-08-20 15:31:59

Проблема локализована.
Танцы с использованием уже фри 8.1 и прочие ухищрения ни к чему не привели, по прежнему сеть затыкалась у пользователей при завороте трафика в Netams с помощью divert, будь то подняты все интерфейсы или один единственный, фря 8.1-Release или 8.2-STABLE.
Воткнул обычную старую реалтековую сетевуху для эксперимента - подключил через нее импровизированную локальную сеть - все заработало как прежде совершенно по той же программой идеологии как положено и нужно мне.

Отсюда можно сделать вывод - проблема в используемых сетевых интерфейсах msk и igb (в их драйверах, механизмах работы, взаимодействия с ОС или т.д.)! Используя заворот проходящего через них трафика в Netams с помощью divert возникают описанная проблема.

Какие будут соображения по возможному решению проблемы?

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

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение brahmann » 2011-08-25 9:13:03

alexmrrc писал(а):Проблема локализована.
Отсюда можно сделать вывод - проблема в используемых сетевых интерфейсах msk и igb (в их драйверах, механизмах работы, взаимодействия с ОС или т.д.)! Используя заворот проходящего через них трафика в Netams с помощью divert возникают описанная проблема.

Какие будут соображения по возможному решению проблемы?
Если это глюк в дровах на эти сетевухи, тогда имея ввиду схему сетевуха-фаер-ядро можно предположить, что коегде разработчики сих дров схалтурили, так как очевидно что если дать четкое указание сделать разрез трафика (исходя из приведенных правил и описанных эффектов) на несколько правил (от сетевухи через фаер не в 1 трубу, а в несколько к ядру через несколько правил - эдакая сортировка трафика или распределение нагрузки на правила - одно бежит в одно правило другое в другое и т.д.) - то и труб будет больше но и нагрузка на дрова меньше...
Оно то конечно может и витьевато - но возможное решение, как можно подробнее описать проблему с приведенной инфой майнтейнерам сих дров и ждать когда кончиться лето ... :ROFL:

FiL
ст. лейтенант
Сообщения: 1368
Зарегистрирован: 2010-02-05 0:21:40

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение FiL » 2011-08-25 17:03:47

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

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

${fwcmd} add 2400 divert natd ip from any to any via msk0
то туда попадают и пакеты с фаерва внутрь и наружу. То есть проходит несколько лишних дивертов. И крыша уезжает.
Пакет просто зацикливается.
пришел-задивертился-захотел выйти-опять задивертился...
В общем, неправильно такое правило использовать.

alexmrrc
рядовой
Сообщения: 20
Зарегистрирован: 2011-08-15 15:27:36

Re: Сильно тормозят сеть правила ipfw с использованием diver

Непрочитанное сообщение alexmrrc » 2011-08-26 7:37:46

Неправильно, поэтому я его и не использую, применяя только правила с направляющими in и out, с natd-ом никаких проблем нет в этом случае.

Но вот почему заворот трафика проходящего через указанные выше внутренние интерфейсы в Netams (divert 199 ip from any to any via igb0, а с tee, когда трафик копируется, а не заворачивается, все при этом нормально) приводит к парализации доступа к шлюзу, в частности по порту 8080, вот это никак непонятно мне, причем при отсутствии какой-либо нагрузки в этот момент. Причем какие только варианты построения правил не использовал, вариант один и тот же, причем это только на интерфейсах msk и igb наблюдается. Если же напрямую обращаться в инет из локальной сети к тем или иным сервисам, наблюдаемого эффекта нет, все летает как и положено.