David Fifield ef4d0a1da5 Stop timers before expiration vor 3 Jahren
..
Dockerfile a4f10d9d6e Add Dockerfile and README for deploying probetest vor 4 Jahren
README.md a4f10d9d6e Add Dockerfile and README for deploying probetest vor 4 Jahren
docker-compose.yml a4f10d9d6e Add Dockerfile and README for deploying probetest vor 4 Jahren
probetest.go ef4d0a1da5 Stop timers before expiration vor 3 Jahren

README.md

This is code for a remote probe test component of Snowflake.

Overview

This is a probe test server to allow proxies to test their compatability with Snowflake. Right now the only type of test implemented is a compatability check for clients with symmetric NATs.

Running your own

The server uses TLS by default. There is a --disable-tls option for testing purposes, but you should use TLS in production.

To build the probe server, run go build

To deploy the probe server, first set the necessary env variables with

export HOSTNAMES=${YOUR HOSTNAMES}
export EMAIL=${YOUR EMAIL}

then run docker-compose up

Setting up a symmetric NAT configuration requires a few extra steps. After upping the docker container, run docker inspect snowflake-probetest to find the subnet used by the probetest container. Then run sudo iptables -L -t nat to find the POSTROUTING rules for the subnet. It should look something like this:

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  172.19.0.0/16        anywhere

to modify this rule, execute the command sudo iptables -t nat -R POSTROUTING $RULE_NUM -s 172.19.0.0/16 -j MASQUERADE --random where RULE_NUM is the numbered rule corresponding to your docker container's subnet masquerade rule. Afterwards, you should see the rule changed to be:

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  172.19.0.0/16        anywhere      random