Вопрос по настройке ipfw

Технические вопросы по UTM 5.0
hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Вопрос по настройке ipfw

Сообщение hadzhimurad »

Столкнулся недавно с проблемой на сервере, до недавнего времени онлайн юзеров было не много (порядка 200), сейчас же онлайн сидят 800 и сервак стал проседать. То есть, у пользователей упала скорость. Перенес NAT на отдельный сервак, но проблема осталась.
Как я понимаю трабла кроется в схеме, а она на серваке следующая:

1. Pipes
2. адреса, которые вгоняются в pipe
3. разрешающие правила (allow).
4. NAT

На серваке Freebsd 7.2 c ipfw.

Спасибо.

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

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

hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Сообщение hadzhimurad »

персональные.

а есть ли разница?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

существенная.
Когда для каждого адреса прописано свое правило, то фаервол вынужден пробежать по всем правилам с каждым пакетом.
Когда табличное сравнение идет, да еще и с табличным аргументом(pipe tablearg ip from table(1) to any) - это одна операция с поиском по хешу в табличке.
Аналогично с запретом (deny ip from table(30)) будет работать значительно быстрее, чем пара тысяч правил deny ip from UIP to any

hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Сообщение hadzhimurad »

Все статические правила запихал в таблицы (их было порядка 1000)

Проблема остается, дело в том, что на серваке работает dynashape и utm_rfw, которые выгружают около 5000 правил.

нагружают систему ng_queue и dummynet.

может трабла имеенно потому, что много правил выгружается?

pycuk
Сообщения: 6
Зарегистрирован: Пт ноя 10, 2006 12:12

Сообщение pycuk »

Добавлю больше инфы о проблеме.
На сервере стоит FreeBSD 7.2-RELEASE.
Установлен mpd5.2 который принимает pptp соединения. так же средствами Mpd сбрасывается netflow трафик на биллинг.
Все клиенты в УТМ имеют статические адреса.
На сервере стоит UTM5_RFW с Dynashape, которые прописывают разрешающие правила и пайпы для ограничения скорости.

Проблема с большими задержками и потерями может появляться как и при 800+ клиентов онлайн, так и при 300-400. Не редки случаи когда онлайн больше 800 и всё работает идеально.

Вот нагрузка сервера:

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

subnet-vpn# top -S
last pid: 71427;  load averages:  1.79,  1.89,  2.08    up 0+08:14:54  16:15:41
91 processes:  12 running, 68 sleeping, 11 waiting
CPU:  0.2% user,  0.0% nice, 33.8% system,  0.5% interrupt, 65.5% idle
Mem: 39M Active, 10M Inact, 130M Wired, 23M Buf, 3798M Free
Swap: 8192M Total, 8192M Free

  PID USERNAME     THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   43 root           1 -68    -     0K     8K CPU1   1 341:48 89.36% dummynet
    7 root           1 -68    -     0K     8K sleep  3  54:40 89.36% ng_queue5
   14 root           1 171 ki31     0K     8K CPU4   4 379:52 86.08% idle: cpu4
   12 root           1 171 ki31     0K     8K CPU6   6 406:57 82.47% idle: cpu6
   13 root           1 171 ki31     0K     8K CPU5   5 391:38 78.76% idle: cpu5
   11 root           1 171 ki31     0K     8K RUN    7 403:05 74.85% idle: cpu7
   15 root           1 171 ki31     0K     8K CPU3   3 376:39 73.78% idle: cpu3
   16 root           1 171 ki31     0K     8K CPU2   2 373:51 66.70% idle: cpu2
   17 root           1 171 ki31     0K     8K RUN    1 355:23 61.57% idle: cpu1
   35 root           1 -68    -     0K     8K CPU7   7  88:52 23.68% em0 taskq
   20 root           1 -32    -     0K     8K CPU4   4  10:05 11.77% swi4: cloc
   18 root           1 171 ki31     0K     8K RUN    0 364:59  8.59% idle: cpu0
   36 root           1 -68    -     0K     8K -      0  20:18  6.30% em1 taskq
    3 root           1 -68    -     0K     8K sleep  5  50:31  5.37% ng_queue1
    4 root           1 -68    -     0K     8K sleep  6  38:20  4.98% ng_queue2
    6 root           1 -68    -     0K     8K sleep  4  53:40  4.69% ng_queue4
    8 root           1 -68    -     0K     8K sleep  3  61:38  4.59% ng_queue6
    5 root           1 -68    -     0K     8K sleep  0  51:57  4.39% ng_queue3
    9 root           1 -68    -     0K     8K sleep  5  54:30  4.30% ng_queue7
    2 root           1 -68    -     0K     8K sleep  2  50:47  4.05% ng_queue0
 1596 root           2  44    0 28180K 21612K select 6   0:00  2.29% mpd5
   25 root           1  44    -     0K     8K -      7   1:16  0.00% yarrow
 1539 root           1  44    0  3184K  1232K select 7   0:50  0.00% syslogd
