GUT stands for Generic UDP Tunneling that can be used to deploy new transport protocols on the end-host without configuration of firewall and NAT devices. The basic idea of GUT is to encapsulate the native transport protocol and its payload (in general the whole IP payload) within a UDP packet destined to the well-known port GUT_P. Currently this implemenataion is a prototype of GUT, supports UDP ,ICMP ,DCCP and TCP tunneling. Installation is pretty straight forward, just do "make" for compiling. To tunnel traffic between two end-hosts, we need to run GUT service on both hosts and have root access. The following command line options can be used for GUT: -a addr Set TUN Interface IPV4 Address -d port Set GUT_P (deault 4887) -i prefix Set TUN Interface prefix name (default tun) -m mark_id Set iptables OUTGOING chain rule mark id (default 3) -o string Add iptables OUTGOING chain rule match options -r table_id Set TUN routing table id (default 203) -t path Set full path to iptables executable (default /sbin/iptables) Example: 1. Tunnel ICMP Echo Request and Reply traffic between two end-hosts: on the ping side, specify TUN interface IP address with -a option, for example 10.0.0.1, specify tunneling traffic to ICMP Echo Request packet with -o option: gut -a 10.0.0.1 -o “-p icmp --icmp-type 8” on the pong side specify TUN interface IP address, for example 10.0.0.1 gut -a 10.0.0.1 2. Tunnel TCP to port 9999: "-p tcp --dport 9999" 3. Tunnel TCP with TCP option 88: "-p tcp --tcp-option 88" 4. Tunnel DCCP: "-p 33" (may need also "-m dccp")