Tutorial: Voxility GRE tunneling from your TcpGuard Network DDoS Filtered VPS/DVS IP
What is a Voxility GRE tunnel?
Much like a proxy, a Voxility GRE tunnel allows you to pass traffic from your TcpGuard Network VPS including DDoS filtering to another remote destination.
Voxility GRE tunnels allow all traffic through, not just HTTP. With a Voxility GRE tunnel you can serve, and deliver any type of content from any type of server (audio, FTP, SSH, SCP, video, etc.).
What can your use a Voxility GRE tunnel for?
Voxility GRE tunneling is very handy when you want to use our DDoS filtering services to protect services that are too large to host with us (I.e. game servers, Java applications, large database driven applications, etc.).
Don’t have root access for your destination server or are running a huge Windows deployment? Check out our alternative method to redirect traffic to your remote server.
Note: If you are tunneling to an OVH server, you most likely don’t have GRE support in your kernel. You’ll need to use a IPIP tunnel instead.
Voxility GRE Tunnel How-to Tutorial Begins Here
Our how-to tutorial to setup a Voxility GRE tunnel between TcpGuard Network DDoS filtered VPS IP and your remote server starts here.
Following the simple instructions below you should be able to create a Voxility GRE tunnel in under 20 minutes.
SUPPORTED OPERATING SYSTEMS
It is possible to use Windows to create, and forward your Voxility GRE tunnel. If you need to protect a Windows server please consider purchasing a KVM plan.
In this document we’ll only be covering a Linux Voxility GRE tunnel configuration.
First we need to set our tunnel up.
On your TCPGuard Network VPS please execute the following commands:
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p iptunnel add gre1 mode gre local YOUR_UNFILTERED_IP remote DESTINATION_SERVER_IP ttl 255 ip addr add 192.168.168.1/30 dev gre1 ip link set gre1 up
On the remote server you wish to protect run the following:
iptunnel add gre1 mode gre local DESTINATION_SERVER_IP remote YOUR_UNFILTERED_IP ttl 255 ip addr add 192.168.168.2/30 dev gre1 ip link set gre1 up
You will always want to form your GRE with your unfiltered IP address for all Voxility GRE tunnels to make sure you don’t run into any sort of MTU issues or trigger the DDOS protection.
Please note the first line of each changes to mark what IP to use locally and which remotely. The 2nd line documents each end point. In a /30, 2 IP’s are usable: .1 and .2.
TEST YOUR NEW VOXILITY GRE TUNNEL WITH PING
On your TCPGuard Network VPS, you should now be able to ping
For the sake of completeness, test pinging
192.168.168.1 from your destination server.
SETUP SOURCE ROUTE TABLES
Source route entries are required to make sure data that came in via the Voxility GRE tunnel is sent back out the Voxility GRE tunnel.
Please execute the following commands on the destination server.
echo '100 TCPGVM' >> /etc/iproute2/rt_tables ip rule add from 192.168.168.0/30 table tcpg ip route add default via 192.168.168.1 table tcpg
Please note that the echo command only needs to be ran once. The entry will be saved into /etc/iproute2/rt_tables until you remove it manually.
INITIAL NAT ENTRIES TO MOVE DATA OVER VOXILITY GRE TUNNEL
NAT is used to pass data over our GRE and out the other end.
While it would be possible to use a KVM based VPS with a purchased /29 allocation, this guide doesn’t cover that.
On your TCPGuard Network VPS run the following command:
iptables -t nat -A POSTROUTING -s 192.168.168.0/30 ! -o gre+ -j SNAT --to-source YOUR_FILTERED_IP
TEST OUTBOUND CONNECTIONS
On your destination server you can run either of the following commands to see if the tunnel is passing traffic properly:
curl http://www.cpanel.net/showip.cgi --interface 192.168.168.2 wget http://www.cpanel.net/showip.cgi --bind-address=192.168.168.2 -q -O -
The IP dumped should be your TCPGuard Network filtered IP.
FORWARDING PORTS OVER YOUR GRE TUNNEL
To make things easier, we’ll forward all ports to the backend server.
Run the following commands on your TCPGuard Network VPS:
iptables -t nat -A PREROUTING -d YOUR_FILTERED_IP -j DNAT --to-destination 192.168.168.2 iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
If you’re wanting to get more specific, you could add:
-p tcp --dport 25565
If you just wanted to protect a minecraft server for instance.
The first rule sets up the actual port forwarding and the second rule makes sure that connections get NAT’d, and matched back properly.
At this point you should be able to connect to
YOUR_FILTERED_IP and the destination port with your application and get passed through the Voxility GRE tunnel without issue.
RESTARTING YOUR VOXILITY GRE TUNNEL AFTER REBOOTING
You can edit
with your favourite editor of choice (or WINSCP even) and place all the commands we just ran before the
at the bottom.
Your distribution of choice (like Debian) may have hooks in
to bring your Voxility GRE tunnels up at boot time but that’s outside the scope of this guide.