35976 root           1  44    0  9400K  6236K select 3   0:19  0.00% mc
38254 root           2  44    0  7252K  3612K select 1   0:11  0.00% utm5_rfw
   37 root           1 -68    -     0K     8K WAIT   5   0:11  0.00% irq16: vr0
   22 root           1  -8    -     0K     8K -      4   0:02  0.00% g_event
   23 root           1  -8    -     0K     8K -      2   0:02  0.00% g_up
   24 root           1  -8    -     0K     8K -      3   0:02  0.00% g_down
35949 hadzhimurad    1  44    0  8428K  4000K select 5   0:02  0.00% sshd
    1 root           1   8    0  1888K   488K wait   2   0:01  0.00% init
   49 root           1  20    -     0K     8K syncer 0   0:01  0.00% syncer
71373 root           1  44    0  3496K  1876K select 0   0:01  0.00% top
   51 root           1 -16    -     0K     8K sdflus 6   0:00  0.00% softdepflu
   39 root           1 -64    -     0K     8K WAIT   6   0:00  0.00% irq20: ata
36076 pycuk          1  44    0  8428K  3988K select 4   0:00  0.00% sshd
71254 root           1  44    0  8376K  4796K select 3   0:00  0.00% mc
   50 root           1  -4    -     0K     8K vlruwt 3   0:00  0.00% vnlru
   48 root           1 -16    -     0K     8K psleep 5   0:00  0.00% bufdaemon
71333 hadzhimurad    1  44    0  8428K  3960K select 3   0:00  0.00% sshd
    0 root           1 -16    0     0K     0K sched  3   0:00  0.00% swapper
 1671 root           1   8    0  3212K  1276K nanslp 2   0:00  0.00% cron
71343 root           1  44    0  7352K  3700K select 2   0:00  0.00% mc
71256 root           1  20    0  4460K  2408K pause  5   0:00  0.00% csh
   47 root           1 171 ki31     0K     8K pollid 1   0:00  0.00% idlepoll
35978 root           1   5    0  5484K  2568K ttyin  2   0:00  0.00% csh

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

