Hi, i started to test my own router with the test client and server that is used in the latest smallnetbuilder tests.
However i do not own a small router but a slightly bigger one with pfsense running as firmware on it. The ideal router to test the test app. I started with all settings reset to default the only thing i did not do was putting the client in the dmz i recon my router has plenty of cpu to spare not to be bothered by this simple test.
I also had some connections open to monitor the state table and cpu utilization of the router while conducting the test.
I run the test and as expected the maximum number of connections was just below 5000. This makes sense because the default pfsense state table is 10000 making a connection takes 1 state the ack that is send as respose takes 1 state. So on the first test nothing special.
However there are 2 settings i can change about the state table in pfsense. The fisrt is the state table size the second is the state table optimization.
Changing the size to for example 20000 would cause the test to end at slightly below 10000. And so it did when i tryed. Now i tryed to increase it even more to 40000 and expected the test to stop at 20000 but it didn't. And this was the point where i stared to get the idea that there was a loophole in the test.
I started to monitor the size of the state table realtime while starting the test again. And found that after about 25000 states where filled the number would not get any higher. I figured this had to be because the router was dropping states. To prove that this was the case i used the state table optimisation and changed the setting from normal to conservative. This means the router will wait longer before it starts erasing states that are considered old and not used for trafic.
I started the test again and yes this time it stopped just below 20000 again. So i proved this was the issue.
Now vendors of soho routers do not tell you how long they are keeping unused states in the state table. So the one that end high in the test could be faking things just by setting the state table optimisation very agressive.
To make sure this can not be the case you need to do the test a lot faster, for example just send 40000 connections or so as fast as you can and count the number of acks that you recieve. Instead of sending 1 and waiting for the ack. Altough this could create other problems. I will try to figure out a way to conduct the test without having this problem.
Router specs:
P4 @ 3.20Ghz
512mb ram
Wan nic intel E1000
Lan nic intel E1000
Test Server machine:
P4 @ 3.20Ghz
512mb ram
Nic intel E1000
Windows XP sp3
Test Client machine:
c2d E6600 @ 2.4Ghz
4Gb ram
Realtek 8111B
Windows 7 64bit
regards,
Leon Straathof.
However i do not own a small router but a slightly bigger one with pfsense running as firmware on it. The ideal router to test the test app. I started with all settings reset to default the only thing i did not do was putting the client in the dmz i recon my router has plenty of cpu to spare not to be bothered by this simple test.
I also had some connections open to monitor the state table and cpu utilization of the router while conducting the test.
I run the test and as expected the maximum number of connections was just below 5000. This makes sense because the default pfsense state table is 10000 making a connection takes 1 state the ack that is send as respose takes 1 state. So on the first test nothing special.
However there are 2 settings i can change about the state table in pfsense. The fisrt is the state table size the second is the state table optimization.
Changing the size to for example 20000 would cause the test to end at slightly below 10000. And so it did when i tryed. Now i tryed to increase it even more to 40000 and expected the test to stop at 20000 but it didn't. And this was the point where i stared to get the idea that there was a loophole in the test.
I started to monitor the size of the state table realtime while starting the test again. And found that after about 25000 states where filled the number would not get any higher. I figured this had to be because the router was dropping states. To prove that this was the case i used the state table optimisation and changed the setting from normal to conservative. This means the router will wait longer before it starts erasing states that are considered old and not used for trafic.
I started the test again and yes this time it stopped just below 20000 again. So i proved this was the issue.
Now vendors of soho routers do not tell you how long they are keeping unused states in the state table. So the one that end high in the test could be faking things just by setting the state table optimisation very agressive.
To make sure this can not be the case you need to do the test a lot faster, for example just send 40000 connections or so as fast as you can and count the number of acks that you recieve. Instead of sending 1 and waiting for the ack. Altough this could create other problems. I will try to figure out a way to conduct the test without having this problem.
Router specs:
P4 @ 3.20Ghz
512mb ram
Wan nic intel E1000
Lan nic intel E1000
Test Server machine:
P4 @ 3.20Ghz
512mb ram
Nic intel E1000
Windows XP sp3
Test Client machine:
c2d E6600 @ 2.4Ghz
4Gb ram
Realtek 8111B
Windows 7 64bit
regards,
Leon Straathof.
Last edited:
