<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>https://www.auul.pri.ee/wiki/index.php?action=history&amp;feed=atom&amp;title=OpenBSD_tulem%C3%BC%C3%BCri_v%C3%B5rgu_koormustest</id>
	<title>OpenBSD tulemüüri võrgu koormustest - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="https://www.auul.pri.ee/wiki/index.php?action=history&amp;feed=atom&amp;title=OpenBSD_tulem%C3%BC%C3%BCri_v%C3%B5rgu_koormustest"/>
	<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenBSD_tulem%C3%BC%C3%BCri_v%C3%B5rgu_koormustest&amp;action=history"/>
	<updated>2026-05-03T20:27:39Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://www.auul.pri.ee/wiki/index.php?title=OpenBSD_tulem%C3%BC%C3%BCri_v%C3%B5rgu_koormustest&amp;diff=1192&amp;oldid=prev</id>
		<title>Imre: Uus lehekülg: '===Sissejuhatus===  Tulemüüri koormustestil sobiks tähelepanu pöörata sellistele asjaoludele  * kui palju ruuditakse liiklust läbi väljalülitatud paketifiltriga * kui palju võib tulemüürile taustal saata pakette, mida paketifilter blokeerib, et sama ajal vajalik liiklus veel läbi käiks * kui palju liiklust tulemüür suudab sisselülitatud paketifiltriga läbi lasta (nö ühe state vs palju state liiklust, st pakettide src ja dst ip ning src ja dst port aadress...'</title>
		<link rel="alternate" type="text/html" href="https://www.auul.pri.ee/wiki/index.php?title=OpenBSD_tulem%C3%BC%C3%BCri_v%C3%B5rgu_koormustest&amp;diff=1192&amp;oldid=prev"/>
		<updated>2024-07-21T08:36:23Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;===Sissejuhatus===  Tulemüüri koormustestil sobiks tähelepanu pöörata sellistele asjaoludele  * kui palju ruuditakse liiklust läbi väljalülitatud paketifiltriga * kui palju võib tulemüürile taustal saata pakette, mida paketifilter blokeerib, et sama ajal vajalik liiklus veel läbi käiks * kui palju liiklust tulemüür suudab sisselülitatud paketifiltriga läbi lasta (nö ühe state vs palju state liiklust, st pakettide src ja dst ip ning src ja dst port aadress...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Sissejuhatus===&lt;br /&gt;
&lt;br /&gt;
Tulemüüri koormustestil sobiks tähelepanu pöörata sellistele asjaoludele&lt;br /&gt;
&lt;br /&gt;
* kui palju ruuditakse liiklust läbi väljalülitatud paketifiltriga&lt;br /&gt;
* kui palju võib tulemüürile taustal saata pakette, mida paketifilter blokeerib, et sama ajal vajalik liiklus veel läbi käiks&lt;br /&gt;
* kui palju liiklust tulemüür suudab sisselülitatud paketifiltriga läbi lasta (nö ühe state vs palju state liiklust, st pakettide src ja dst ip ning src ja dst port aadresse varieerides)&lt;br /&gt;
&lt;br /&gt;
===Koormustesti korraldus===&lt;br /&gt;
&lt;br /&gt;
Tulemüüri koormustesti korralduseks võiks olla üles seadistatud nt selline asjakorraldus&lt;br /&gt;
&lt;br /&gt;
          klient 1         klient 2    .....        klient n&lt;br /&gt;
            _____            _____                    _____&lt;br /&gt;
           |     |          |     |                  |     |&lt;br /&gt;
           |_____|          |_____|                  |_____|   &lt;br /&gt;
              |               |                         |&lt;br /&gt;
    &lt;br /&gt;
 &lt;br /&gt;
                                    võrk&lt;br /&gt;
 &lt;br /&gt;
                    tm 1                               tm 2&lt;br /&gt;
                               &lt;br /&gt;
                -----|----------------|-----------------|-----&lt;br /&gt;
                     |                |                 |&lt;br /&gt;
                     |              __|__               |&lt;br /&gt;
                   __|__           |     |            __|__&lt;br /&gt;
                  |     |          |_____|           |     |&lt;br /&gt;
                  |_____|                            |_____|&lt;br /&gt;
                     |               tmh                |&lt;br /&gt;
                     |                                  |&lt;br /&gt;
         ----|-------|----------|-----------------------|--------|-------&lt;br /&gt;
             |                  |                                |&lt;br /&gt;
           __|__              __|__                            __|__&lt;br /&gt;
          |     |            |     |                          |     |&lt;br /&gt;
          |_____|            |_____|                          |_____|   &lt;br /&gt;
 &lt;br /&gt;
          server 1           server 2           ....          server n&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* tm 1 - tulemüüri klastri õlg 1&lt;br /&gt;
* tm 2 - tulemüüri klastri õlg 2&lt;br /&gt;
* tmh - tulemüüri klastri haldusarvuti (/syweb, /nfsen)&lt;br /&gt;
&lt;br /&gt;
Koormustesti alguses tuleks tulemüüri paketifilter välja lülitada&lt;br /&gt;
&lt;br /&gt;
 # pfctl -d&lt;br /&gt;
&lt;br /&gt;
ning aru saada (eeldusel, et serverid kasutavad avalikke aadresse)&lt;br /&gt;
&lt;br /&gt;
* kui palju üksikuid pakette (nt udp) sekundis suudab võrk klientidest serveriteni toimetada&lt;br /&gt;
* kui palju liiklust suudab OpenBSD tulemüür ära ruutida kasutades vähe tcp ühendusi (nt 1000)&lt;br /&gt;
* kui palju uusi tcp ühendusi sekundis suudab OpenBSD tulemüür ära kannatada ruutides vastavat liiklust läbi&lt;br /&gt;
&lt;br /&gt;
Seda võiks mõõta nt selliselt&lt;br /&gt;
&lt;br /&gt;
* hping3 abil syn pakette saates&lt;br /&gt;
* pktgen abil udp pakettide saatmine&lt;br /&gt;
* queryperf ja teisel pool nsd nimeserver&lt;br /&gt;
* ab või weighttp ja teiselt poolt nginx abil (korrektsed tcp ühendused)&lt;br /&gt;
&lt;br /&gt;
Seejärel käivitada võimalikult lihtne ja efektiivne paketifilter, nt mis sisaldab ühte reeglit&lt;br /&gt;
&lt;br /&gt;
 pass&lt;br /&gt;
&lt;br /&gt;
ning tuunida nn pf.optioneid. Samal ajal jälgida&lt;br /&gt;
&lt;br /&gt;
* /syweb/ graafikuid&lt;br /&gt;
* systat väljundit&lt;br /&gt;
* tcpstat abil kui palju pakette jõuab läbi tulemüüri serverisse&lt;br /&gt;
&lt;br /&gt;
Lisaks käivitada rdr-to reegliga paketifilter.&lt;br /&gt;
&lt;br /&gt;
===Liikluse genereerimine===&lt;br /&gt;
&lt;br /&gt;
Nö tavalise arvuti ja 1G võrguliidesega suudab Linuxi hping3 --flood suvandi abil genereerida ca 58 k paketti sekundis tcp syn pakette (suurusega 42 baiti, kokku tekitab see liikluse 20 Mbit/s). Genereerimiseks sobib konkreetselt öelda nt&lt;br /&gt;
&lt;br /&gt;
 # hping3 -q -i u10 -S -p 443 10.184.41.180&lt;br /&gt;
&lt;br /&gt;
ning sama arvuti teises aknas jälgida tcpstat programmiga reaalset väljundit&lt;br /&gt;
&lt;br /&gt;
 # tcpstat -i eth0 -o &amp;quot;Time:%S\tn=%n\tavg=%a\tstddev=%d\tpps=%p\n&amp;quot; -f &amp;quot;tcp and host 10.184.41.180&amp;quot; 1&lt;br /&gt;
&lt;br /&gt;
või &lt;br /&gt;
&lt;br /&gt;
 # tcpstat -i eth0 -o &amp;quot;Time:%S\tn=%n\tavg=%a\tstddev=%d\tbps=%B\n&amp;quot; -f &amp;quot;tcp and host 10.184.41.180&amp;quot; 1&lt;br /&gt;
&lt;br /&gt;
* Tundub, et 1 G PCI võrgukaart ja nö 2009 aasta arvuti ning Debian v. 6 või 7 operatsioonisüsteem suudab tekitada kuni 100k paketti sekundis ilma eriliselt midagi modifitseerimata.&lt;br /&gt;
&lt;br /&gt;
* Tundub, et 2010 aasta ca 200 eurose switchi portidest käib läbi kuni 130k paketti sekundis.&lt;br /&gt;
&lt;br /&gt;
* Tundub, et 2009 aasta arvuti 1 G liides suudab võtta vastu ca 130k paketti sekundis.&lt;br /&gt;
&lt;br /&gt;
Liiklust genereerivas arvutis paistab olevat os load 1-2 (kahe core arvutis) kusjuures jaguneb sy ja si vahel&lt;br /&gt;
&lt;br /&gt;
 top - 17:08:00 up 17 days,  5:18,  5 users,  load average: 1.00, 1.03, 0.81&lt;br /&gt;
 %Cpu0  :  0.3 us,  1.0 sy,  2.3 ni, 96.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st&lt;br /&gt;
 %Cpu1  : 10.6 us, 40.4 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi, 49.0 si,  0.0 st&lt;br /&gt;
 KiB Mem:   1994696 total,  1633992 used,   360704 free,    15308 buffers&lt;br /&gt;
 KiB Swap:  4194300 total,   665208 used,  3529092 free,  1277768 cached&lt;br /&gt;
 &lt;br /&gt;
 PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                                                   &lt;br /&gt;
 6843 root      20   0 16724  872  676 R  99.8  0.0   5:08.61 hping3&lt;br /&gt;
&lt;br /&gt;
Liiklust vastu võtvas arvutis tekib si (software interrupt) koormus, näiteks kaks arvutit teevad hping3 abil flood'i&lt;br /&gt;
&lt;br /&gt;
 # timeout 50 hping3 -q -p 80 --flood -S 192.168.10.119&lt;br /&gt;
&lt;br /&gt;
ja tulemuseks on&lt;br /&gt;
&lt;br /&gt;
 Tasks: 131 total,   4 running, 127 sleeping,   0 stopped,   0 zombie&lt;br /&gt;
 Cpu0  :  0.0%us,  0.0%sy,  0.0%ni, 79.8%id,  0.0%wa,  0.0%hi, 20.2%si,  0.0%st&lt;br /&gt;
 Cpu1  :  0.0%us,  1.2%sy,  0.0%ni, 90.6%id,  0.0%wa,  0.0%hi,  8.2%si,  0.0%st&lt;br /&gt;
 Cpu2  :  0.0%us,  0.0%sy,  0.0%ni, 58.8%id,  0.0%wa,  0.0%hi, 41.2%si,  0.0%st&lt;br /&gt;
 Cpu3  :  0.0%us,  0.0%sy,  0.0%ni, 89.1%id,  0.0%wa,  0.0%hi, 10.9%si,  0.0%st&lt;br /&gt;
 Mem:   3849616k total,   961420k used,  2888196k free,   101836k buffers&lt;br /&gt;
 Swap:  1048568k total,        0k used,  1048568k free,   726500k cached&lt;br /&gt;
 &lt;br /&gt;
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                     &lt;br /&gt;
  10 root      20   0     0    0    0 R   42  0.0   2:10.96 ksoftirqd/2                                                                                                                                                                                  &lt;br /&gt;
   4 root      20   0     0    0    0 S   17  0.0   4:31.57 ksoftirqd/0                                                                                                                                                                                  &lt;br /&gt;
  13 root      20   0     0    0    0 S   17  0.0   2:45.77 ksoftirqd/3                                                                                                                                                                                  &lt;br /&gt;
   7 root      20   0     0    0    0 S    5  0.0   4:20.70 ksoftirqd/1    &lt;br /&gt;
&lt;br /&gt;
ja kui pordil töötab teenus, saab ip_conntrack täis&lt;br /&gt;
&lt;br /&gt;
 # cat /proc/net/ip_conntrack | wc -l&lt;br /&gt;
 65381&lt;br /&gt;
&lt;br /&gt;
===OpenBSD käitumine võrgukoormuse tingimustes===&lt;br /&gt;
&lt;br /&gt;
* ühe hping3 tulemusena tekib OpenBSD peale ca 300-400k state'i&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
&lt;br /&gt;
Linux kirjutab suure pakketide saabumise puhul dmesgi&lt;br /&gt;
&lt;br /&gt;
 [170625.309661] nf_conntrack: table full, dropping packet.&lt;br /&gt;
&lt;br /&gt;
aitab (või iptables moodulite maha laadimine)&lt;br /&gt;
&lt;br /&gt;
 # sysctl -w net.netfilter.nf_conntrack_max=131072&lt;br /&gt;
&lt;br /&gt;
Kui pordil teenus töötab ning ning on sisse lülitatud tcp_syncookies&lt;br /&gt;
&lt;br /&gt;
 sysctl -w net.ipv4.tcp_syncookies=1&lt;br /&gt;
&lt;br /&gt;
öeldakse dmesgis&lt;br /&gt;
&lt;br /&gt;
 [  806.525077] TCPv6: Possible SYN flooding on port 80. Dropping request.&lt;br /&gt;
&lt;br /&gt;
===NginX test===&lt;br /&gt;
&lt;br /&gt;
Kahes arvutist pöördutakse&lt;br /&gt;
&lt;br /&gt;
 # ab -n 800000 -c 700 http://192.168.10.119/&lt;br /&gt;
&lt;br /&gt;
Server teenindab&lt;br /&gt;
&lt;br /&gt;
 Active connections: 381 &lt;br /&gt;
 server accepts handled requests&lt;br /&gt;
  4324070 4324070 4323758 &lt;br /&gt;
 Reading: 380 Writing: 1 Waiting: 0&lt;br /&gt;
&lt;br /&gt;
ja võrgus on näha 72 k sisenevat paketti sekundis.&lt;br /&gt;
&lt;br /&gt;
Kliendud saavad kokku vastuseks ca 18 k päringut sekundis.&lt;br /&gt;
&lt;br /&gt;
ab juures lisaks -k võtme kasutamisel jaotatakse -n abil näidatus arv päringuid -c järel näidatud arvu tcp ühenduste vahel, seda saab kergesti jälgida vaadates teises aknas&lt;br /&gt;
&lt;br /&gt;
 # tcpdump -nli eth0 'tcp[13] &amp;amp; 2 != 0' and dst 192.168.10.119 and port 80 1&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
===Siege===&lt;br /&gt;
&lt;br /&gt;
* http://www.joedog.org/siege-home/&lt;br /&gt;
&lt;br /&gt;
===OpenBSD ruudib tcp ühendusi===&lt;br /&gt;
&lt;br /&gt;
Neljast arvutist pöördutakse läbi OpenBSD ruuteri kahe teenuse poole&lt;br /&gt;
&lt;br /&gt;
 # /root/bin/weighttp -n 40000000 -c 100 -t 4 http://10.184.41.179/&lt;br /&gt;
 # /root/bin/weighttp -n 40000000 -c 100 -t 4 http://10.184.41.185/&lt;br /&gt;
&lt;br /&gt;
Tulemusena teenindadakse veel ilma oluliste vigadeta, mida näitaks&lt;br /&gt;
&lt;br /&gt;
 # netstat -I em0 -w 1&lt;br /&gt;
&lt;br /&gt;
http päringuid, seejuures tulemüüri välisel seadmel on 290 kpps. Kuna antud juhul ühele päringule vastab üks tcp ühendus ning sellega liigub serverisse kuus ip paketti, siis tähendab, et tulemüür suudab teenindada ca 50 k tcp ühendust sekundis.&lt;br /&gt;
&lt;br /&gt;
Seejuures tulemüüris ei ole olulist load'i (17k interrupti)&lt;br /&gt;
&lt;br /&gt;
===OpenBSD ruudib ja filtreerib tcp ühendusi===&lt;br /&gt;
&lt;br /&gt;
Korrates sama katset, aga sisselülitatud paketifiltriga suudab tulemüür tegeleda ca 25 k uue ühendusega sekundis&lt;br /&gt;
&lt;br /&gt;
 # pfctl -Fi; sleep 10; pfctl -si | grep -A 4 &amp;quot;State Table&amp;quot;&lt;br /&gt;
 pf: statistics cleared&lt;br /&gt;
 State Table                          Total             Rate&lt;br /&gt;
   current entries                   466621               &lt;br /&gt;
   searches                         4239544       423954.4/s&lt;br /&gt;
   inserts                           497542        49754.2/s&lt;br /&gt;
   removals                          502588        50258.8/s&lt;br /&gt;
&lt;br /&gt;
kus&lt;br /&gt;
&lt;br /&gt;
* kuna ühele ühendusele vastab kaks olekut, siis tuleb inserts väärtus jagada kahega&lt;br /&gt;
&lt;br /&gt;
Seejuures on interrupt load veidi kõrgem. Kuna pakette saabub vähem, siis netstat vigu ei näita.&lt;br /&gt;
&lt;br /&gt;
===Kasulikud lisamaterjalid===&lt;br /&gt;
&lt;br /&gt;
* http://kuutorvaja.eenet.ee/wiki/Võrgudiagnostika&lt;br /&gt;
* http://dpdk.org/&lt;br /&gt;
* [[:Httperf kasutamine]]&lt;/div&gt;</summary>
		<author><name>Imre</name></author>
	</entry>
</feed>