subnet-vpn# top -SIP
last pid: 71421;  load averages:  1.80,  1.96,  2.13    up 0+08:13:24  16:14:11
91 processes:  11 running, 68 sleeping, 12 waiting
CPU 0:  0.0% user,  0.0% nice,  100% system,  0.0% interrupt,  0.0% idle
CPU 1:  0.0% user,  0.0% nice, 31.1% system,  3.9% interrupt, 65.0% idle
CPU 2:  0.4% user,  0.0% nice, 30.4% system,  0.4% interrupt, 68.7% idle
CPU 3:  0.0% user,  0.0% nice, 10.9% system,  0.0% interrupt, 89.1% idle
CPU 4:  0.0% user,  0.0% nice, 40.5% system,  1.2% interrupt, 58.3% idle
CPU 5:  0.0% user,  0.0% nice,  7.9% system,  0.0% interrupt, 92.1% idle
CPU 6:  0.0% user,  0.0% nice,  5.5% system,  0.0% interrupt, 94.5% idle
CPU 7:  0.0% user,  0.0% nice, 26.0% system,  0.0% interrupt, 74.0% idle
Mem: 39M Active, 10M Inact, 130M Wired, 23M Buf, 3798M Free
Swap: 8192M Total, 8192M Free

  PID USERNAME     THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
    9 root           1 -68    -     0K     8K CPU0   0  54:11 100.00% ng_queue7
   43 root           1 -68    -     0K     8K CPU1   1 340:34 85.60% dummynet
   13 root           1 171 ki31     0K     8K CPU5   5 390:26 83.15% idle: cpu5
   12 root           1 171 ki31     0K     8K CPU6   6 405:43 79.39% idle: cpu6
   15 root           1 171 ki31     0K     8K CPU3   3 375:30 75.10% idle: cpu3
   14 root           1 171 ki31     0K     8K CPU4   4 378:36 74.56% idle: cpu4
   11 root           1 171 ki31     0K     8K CPU7   7 401:53 73.10% idle: cpu7
   16 root           1 171 ki31     0K     8K RUN    2 372:43 64.99% idle: cpu2
   17 root           1 171 ki31     0K     8K RUN    1 354:14 60.16% idle: cpu1
   35 root           1 -68    -     0K     8K -      7  88:34 19.87% em0 taskq
   20 root           1 -32    -     0K     8K WAIT   3  10:02 11.77% swi4: cloc
   36 root           1 -68    -     0K     8K -      3  20:13  6.88% em1 taskq
    5 root           1 -68    -     0K     8K sleep  3  51:54  2.39% ng_queue3
    2 root           1 -68    -     0K     8K sleep  4  50:44  2.29% ng_queue0
    8 root           1 -68    -     0K     8K sleep  5  61:35  2.20% ng_queue6
    7 root           1 -68    -     0K     8K sleep  3  53:22  2.20% ng_queue5
    4 root           1 -68    -     0K     8K sleep  3  38:17  2.10% ng_queue2
    6 root           1 -68    -     0K     8K sleep  6  53:37  1.95% ng_queue4
    3 root           1 -68    -     0K     8K sleep  2  50:29  1.86% ng_queue1
 1596 root           2  45    0 28180K 21588K select 2  11:58  1.66% mpd5
Загрузка сетевой карты:

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

subnet-vpn# netstat -w1 -Iem1
            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
      4139     0     840096       5546     0    3534589     0
      4078     0     807430       5540     0    3517347     0
      3995     0     788754       5647     0    3432592     0
      4063     0     814887       5613     0    3449790     0
      4071     0     890942       5387     0    3386125     0
      3990     0     798378       5418     0    3397804     0
      4109     0     848834       5358     0    3394596     0
      4022     0     860848       5520     0    3339073     0
      4226     0     829452       5593     0    3320210     0
      4132     0     838056       5380     0    3106830     0
      4093     0     804948       5202     0    3027882     0
      4058     0     788725       5112     0    3036295     0
      3960     0     777067       5324     0    3108866     0
      4084     0     736071       5341     0    3226918     0
      4096     0     783373       5385     0    3083340     0
      4150     0     803598       5591     0    3328028     0
      4154     0     790255       5319     0    3170782     0
      4137     0     790188       5526     0    3338262     0
      4196     0     808701       5508     0    3368279     0
      4248     0     837920       5651     0    3393705     0

subnet-vpn# netstat -w1 -Iem0
            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
      4148     0    3197757       3506     0     657042     0
      4275     0    3448484       3514     0     662290     0
      4310     0    3479318       3554     0     711864     0
      4125     0    3230147       3547     0     675563     0
      4125     0    3202174       3527     0     728841     0
      4104     0    3122843       3485     0     716907     0
      4142     0    3049214       3657     0     697798     0
      4151     0    3149739       3592     0     777334     0
      4192     0    3242225       3546     0     682465     0
      4308     0    3315067       3632     0     686808     0
      4133     0    3086703       3653     0     750023     0
      4424     0    3335171       3714     0     738503     0
      4211     0    3305555       3596     0     702755     0
      4271     0    3084109       3749     0     699310     0
      3963     0    2864925       3622     0     653115     0
      4184     0    3141520       3575     0     677218     0
      4330     0    3229052       3755     0     685073     0
      4167     0    3082064       3633     0     670330     0
      4251     0    3106819       3597     0     676662     0
      4707     0    3496781       3985     0     830126     0
Листинг sysctl.conf: (может тут еще что то можно подкорректировать?)

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

