Вопрос по настройке ipfw
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
Вопрос по настройке ipfw
Столкнулся недавно с проблемой на сервере, до недавнего времени онлайн юзеров было не много (порядка 200), сейчас же онлайн сидят 800 и сервак стал проседать. То есть, у пользователей упала скорость. Перенес NAT на отдельный сервак, но проблема осталась.
Как я понимаю трабла кроется в схеме, а она на серваке следующая:
1. Pipes
2. адреса, которые вгоняются в pipe
3. разрешающие правила (allow).
4. NAT
На серваке Freebsd 7.2 c ipfw.
Спасибо.
Как я понимаю трабла кроется в схеме, а она на серваке следующая:
1. Pipes
2. адреса, которые вгоняются в pipe
3. разрешающие правила (allow).
4. NAT
На серваке Freebsd 7.2 c ipfw.
Спасибо.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
существенная.
Когда для каждого адреса прописано свое правило, то фаервол вынужден пробежать по всем правилам с каждым пакетом.
Когда табличное сравнение идет, да еще и с табличным аргументом(pipe tablearg ip from table(1) to any) - это одна операция с поиском по хешу в табличке.
Аналогично с запретом (deny ip from table(30)) будет работать значительно быстрее, чем пара тысяч правил deny ip from UIP to any
Когда для каждого адреса прописано свое правило, то фаервол вынужден пробежать по всем правилам с каждым пакетом.
Когда табличное сравнение идет, да еще и с табличным аргументом(pipe tablearg ip from table(1) to any) - это одна операция с поиском по хешу в табличке.
Аналогично с запретом (deny ip from table(30)) будет работать значительно быстрее, чем пара тысяч правил deny ip from UIP to any
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
Добавлю больше инфы о проблеме.
На сервере стоит FreeBSD 7.2-RELEASE.
Установлен mpd5.2 который принимает pptp соединения. так же средствами Mpd сбрасывается netflow трафик на биллинг.
Все клиенты в УТМ имеют статические адреса.
На сервере стоит UTM5_RFW с Dynashape, которые прописывают разрешающие правила и пайпы для ограничения скорости.
Проблема с большими задержками и потерями может появляться как и при 800+ клиентов онлайн, так и при 300-400. Не редки случаи когда онлайн больше 800 и всё работает идеально.
Вот нагрузка сервера:
Загрузка сетевой карты:
Листинг sysctl.conf: (может тут еще что то можно подкорректировать?)
netstat -m
vmstat -z
На сервере стоит 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
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
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
ipfw list
Далее начинаются правила пайпов которые прописывает УТМ:
Далее идут разрешающие правила которые прописывает УТМ для включенных клиентов:
Статические правила hadzhimurad уже переделал в таблицы:
Итого правил более 15000.
Код: Выделить всё
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
Код: Выделить всё
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
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
вроде чуть помогло после следующих изменений
только вот
net.inet.ip.fw.dyn_count=4002
net.inet.ip.fw.curr_dyn_buckets=2048
не хотят меняться, read only пишет, когда изменяешь
Код: Выделить всё
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 пишет, когда изменяешь
тут два человека задают вопрос или один ? 
Если один - то прикручивать пайпы к mpd занятие глупое по определению.
Шейпить надо через ng_car благо поддержка встроенная.
Правда остаётся проблема прикручивания диношейпа. Но вроде как в новой версии он умет работать через радиус (точно не знаю поэтому стоит уточнить). В этом направлении и надо копать.
правильно подготовленный mpd5 на 7.2 3Ghz легко тянет без какой либо оптимизации (pptp/pppoe, netflow в два направления):

Если один - то прикручивать пайпы к 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
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
если все-таки хочется остаться на дамминете, то стоит помнить ряд замечаний:
1.стейты - это плохо для производительности
2.пачка правил портянкой - это очень плохо для производительности. правда с персональным шейпом через динашейп тут сложно придумать что-то другое.
3.правила с указанием направления пакета без указания интерфейса - это двойное совпадение.
4. переведите блокировку на таблицы. Это не сложно, а длину правил уменьшит вдвое.
5. Ну и когда мои vpn стали захлебываться под 1000+ сессий и трафиком в районе сотки - мы отселили НАТ на отдельную машину. Это сняло 40% нагрузки.
Вот такая вот картина у меня сейчас.
1.стейты - это плохо для производительности
2.пачка правил портянкой - это очень плохо для производительности. правда с персональным шейпом через динашейп тут сложно придумать что-то другое.
3.правила с указанием направления пакета без указания интерфейса - это двойное совпадение.
4. переведите блокировку на таблицы. Это не сложно, а длину правил уменьшит вдвое.
5. Ну и когда мои vpn стали захлебываться под 1000+ сессий и трафиком в районе сотки - мы отселили НАТ на отдельную машину. Это сняло 40% нагрузки.
Код: Выделить всё
vpn2# ipfw list | wc -l
31
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
Arti
два
mikkey finn
мы тоже решили натить на отдельной тачке, нагрузка спала.
затем пачку статических пайпов вынесли в таблицу.
Сейчас трабла в utm_rfw, который грузит много правил. От которых сервак захлебывается.
Поддержка рекомендует изменить параметры
но почему-то не получается изменить sysctl пишет:
как их изменить?
два

mikkey finn
мы тоже решили натить на отдельной тачке, нагрузка спала.
затем пачку статических пайпов вынесли в таблицу.
Сейчас трабла в utm_rfw, который грузит много правил. От которых сервак захлебывается.
Поддержка рекомендует изменить параметры
Код: Выделить всё
net.inet.ip.fw.curr_dyn_buckets: 256
net.inet.ip.fw.dyn_buckets: 256
Код: Выделить всё
sysctl: oid 'net.inet.ip.fw.curr_dyn_buckets' is read only
-
- Сообщения: 17
- Зарегистрирован: Пн июл 30, 2007 20:52
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
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 правилам.
в начале списка идут 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 правилам.
Убрали все pipe правила с ipfw. Теперь шейпинг реализован через радиус на mpd.
в момент нагрузки и потери пакетов
То есть нагрузка процесса ng_queue становится причиной потери пакетов и увеличения латентности.
Хотелось бы узнать как решить эту проблему.
Код: Выделить всё
top -S
Код: Выделить всё
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
Хотелось бы узнать как решить эту проблему.