The extended NAT tests are a collection of tests that require raw sockets or take much more time than the usual NAT tests. To run the test you need:
- A Linux PC with a mobile broadband modem (USB or integrated).
- Python 2, python-scapy and python-netifaces installed
- Agree to run the client as root
Some notes about the client and the measurements:
- The client adds an iptables rule to block the TCP RST messages from the Linux kernel. The rule is removed again after the experiments.
- The complete tests take around 3,5 hours and generate traffic up to 40 MB
- You can limit the duration of the timeout test, which takes by default one hour.
- There is a test that opens 213 UDP and TCP connections, which must be enabled explicitly.
- The result is a JSON file that contains all details from the experiments. A evaluation script will be available soon.
To run the tests, download the client here and unpack it:
$ unzip extended-nattests.zip $ cd extended-nattests
You need to know the interface name of your modem, use
ip a to get it. As mentioned before you can disable or restrict some tests:
Short timeout test without port space exhaustion test
The timeout test takes only 10 minutes now:
$ sudo python client.py -i ppp0 -s 18.104.22.168 --max-timeout 10
Normal timeout test without port space exhaustion test
The timeout test takes 60 minutes by default:
$ sudo python client.py -i ppp0 -s 22.214.171.124
With port space exhaustion test
The port space exhaustion test open 213 UDP and TCP connections.
$ sudo python client.py -i ppp0 -s 126.96.36.199 --enable-port-exhaustion
Submitting the results
After the tests are finished, you get the file
result.json. Please send this file to hertle (at) in.tum.de and also add the name of your ISP. Thank you!