net.inet.ip.fw.one_pass=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.sendspace=65535
net.local.stream.recvspace=65535
net.graph.maxalloc=4096
net.graph.maxdgram=45000
net.graph.recvspace=45000
kern.ipc.nmbcluster=32768
kern.ipc.maxsockbufs=2097152
kern.ipc.somaxconn=8192
kern.maxfiles=65536
kern.maxfilesperproc=32768
netstat -m

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

2831/4474/7305 mbufs in use (current/cache/total)
2826/3406/6232/25600 mbuf clusters in use (current/cache/total/max)
2826/2550 mbuf+clusters out of packet secondary zone in use (current/cache)
0/77/77/12800 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/6400 9k jumbo clusters in use (current/cache/total/max)
0/0/0/3200 16k jumbo clusters in use (current/cache/total/max)
6792K/8238K/15031K 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/6/6656 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines
vmstat -z

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

ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS  FAILURES

UMA Kegs:                 128,        0,       86,        4,       86,        0
UMA Zones:                480,        0,       86,        2,       86,        0
UMA Slabs:                 64,        0,     4607,       54,  8902590,        0
UMA RCntSlabs:            104,        0,     3193,       26,     3193,        0
UMA Hash:                 128,        0,        4,       26,        7,        0
16 Bucket:                 76,        0,       99,        1,      121,        0
32 Bucket:                140,        0,      237,       15,      260,        0
64 Bucket:                268,        0,      264,        2,      313,        7
128 Bucket:               524,        0,      722,        6,  2397626,      783
VM OBJECT:                128,        0,     2033,     4477,  1658249,        0
MAP:                      140,        0,        7,       21,        7,        0
KMAP ENTRY:                68,    57512,       41,     1359, 22680407,        0
MAP ENTRY:                 68,        0,     1391,    14793,  3541066,        0
PDPT:                      32,        0,      474,      656,      474,        0
DP fakepg:                 76,        0,        0,        0,        0,        0
mt_zone:                 1032,        0,      200,        1,      200,        0
16:                        16,        0,    27306,      708,  5821955,        0
32:                        32,        0,     4820,     1282, 94322498,        0
64:                        64,        0,    38350,      944,   630367,        0
128:                      128,        0,    27178,      902, 16871310,        0
256:                      256,        0,     7889,     2746, 93253435,        0
512:                      512,        0,     6139,      821,  4805592,        0
1024:                    1024,        0,     2244,      212,  3204299,        0
2048:                    2048,        0,      133,      329, 41243657,        0
4096:                    4096,        0,      138,      630,   634766,        0
Files:                     76,        0,      873,      727,   535797,        0
TURNSTILE:                 76,        0,      897,      303,      897,        0
umtx pi:                   52,        0,        0,        0,        0,        0
PROC:                     696,        0,       88,      557,    71405,        0
THREAD:                   556,        0,      636,      260,    86036,        0
UPCALL:                    44,        0,        0,        0,        0,        0
SLEEPQUEUE:                32,        0,      897,      572,      897,        0
VMSPACE:                  240,        0,       38,      458,    71355,        0
cpuset:                    40,        0,        2,      182,        2,        0
audit_record:             856,        0,        0,        0,        0,        0
mbuf_packet:              256,        0,     2610,     2766, 187248352,        0
mbuf:                     256,        0,        4,     1925, 422377110,        0
mbuf_cluster:            2048,    25600,     5376,      856,    12095,        0
mbuf_jumbo_pagesize:     4096,    12800,        0,       77,      117,        0
mbuf_jumbo_9k:           9216,     6400,        0,        0,        0,        0
mbuf_jumbo_16k:         16384,     3200,        0,        0,        0,        0
mbuf_ext_refcnt:            4,        0,        0,        0,        0,        0
ACL UMA zone:             388,        0,        0,        0,        0,        0
NetGraph items:            36,     4134,       47,     1825, 137671308,        0
NetGraph data items:       36,      546,      513,       33, 212248493,  2391019
g_bio:                    132,        0,        0,      638,    45278,        0
ata_request:              192,        0,        0,      300,    11207,        0
ata_composite:            184,        0,        0,        0,        0,        0
VNODE:                    276,        0,      685,      225,      827,        0
VNODEPOLL:                 64,        0,        0,        0,        0,        0
NAMEI:                   1024,        0,        0,      304,   992367,        0
S VFS Cache:               68,        0,      672,      392,     3388,        0
L VFS Cache:              291,        0,        0,        0,        0,        0
DIRHASH:                 1024,        0,       54,       30,       54,        0
pipe:                     396,        0,        7,      143,      780,        0
ksiginfo:                  80,        0,      592,      464,      592,        0
itimer:                   220,        0,        0,        0,        0,        0
KNOTE:                     68,        0,        0,      280,       38,        0
socket:                   416,    25605,     1573,      632,   296429,        0
unpcb:                    168,    25622,       15,      215,      215,        0
ipq:                       32,      904,        0,      904,    14262,        0
udpcb:                    180,    25608,        3,      371,   116555,        0
inpcb:                    180,    25608,      791,      617,    36132,        0
tcpcb:                    464,    25600,      781,      555,    36132,        0
tcptw:                     52,     5184,       10,     1286,     2471,        0
syncache:                 104,    15392,        0,      444,    59629,        0
hostcache:                 76,    15400,      384,      566,     1513,        0
tcpreass:                  20,     1690,        1,      675,      114,        0
sackhole:                  20,        0,        0,      676,       86,        0
sctp_ep:                  816,    25600,        0,        0,        0,        0
sctp_asoc:               1436,    40000,        0,        0,        0,        0
sctp_laddr:                24,    80040,        0,      145,        4,        0
sctp_raddr:               400,    80000,        0,        0,        0,        0
sctp_chunk:                96,   400000,        0,        0,        0,        0
sctp_readq:                76,   400000,        0,        0,        0,        0
sctp_stream_msg_out:       64,   400020,        0,        0,        0,        0
sctp_asconf:               24,   400055,        0,        0,        0,        0
sctp_asconf_ack:           24,   400055,        0,        0,        0,        0
ripcb:                    180,    25608,      767,      377,    72239,        0
rtentry:                  124,        0,      793,      509,     3560,        0
IPFW dynamic rule:        108,        0,        0,        0,        0,        0
divcb:                    180,    25608,        0,        0,        0,        0
SWAPMETA:                 276,   121576,        0,        0,        0,        0
Mountpoints:              720,        0,        5,       10,        5,        0
FFS inode:                124,        0,      645,      285,      785,        0
FFS1 dinode:              128,        0,        0,        0,        0,        0
FFS2 dinode:              256,        0,      645,      240,      785,        0
NetFlow cache:             52,   262196,     6261,     5657, 21177106,        0

