RINP (RINP Is Not a Proxy) is a feasible DDoS defense solution, which can be seamlessly integrated with existing applications through its overlay-based wrap mechanism and isolated sidecar implementation.
Make sure you Docker, and GNU-Make installed and running on a Linux machine.
You can simply run the init script:
./init.sh
In fact, the script will automatically finish step 1 to step 4 in following:
- Build a base container image which is useful for testing purposes:
cd examples && make && cd -
- Build RINP components using the base container that we just built:
BASE_IMAGE=netutils make container
- Prepar a test user:
cp examples/demo.db examples/pb_data/data.db
. You can also change it inAuth
module. - Start RINP:
cd examples && docker compose up
. Check for any errors. - (In a separate terminal) Run a iperf server to test with:
docker exec -it service iperf3 -s
- (In a separate terminal) Run a iperf client to test:
docker exec -it user iperf3 -c 11.22.33.44
Notice the client used an IP that is virtual (meaning RINP is functioning). If nothing goes wrong, you should see the test going. Feel free to raise an issue if you have questions.
Evaluation is conducted between Bejing, China and Guangzhou, China with a fixed bandwidth of 10Mbps.
We deploy an Authenticator
, 2 proxies, a scheduler, and a database on host machines with 2 cores of AMD EPYC 7K62 and 4 GB RAM in Guangzhou. We deploy some Accessors
in Linux virtual machines in Beijing, each of which has 2 CPUs from a Xeon Silver 4216 CPU. As is known, Beijing and Guangzhou are more than 2100 kilometers apart, which can represent the real network status.
Using TCP:
iperf3-tcp.mp4
Using UDP:
iperf3-udp.mp4
PProf
Latency
Throughput
Jitter