nicol@s Posted June 8, 2010 Posted June 8, 2010 (edited) Добрый день! В настоящее время используем pf NAT. Интересуют несколько вопросов: 1. Какая технология NAT требует меньше ресурсов системы a) pf NAT b) ipfw kernel NAT c) NG_NAT ? 2. BINAT или NAT - что лучше? Я имею ввиду, что быстрее и требует меньше системных ресурсов? Предполагаю, что BINAT быстрее, т.к. нет необходимости хранить стейты. 3. PF не разбивается на треды. Читал, что IPFW (в FreeBSD 8.0, например) - разбивается. Однако, в своих тестах я этого не увидел. Может нужно пересобирать ядро с какими-то дополнительными опциями? Для теста я пересобирал ядро с такими опциями: options SMP # IPFW options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_DEFAULT_TO_ACCEPT options DUMMYNET options IPFIREWALL_NAT options LIBALIAS options HZ="2000" 4. Не смог найти никакой информации про BINAT в ng_nat. Умеет ли бинатить ng_nat? Может кто-нибудь использовал такую технологию? Или может быть у кого-нибудь есть интересные статьи на эту тему? Для теста использовался следующий комп (border nat): - dmesg | less: FreeBSD 8.0-STABLE-201004 #0: Mon Apr 5 15:59:06 UTC 2010 CPU: Intel(R) Pentium(R) 4 CPU 3.20GHz (3200.01-MHz K8-class CPU) real memory = 536870912 (512 MB) age0: mem 0xfeac0000-0xfeafffff irq 17 at device 0.0 on pci2 rl0: port 0xe800-0xe8ff mem 0xfebffc00-0xfebffcff irq 19 at device 0.0 on pci4 Тестовая схема: laptop(192.168.0.188)-->age0(192.168.0.1)-->rl0(10.1.2.142)-->internet age0 - внутренний интерфейс; rl0 - внешний интерфейс; IP-пул для ната: 10.1.6.0/24. Тестировал загрузку и потери следующими утилитами 1. ping -c 500 -f 192.168.1.112 2. iperf -c 192.168.1.112 -n 1M -i 1 -t 180 3. netstat Ниже выкладываю результаты тестов. 1. pf NAT: Здесь в конфиге /etc/pf.conf.ports одно правило для ната: nat pass on $ext_if from to any -> 10.1.6.0/24 source-hash test static-port a). ping -c 500 -f 192.168.1.112: PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1658ms rtt min/avg/max/mdev = 0.239/0.339/5.425/0.262 ms, ipg/ewma 3.323/0.328 ms b) На сервере 192.168.1.112 запускаю: iperf -s 80 На ноуте: iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180 Вывод netstat: netstat -w1d -I age0: input (age0) output packets errs idrops bytes packets errs bytes colls 5247 0 0 7332276 1600 0 83700 0 5286 0 0 7331330 1578 0 82296 0 5278 0 0 7339278 1589 0 83754 0 5312 0 0 7380344 1570 0 82728 0 5328 0 0 7337764 1567 0 83160 0 netstat -w1d -I rl0: input (rl0) output packets errs idrops bytes packets errs bytes colls 1556 0 0 93508 5133 0 7275788 0 1547 0 0 92832 5169 0 7337174 0 1551 0 0 93072 5161 0 7321088 0 1539 0 0 92352 5199 0 7381268 0 1520 0 0 91212 5195 0 7367642 0 top –S: last pid: 6320; load averages: 0.07, 0.02, 0.00 up 1+18:19:20 10:08:26 70 processes: 3 running, 55 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 1.2% system, 4.7% interrupt, 94.2% idle Mem: 21M Active, 136M Inact, 89M Wired, 44K Cache, 59M Buf, 237M Free Swap: 2048M Total, 2048M Free 2. pf BINAT: В конфиге /etc/pf.conf.ports порядка 1000 "левых" правил вида: ... binat on $ext_if from 10.10.10.2 to any -> 10.1.6.13 binat on $ext_if from 10.10.10.3 to any -> 10.1.6.14 ... И одно актуальное правило для ноута: binat on $ext_if from 192.168.0.188 to any -> 10.1.6.188 a) ping -c 500 -f 192.168.1.112: PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1688ms rtt min/avg/max/mdev = 0.238/0.357/1.006/0.078 ms, ipg/ewma 3.383/0.330 ms b) На сервере 192.168.1.112: iperf -s 80 На ноуте: iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180 Вывод netstat: netstat -w1d -I age0: input (age0) output packets errs idrops bytes packets errs bytes colls 5294 0 0 7318272 1585 0 84996 0 0 0 0 7357824 0 0 83862 0 5314 0 0 7367854 1591 0 83268 0 5302 0 0 7290642 1591 0 83646 0 5270 0 0 7332276 1577 0 85914 0 netstat -w1d -I rl0: input (rl0) output packets errs idrops bytes packets errs bytes colls 1586 0 0 95172 5172 0 7341148 0 1567 0 0 94038 5177 0 7344514 0 1537 0 0 92232 5198 0 7373698 0 1565 0 0 93912 5166 0 7328090 0 1561 0 0 93672 5139 0 7301596 0 top –S: last pid: 8622; load averages: 0.16, 0.07, 0.01 up 2+13:22:43 05:11:49 61 processes: 3 running, 46 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 4.4% system, 5.1% interrupt, 90.5% idle Mem: 14M Active, 127M Inact, 89M Wired, 59M Buf, 251M Free Swap: 2048M Total, 2048M Free 3.IPFW KERNEL NAT: a). ping -c 500 -f 192.168.1.5: PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 425 received, 15% packet loss, time 1598ms rtt min/avg/max/mdev = 0.253/1.081/1.576/0.414 ms, ipg/ewma 3.203/0.895 ms b) На сервере 192.168.1.112: iperf -s 80 На ноуте: iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180 Вывод netstat: netstat -w1d -I age0: input (age0) output packets errs idrops bytes packets errs bytes colls 3966 0 0 5501336 1086 0 56646 0 4380 0 0 6140036 1100 0 58266 0 4315 0 0 5654698 1089 0 55424 0 3703 0 0 5291538 990 0 54182 0 3548 0 0 4910778 992 0 52292 0 3894 0 0 5399218 1140 0 60770 0 netstat -w1d -I rl0: input (rl0) output packets errs idrops bytes packets errs bytes colls 1085 0 0 65112 4004 0 5680576 0 1053 0 0 63296 4432 0 6289586 0 972 0 0 58508 3668 0 5195190 0 944 0 0 56672 3550 0 5033916 0 1109 0 0 66981 3813 0 5408090 0 1099 0 0 65972 3952 0 5604760 0 top –S: last pid: 2397; load averages: 0.06, 0.05, 0.04 up 0+00:09:13 14:25:50 66 processes: 3 running, 51 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 0.5% system, 3.5% interrupt, 96.1% idle Mem: 14M Active, 9248K Inact, 55M Wired, 92K Cache, 11M Buf, 403M Free Swap: 2048M Total, 2048M Free 4.IPFW KERNEL BINAT a) ping -c 500 -f 192.168.1.112: PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1968ms rtt min/avg/max/mdev = 0.284/1.147/1.568/0.406 ms, ipg/ewma 3.944/1.055 ms b) На сервере 192.168.1.112: iperf -s 80 На ноуте: iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180 Вывод netstat: netstat -w1d -I age0: input (age0) output packets errs idrops bytes packets errs bytes colls 4138 0 0 4716350 1138 0 47682 0 3458 0 0 5812454 862 0 58374 0 4144 0 0 5768360 1143 0 59670 0 4164 0 0 5540888 1132 0 62640 0 3954 0 0 4803024 1195 0 50598 0 netstat -w1d -I rl0: input (rl0) output packets errs idrops bytes packets errs bytes colls 1007 0 0 60492 3609 0 5118682 0 950 0 0 57012 3614 0 5126988 0 1146 0 0 68772 4034 0 5723108 0 1121 0 0 67272 4088 0 5801266 0 1048 0 0 62892 3488 0 4946638 0 top –S: last pid: 4852; load averages: 0.07, 0.03, 0.00 up 0+16:06:15 05:53:04 63 processes: 4 running, 47 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 7.3% system, 6.7% interrupt, 86.0% idle Mem: 15M Active, 142M Inact, 110M Wired, 100K Cache, 59M Buf, 214M Free Swap: 2048M Total, 2048M Free 5.NG_NAT: a) ping -c 500 -f 192.168.1.112: PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 422 received, 15% packet loss, time 1624ms rtt min/avg/max/mdev = 0.254/1.038/8.862/0.551 ms, ipg/ewma 3.255/0.961 ms b) На сервере 192.168.1.112: iperf -s 80 На ноуте: iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180 Вывод netstat: netstat -w1d -I age0: input (age0) output packets errs idrops bytes packets errs bytes colls 4812 0 0 6634038 1268 0 66474 0 4765 0 0 6702092 1234 0 66150 0 4848 0 0 6616932 1263 0 66636 0 4764 0 0 6582868 1237 0 70686 0 4746 0 0 6494680 1403 0 76032 0 netstat -w1d -I rl0: input (rl0) output packets errs idrops bytes packets errs bytes colls 1219 0 0 73170 4680 0 6634886 0 1225 0 0 73512 4720 0 6696960 0 1219 0 0 73170 4655 0 6603440 0 1380 0 0 82812 4630 0 6570166 0 1414 0 0 84864 4585 0 6504178 0 Edited June 8, 2010 by nicol@s Вставить ник Quote
zlolotus Posted May 26, 2011 Posted May 26, 2011 Добрый день! В настоящее время используем pf NAT. Интересуют несколько вопросов: <b>1</b>. Какая технология NAT требует меньше ресурсов системы a) pf NAT b) ipfw kernel NAT c) NG_NAT ? <b>2.</b> BINAT или NAT - что лучше? Я имею ввиду, что быстрее и требует меньше системных ресурсов? Предполагаю, что BINAT быстрее, т.к. нет необходимости хранить стейты. <b>3.</b> PF не разбивается на треды. Читал, что IPFW (в FreeBSD 8.0, например) - разбивается. Однако, в своих тестах я этого не увидел. Может нужно пересобирать ядро с какими-то дополнительными опциями? Для теста я пересобирал ядро с такими опциями: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->options SMP # IPFW options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_DEFAULT_TO_ACCEPT options DUMMYNET options IPFIREWALL_NAT options LIBALIAS options HZ="2000"<!--c2--></div><!--ec2--> <b>4.</b> Не смог найти никакой информации про BINAT в ng_nat. Умеет ли бинатить ng_nat? Может кто-нибудь использовал такую технологию? Или может быть у кого-нибудь есть интересные статьи на эту тему? Для теста использовался следующий комп (border nat): <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->- dmesg | less: FreeBSD 8.0-STABLE-201004 #0: Mon Apr 5 15:59:06 UTC 2010 CPU: Intel® Pentium® 4 CPU 3.20GHz (3200.01-MHz K8-class CPU) real memory = 536870912 (512 MB) age0: mem 0xfeac0000-0xfeafffff irq 17 at device 0.0 on pci2 rl0: port 0xe800-0xe8ff mem 0xfebffc00-0xfebffcff irq 19 at device 0.0 on pci4<!--c2--></div><!--ec2--> Тестовая схема: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->laptop(192.168.0.188)-->age0(192.168.0.1)-->rl0(10.1.2.142)-->internet<!--c2--></div><!--ec2--> age0 - внутренний интерфейс; rl0 - внешний интерфейс; IP-пул для ната: 10.1.6.0/24. Тестировал загрузку и потери следующими утилитами 1. ping -c 500 -f 192.168.1.112 2. iperf -c 192.168.1.112 -n 1M -i 1 -t 180 3. netstat Ниже выкладываю результаты тестов. 1. pf NAT: Здесь в конфиге /etc/pf.conf.ports одно правило для ната: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->nat pass on $ext_if from to any -> 10.1.6.0/24 source-hash test static-port<!--c2--></div><!--ec2--> a). ping -c 500 -f 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1658ms rtt min/avg/max/mdev = 0.239/0.339/5.425/0.262 ms, ipg/ewma 3.323/0.328 ms<!--c2--></div><!--ec2--> b) На сервере 192.168.1.112 запускаю: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -s 80<!--c2--></div><!--ec2--> На ноуте: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180<!--c2--></div><!--ec2--> Вывод netstat: netstat -w1d -I age0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (age0) output packets errs idrops bytes packets errs bytes colls 5247 0 0 7332276 1600 0 83700 0 5286 0 0 7331330 1578 0 82296 0 5278 0 0 7339278 1589 0 83754 0 5312 0 0 7380344 1570 0 82728 0 5328 0 0 7337764 1567 0 83160 0<!--c2--></div><!--ec2--> netstat -w1d -I rl0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (rl0) output packets errs idrops bytes packets errs bytes colls 1556 0 0 93508 5133 0 7275788 0 1547 0 0 92832 5169 0 7337174 0 1551 0 0 93072 5161 0 7321088 0 1539 0 0 92352 5199 0 7381268 0 1520 0 0 91212 5195 0 7367642 0<!--c2--></div><!--ec2--> top –S: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->last pid: 6320; load averages: 0.07, 0.02, 0.00 up 1+18:19:20 10:08:26 70 processes: 3 running, 55 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 1.2% system, 4.7% interrupt, 94.2% idle Mem: 21M Active, 136M Inact, 89M Wired, 44K Cache, 59M Buf, 237M Free Swap: 2048M Total, 2048M Free<!--c2--></div><!--ec2--> 2. pf BINAT: В конфиге /etc/pf.conf.ports порядка 1000 "левых" правил вида: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->... binat on $ext_if from 10.10.10.2 to any -> 10.1.6.13 binat on $ext_if from 10.10.10.3 to any -> 10.1.6.14 ...<!--c2--></div><!--ec2--> И одно актуальное правило для ноута: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->binat on $ext_if from 192.168.0.188 to any -> 10.1.6.188<!--c2--></div><!--ec2--> a) ping -c 500 -f 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1688ms rtt min/avg/max/mdev = 0.238/0.357/1.006/0.078 ms, ipg/ewma 3.383/0.330 ms<!--c2--></div><!--ec2--> b) На сервере 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -s 80<!--c2--></div><!--ec2--> На ноуте: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180<!--c2--></div><!--ec2--> Вывод netstat: netstat -w1d -I age0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (age0) output packets errs idrops bytes packets errs bytes colls 5294 0 0 7318272 1585 0 84996 0 0 0 0 7357824 0 0 83862 0 5314 0 0 7367854 1591 0 83268 0 5302 0 0 7290642 1591 0 83646 0 5270 0 0 7332276 1577 0 85914 0<!--c2--></div><!--ec2--> netstat -w1d -I rl0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (rl0) output packets errs idrops bytes packets errs bytes colls 1586 0 0 95172 5172 0 7341148 0 1567 0 0 94038 5177 0 7344514 0 1537 0 0 92232 5198 0 7373698 0 1565 0 0 93912 5166 0 7328090 0 1561 0 0 93672 5139 0 7301596 0<!--c2--></div><!--ec2--> top –S: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->last pid: 8622; load averages: 0.16, 0.07, 0.01 up 2+13:22:43 05:11:49 61 processes: 3 running, 46 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 4.4% system, 5.1% interrupt, 90.5% idle Mem: 14M Active, 127M Inact, 89M Wired, 59M Buf, 251M Free Swap: 2048M Total, 2048M Free<!--c2--></div><!--ec2--> 3.IPFW KERNEL NAT: a). ping -c 500 -f 192.168.1.5: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 425 received, 15% packet loss, time 1598ms rtt min/avg/max/mdev = 0.253/1.081/1.576/0.414 ms, ipg/ewma 3.203/0.895 ms<!--c2--></div><!--ec2--> b) На сервере 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -s 80<!--c2--></div><!--ec2--> На ноуте: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180<!--c2--></div><!--ec2--> Вывод netstat: netstat -w1d -I age0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (age0) output packets errs idrops bytes packets errs bytes colls 3966 0 0 5501336 1086 0 56646 0 4380 0 0 6140036 1100 0 58266 0 4315 0 0 5654698 1089 0 55424 0 3703 0 0 5291538 990 0 54182 0 3548 0 0 4910778 992 0 52292 0 3894 0 0 5399218 1140 0 60770 0<!--c2--></div><!--ec2--> netstat -w1d -I rl0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (rl0) output packets errs idrops bytes packets errs bytes colls 1085 0 0 65112 4004 0 5680576 0 1053 0 0 63296 4432 0 6289586 0 972 0 0 58508 3668 0 5195190 0 944 0 0 56672 3550 0 5033916 0 1109 0 0 66981 3813 0 5408090 0 1099 0 0 65972 3952 0 5604760 0<!--c2--></div><!--ec2--> top –S: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->last pid: 2397; load averages: 0.06, 0.05, 0.04 up 0+00:09:13 14:25:50 66 processes: 3 running, 51 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 0.5% system, 3.5% interrupt, 96.1% idle Mem: 14M Active, 9248K Inact, 55M Wired, 92K Cache, 11M Buf, 403M Free Swap: 2048M Total, 2048M Free<!--c2--></div><!--ec2--> 4.IPFW KERNEL BINAT a) ping -c 500 -f 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 398 received, 20% packet loss, time 1968ms rtt min/avg/max/mdev = 0.284/1.147/1.568/0.406 ms, ipg/ewma 3.944/1.055 ms<!--c2--></div><!--ec2--> b) На сервере 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -s 80<!--c2--></div><!--ec2--> На ноуте: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180<!--c2--></div><!--ec2--> Вывод netstat: netstat -w1d -I age0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (age0) output packets errs idrops bytes packets errs bytes colls 4138 0 0 4716350 1138 0 47682 0 3458 0 0 5812454 862 0 58374 0 4144 0 0 5768360 1143 0 59670 0 4164 0 0 5540888 1132 0 62640 0 3954 0 0 4803024 1195 0 50598 0<!--c2--></div><!--ec2--> netstat -w1d -I rl0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (rl0) output packets errs idrops bytes packets errs bytes colls 1007 0 0 60492 3609 0 5118682 0 950 0 0 57012 3614 0 5126988 0 1146 0 0 68772 4034 0 5723108 0 1121 0 0 67272 4088 0 5801266 0 1048 0 0 62892 3488 0 4946638 0<!--c2--></div><!--ec2--> top –S: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->last pid: 4852; load averages: 0.07, 0.03, 0.00 up 0+16:06:15 05:53:04 63 processes: 4 running, 47 sleeping, 12 waiting CPU: 0.0% user, 0.0% nice, 7.3% system, 6.7% interrupt, 86.0% idle Mem: 15M Active, 142M Inact, 110M Wired, 100K Cache, 59M Buf, 214M Free Swap: 2048M Total, 2048M Free<!--c2--></div><!--ec2--> 5.NG_NAT: a) ping -c 500 -f 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data. --- 192.168.1.112 ping statistics --- 500 packets transmitted, 422 received, 15% packet loss, time 1624ms rtt min/avg/max/mdev = 0.254/1.038/8.862/0.551 ms, ipg/ewma 3.255/0.961 ms<!--c2--></div><!--ec2--> b) На сервере 192.168.1.112: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -s 80<!--c2--></div><!--ec2--> На ноуте: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->iperf -c 192.168.1.112 -p 80 -n 1M -i 1 -t 180<!--c2--></div><!--ec2--> Вывод netstat: netstat -w1d -I age0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (age0) output packets errs idrops bytes packets errs bytes colls 4812 0 0 6634038 1268 0 66474 0 4765 0 0 6702092 1234 0 66150 0 4848 0 0 6616932 1263 0 66636 0 4764 0 0 6582868 1237 0 70686 0 4746 0 0 6494680 1403 0 76032 0<!--c2--></div><!--ec2--> netstat -w1d -I rl0: <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--> input (rl0) output packets errs idrops bytes packets errs bytes colls 1219 0 0 73170 4680 0 6634886 0 1225 0 0 73512 4720 0 6696960 0 1219 0 0 73170 4655 0 6603440 0 1380 0 0 82812 4630 0 6570166 0 1414 0 0 84864 4585 0 6504178 0<!--c2--></div><!--ec2--> Мой рейтинг идет следующим образом. ipfw nat (kernel) ng nat natd Меньше всего грузит систему именно ipfw nat Вставить ник Quote
2ihi Posted June 6, 2011 Posted June 6, 2011 Мой рейтинг идет следующим образом. ipfw nat (kernel) ng nat natd Меньше всего грузит систему именно ipfw nat ИМХО 1.PF NAT + agressive 2.ipfw NAT 3.NG NAT 4.NATD первый не сказать что в разы, но быстрее. Натит до 800мб\сек на 32 адреса в каждый ИП по /24 сетка завернута оперирует всем 8.2 фряX64 с 2xXeon E5460, он же маршрутизит на 7 интерфейсов в т.ч. инет через lagg о ~800mbps в час пик. binat - это трансляция сети в сеть, т.е. (если мне память не изменяет) тупо меняет скажем 192.168.0.0/24 в 62.15.16.0/24 и обратно. применялось давно в качестве заплатки на кривость рук и как следствие кривость маршрутизации :) Вставить ник Quote
caz Posted June 6, 2011 Posted June 6, 2011 выбор пал на pf, пока доволен nat_10G# pfctl -si No ALTQ support in kernel ALTQ related functions disabled Status: Enabled for 2 days 22:43:50 Debug: Urgent State Table Total Rate current entries 511399 searches 66242645155 260152.6/s inserts 1073620385 4216.4/s removals 1073108986 4214.4/s Counters match 4123564220 16194.3/s bad-offset 0 0.0/s fragment 20071 0.1/s short 3424288 13.4/s normalize 0 0.0/s memory 0 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 1 0.0/s proto-cksum 854072 3.4/s state-mismatch 2175192 8.5/s state-insert 0 0.0/s state-limit 0 0.0/s src-limit 0 0.0/s synproxy 0 0.0/s nat_10G# netstat -w1 input (Total) output packets errs idrops bytes packets errs bytes colls 507927 0 0 417395353 496043 0 417415206 0 504416 0 0 417048566 492349 0 416103187 0 512486 0 0 423252236 500738 0 422240643 0 509881 0 0 420324841 497159 0 418901467 0 509690 0 0 419741694 498244 0 418474526 0 504826 0 0 416572384 492656 0 415470689 0 503184 0 0 417901110 491040 0 416839754 0 513832 0 0 426541917 501968 0 425087011 0 511124 0 0 423056683 498789 0 421899454 0 494034 0 0 406351183 481640 0 406272692 0 493205 0 0 404245612 481932 0 402998981 0 495217 0 0 404396253 483272 0 403166908 0 508016 0 0 411733578 495702 0 410017315 0 nat_10G# ifstat -b ix0 ix1 em0 Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out 1.04e+06 2.25e+06 2.26e+06 1.05e+06 0.00 0.00 1.01e+06 2.09e+06 2.09e+06 1.01e+06 0.00 0.00 992835.3 2.08e+06 2.09e+06 994844.6 0.00 0.00 985792.9 2.22e+06 2.23e+06 983862.9 0.00 0.00 1.03e+06 2.19e+06 2.20e+06 1.03e+06 0.00 0.00 1.07e+06 2.20e+06 2.21e+06 1.07e+06 0.00 0.33 1.02e+06 2.26e+06 2.27e+06 1.02e+06 0.00 0.00 загрузка cpu - 50% при этом почти никакого тюнинга в loader.conf и sysctl. в драйверах сетевухи поправил число прерываний и все.. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.