pycuk
Сообщения: 6
Зарегистрирован: Пт ноя 10, 2006 12:12

Сообщение pycuk »

ipfw list

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

00098 deny ip from 10.0.0.0/8 to 172.16.0.0/16
00099 deny ip from 172.16.0.0/16 to 10.0.0.0/8
00100 check-state
00101 allow ip from 192.168.100.0/24 to 192.168.100.22
00102 allow ip from 192.168.100.22 to 192.168.100.0/24
00105 allow ip from 10.0.0.0/8 to 10.10.0.22
00106 allow ip from 10.10.0.22 to 10.0.0.0/8
00107 allow ip from any to 81.24.80.126
00108 allow ip from 81.24.80.126 to any
00113 allow ip from any to any via lo0
00114 allow tcp from me 1723 to any keep-state
00115 deny ip from any 137-139,445 to any
00116 deny ip from any to any dst-port 137-139,445
Далее начинаются правила пайпов которые прописывает УТМ:

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

00146 pipe 146 ip from any to 172.16.34.10 in
00257 pipe 257 ip from any to 172.16.11.9 in
00271 pipe 271 ip from any to 172.16.19.132 in
00279 pipe 279 ip from any to 172.16.19.70 in
00282 pipe 282 ip from any to 172.16.17.65 in
00295 pipe 295 ip from any to 172.16.41.221 in
00297 pipe 297 ip from any to 172.16.41.174 in
00305 pipe 305 ip from any to 172.16.19.110 in
00327 pipe 327 ip from any to 172.16.11.75 in
00335 pipe 335 ip from any to 172.16.11.79 in
00356 pipe 356 ip from any to 172.16.19.130 in
00362 pipe 362 ip from any to 172.16.19.170 in
00371 pipe 371 ip from any to 172.16.19.218 in
00381 pipe 381 ip from any to 172.16.16.173 in
00401 pipe 401 ip from any to 172.16.19.51 in
00411 pipe 411 ip from any to 172.16.44.124 in
00419 pipe 419 ip from any to 172.16.43.6 in
00423 pipe 423 ip from any to 172.16.38.220 in
00470 pipe 470 ip from any to 172.16.44.80 in
00475 pipe 475 ip from any to 172.16.40.139 in
00483 pipe 483 ip from any to 172.16.44.147 in
00485 pipe 485 ip from any to 172.16.40.94 in
00490 pipe 490 ip from any to 172.16.43.167 in
00496 pipe 496 ip from any to 172.16.41.229 in
00500 pipe 500 ip from any to 172.16.51.63 in
00509 pipe 509 ip from any to 172.16.43.156 in
00513 pipe 513 ip from any to 172.16.43.25 in
.....................................................................
08396 pipe 8396 ip from any to 172.16.51.90 in
08397 pipe 8397 ip from any to 172.16.51.91 in
08399 pipe 8399 ip from any to 172.16.152.155 in
08400 pipe 8400 ip from any to 172.16.17.132 in
08401 pipe 8401 ip from any to 172.16.48.92 in
08402 pipe 8402 ip from any to 172.16.49.104 in
08403 pipe 8403 ip from any to 172.16.49.106 in
08404 pipe 8404 ip from any to 172.16.48.93 in
08405 pipe 8405 ip from any to 172.16.48.96 in
08407 pipe 8407 ip from any to 172.16.48.98 in
08408 pipe 8408 ip from any to 172.16.48.99 in
08409 pipe 8409 ip from any to 172.16.48.100 in
08410 pipe 8410 ip from any to 172.16.48.101 in
08411 pipe 8411 ip from any to 172.16.48.102 in
08412 pipe 8412 ip from any to 172.16.48.103 in
08413 pipe 8413 ip from any to 172.16.48.104 in
08414 pipe 8414 ip from any to 172.16.48.105 in
08415 pipe 8415 ip from any to 172.16.48.106 in
08416 pipe 8416 ip from any to 172.16.49.105 in
08417 pipe 8417 ip from any to 172.16.49.107 in
08418 pipe 8418 ip from any to 172.16.49.108 in
08420 pipe 8420 ip from any to 172.16.51.94 in
Далее идут разрешающие правила которые прописывает УТМ для включенных клиентов:

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

10403 allow ip from 172.16.2.11 to any
10403 allow ip from any to 172.16.2.11
10404 allow ip from 172.16.2.12 to any
10404 allow ip from any to 172.16.2.12
10405 allow ip from 172.16.2.13 to any
10405 allow ip from any to 172.16.2.13
10406 allow ip from 172.16.2.14 to any
10406 allow ip from any to 172.16.2.14
10408 allow ip from 172.16.6.123 to any
10408 allow ip from any to 172.16.6.123
10411 allow ip from 172.16.44.124 to any
10411 allow ip from any to 172.16.44.124
10412 allow ip from 172.16.2.20 to any
10412 allow ip from any to 172.16.2.20
10415 allow ip from 172.16.2.23 to any
10415 allow ip from any to 172.16.2.23
10419 allow ip from 172.16.43.6 to any
10419 allow ip from any to 172.16.43.6
..........................................................
18409 allow ip from 172.16.48.100 to any
18409 allow ip from any to 172.16.48.100
18410 allow ip from 172.16.48.101 to any
18410 allow ip from any to 172.16.48.101
18411 allow ip from 172.16.48.102 to any
18411 allow ip from any to 172.16.48.102
18412 allow ip from any to 172.16.48.103
18412 allow ip from 172.16.48.103 to any
18413 allow ip from 172.16.48.104 to any
18413 allow ip from any to 172.16.48.104
18414 allow ip from 172.16.48.105 to any
18414 allow ip from any to 172.16.48.105
18415 allow ip from 172.16.48.106 to any
18415 allow ip from any to 172.16.48.106
18416 allow ip from 172.16.49.105 to any
18416 allow ip from any to 172.16.49.105
18417 allow ip from 172.16.49.107 to any
18417 allow ip from any to 172.16.49.107
18418 allow ip from 172.16.49.108 to any
18418 allow ip from any to 172.16.49.108
18419 allow ip from 172.16.51.93 to any
18419 allow ip from any to 172.16.51.93
18420 allow ip from 172.16.51.94 to any
18420 allow ip from any to 172.16.51.94
Статические правила hadzhimurad уже переделал в таблицы:

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

01000 pipe 999 ip from any to table(1) in
01001 pipe 96 ip from any to table(2) in
01002 pipe 192 ip from any to table(3) in
01003 pipe 96 ip from any to table(4) in
Итого правил более 15000.

hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Сообщение hadzhimurad »

вроде чуть помогло после следующих изменений

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

cat /etc/sysctl.conf

#security.bsd.see_other_uids=0

net.inet.ip.fw.dyn_count=4002
net.inet.ip.fw.curr_dyn_buckets=2048
net.inet.ip.fw.dyn_buckets=2048
net.inet.ip.fw.verbose_limit=1000
net.inet.ip.fw.dyn_max=16384

net.inet.ip.fw.one_pass=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
#net.inet.icmp.icmplim=30
#kern.polling.idle_poll=0

#net.inet.tcp.rfc1323=1

net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344

#net.inet.tcp.delacktime=100
net.local.stream.sendspace=65535
net.local.stream.recvspace=65535
#net.inet.tcp.local_slowstart_flightsize=10
#net.inet.tcp.nolocaltimewait=1
#net.inet.tcp.hostcache.expire=3900
#kern.polling.burst_max=1000
#kern.polling.idle_poll=0
#kern.polling.each_burst=50
#net.inet.tcp.hostcache.expire=3900
#net.inet.tcp.slowstart_flightsize=54
#net.inet.tcp.inflight.enable=1
#net.inet.tcp.inflight.min=6144

net.graph.maxalloc=4096
net.graph.maxdgram=45000
net.graph.recvspace=45000

kern.ipc.nmbcluster=32768
kern.ipc.maxsockbufs=2097152
kern.ipc.somaxconn=8192
kern.maxfiles=65536
kern.maxfilesperproc=32768

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

cat /boot/loader.conf

kern.ipc.maxsockets="16424"
kern.ipc.shm_use_phys="1"
kern.hz=1000
net.inet.tcp.tcbhashsize="4096"
net.inet.tcp.hostcache.hashsize="1024"

только вот
net.inet.ip.fw.dyn_count=4002
net.inet.ip.fw.curr_dyn_buckets=2048

не хотят меняться, read only пишет, когда изменяешь

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

тут два человека задают вопрос или один ? :)

Если один - то прикручивать пайпы к mpd занятие глупое по определению.

Шейпить надо через ng_car благо поддержка встроенная.

Правда остаётся проблема прикручивания диношейпа. Но вроде как в новой версии он умет работать через радиус (точно не знаю поэтому стоит уточнить). В этом направлении и надо копать.
правильно подготовленный mpd5 на 7.2 3Ghz легко тянет без какой либо оптимизации (pptp/pppoe, netflow в два направления):

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

ifconfig | grep -c ng
1374

bge1 смотрит на внешний гейт

%netstat -hI bge1 1
            input         (bge1)           output
   packets  errs      bytes    packets  errs      bytes colls
       49K     0        40M        47K     0        27M     0
       51K     0        41M        50K     0        29M     0
       47K     0        39M        48K     0        28M     0

%netstat -h 1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
      206K     0       130M       208K     0       154M     0
      208K     0       132M       213K     0       158M     0
      213K     0       137M       213K     0       158M     0
      210K     0       135M       212K     0       155M     0


mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

если все-таки хочется остаться на дамминете, то стоит помнить ряд замечаний:
1.стейты - это плохо для производительности
2.пачка правил портянкой - это очень плохо для производительности. правда с персональным шейпом через динашейп тут сложно придумать что-то другое.
3.правила с указанием направления пакета без указания интерфейса - это двойное совпадение.
4. переведите блокировку на таблицы. Это не сложно, а длину правил уменьшит вдвое.
5. Ну и когда мои vpn стали захлебываться под 1000+ сессий и трафиком в районе сотки - мы отселили НАТ на отдельную машину. Это сняло 40% нагрузки.

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

vpn2# ipfw list | wc -l
      31
Вот такая вот картина у меня сейчас.

hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Сообщение hadzhimurad »

Arti
два :)

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

Сейчас трабла в utm_rfw, который грузит много правил. От которых сервак захлебывается.

Поддержка рекомендует изменить параметры

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

net.inet.ip.fw.curr_dyn_buckets: 256
net.inet.ip.fw.dyn_buckets: 256
но почему-то не получается изменить sysctl пишет:

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

sysctl: oid 'net.inet.ip.fw.curr_dyn_buckets' is read only
как их изменить?

hadzhimurad
Сообщения: 17
Зарегистрирован: Пн июл 30, 2007 20:52

Сообщение hadzhimurad »

mikkey finn
хотелось бы уточнить, как вы добились такой минимизации правил файрвола?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

nat средствами Ng_car(в услуге передачи трафика вводятся радиус-аттрибуты)
в начале списка идут skipto зависимый от интерфейса, и направления пакета.
далее на определенных интерфейсах логика... Или просто allow all from any to any или deny all from table(2) to any
правило включения выглядит "ipfw table 2 delete UIP", правило выключения - ipfw table 2 add UIP/UBITS
поищите в интернетах статью nuclight(вроде не ошибся), там разрисовано, как идет пакет по стеку, в частности по фаерволу.
У меня пакет проходит в худшем случае по 18 правилам.

pycuk
Сообщения: 6
Зарегистрирован: Пт ноя 10, 2006 12:12

Сообщение pycuk »

Убрали все pipe правила с ipfw. Теперь шейпинг реализован через радиус на mpd.
в момент нагрузки и потери пакетов

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

last pid: 39295;  load averages:  2.17,  2.24,  2.29                                                                                  up 0+03:09:24  20:46:30
73 processes:  11 running, 50 sleeping, 12 waiting
CPU:  0.3% user,  0.0% nice, 29.6% system,  0.7% interrupt, 69.4% idle
Mem: 23M Active, 7504K Inact, 124M Wired, 32K Cache, 18M Buf, 3823M Free
Swap: 8192M Total, 8192M Free

  PID USERNAME     THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   12 root           1 171 ki31     0K     8K CPU6   6 167:11 100.00% idle: cpu6
    9 root           1 -68    -     0K     8K CPU4   4  23:09 100.00% ng_queue7
   17 root           1 171 ki31     0K     8K RUN    1 135:47 97.46% idle: cpu1
   13 root           1 171 ki31     0K     8K CPU5   5 164:29 95.65% idle: cpu5
   18 root           1 171 ki31     0K     8K CPU0   0 140:19 92.68% idle: cpu0
   15 root           1 171 ki31     0K     8K CPU3   3 154:49 91.26% idle: cpu3
   16 root           1 171 ki31     0K     8K CPU2   2 144:44 89.26% idle: cpu2
   35 root           1 -68    -     0K     8K CPU7   7 155:59 85.50% em0 taskq
   11 root           1 171 ki31     0K     8K RUN    7  45:16 13.77% idle: cpu7
   36 root           1 -68    -     0K     8K -      0  12:39  8.06% em1 taskq
    4 root           1 -68    -     0K     8K sleep  5  22:01  3.37% ng_queue2
    3 root           1 -68    -     0K     8K sleep  2  21:29  3.17% ng_queue1
    2 root           1 -68    -     0K     8K sleep  5  21:11  3.17% ng_queue0
    6 root           1 -68    -     0K     8K sleep  3  20:49  3.17% ng_queue4
    5 root           1 -68    -     0K     8K sleep  1  22:19  3.08% ng_queue3
    7 root           1 -68    -     0K     8K sleep  0  20:38  2.98% ng_queue5
    8 root           1 -68    -     0K     8K sleep  6  20:09  2.59% ng_queue6
   20 root           1 -32    -     0K     8K WAIT   0  37:00  2.10% swi4: clock sio

То есть нагрузка процесса ng_queue становится причиной потери пакетов и увеличения латентности.

Хотелось бы узнать как решить эту проблему.

duzer
Сообщения: 82
Зарегистрирован: Сб ноя 04, 2006 12:50

Сообщение duzer »


Ответить