Tinc is a newer VPN technology that allows you to create partial/full mesh VPN connections without having to define every endpoint, as you'd have to with other VPN protocols. A minimum amount of configuration is still needed for each site. However, it's the quickest way to develop a mesh VPN between network sites.
The Tinc Daemon menu is divided into tabbed sections, including Tinc Configuration, and (VPN) Hosts.
Start with WAN: Enabling this will cause the Tinc daemon to start as part of the wanup (WAN interface initialization) process.
Interface type: TUN/TAP: Here, you specify the communication protocol used within your VPN. TUN is routed, and runs at the network (IP) layer. TAP is switched, and runs at the datalink layer. Generally, you should choose TUN. For more information on these protocols, see the “Interface Type” section of the OpenVPN Server wiki page.
VPN Netmask: Here, specify the (sub)netmask to be used for intra-site communications.
Host Name: This is the unique identifier of the OpenVPN device. This is NOT the same as the device's DHCP/DNS Hostnames.
Poll interval: If set greater than zero, a watchdog polls whether Tinc is running every n minutes to verify that it has not crashed. If it finds that Tinc is not running, it will restart the Tinc service. If set to zero, the watchdog is disabled.
Ed25519 Private Key: In this field, enter your private Ed25519 encryption key. This key is needed for the encryption process.
RSA Private Key * : Here, enter your private RSA key. The RSA encryption protocol uses much more CPU power than the Ed25519 protocol. The RSA key is optional and is needed only for communication with hosts using Tinc version 1.0 or lower.
Custom: This field allows you to specify any custom Tinc daemon parameters you might want.
Most of the hosts on your network should be defined on this page. Tinc doesn't need all the hosts to be defined. It's able to use a relay to reach secondary hosts if the end devices are not able to communicate. This can be happen for various reasons, such as the presene of NAT devices between hosts. However, you do need to define “yourself” on each Tinc device.
ConnectTo: This flag and can be set to “On” or left blank. This tells the local Tinc daemon whether it should attempt a direct connection with another host (not including a relayed connection to another host).
Name: As on the Config tab, this is the unique Tinc identifier defined in the Host Name field.
Address: This is used only when direct communication is possible and defines the IP address or FQDN (fully qualified domain name) where the host can be found. Direct communication means without relay.
Port: An empty value configures the default setting (both TCP/UDP on port 655). You might need to tweak this value for devices on the network that do not have root/administrator privileges (not applicable to tomato).
Compression: In some cases, compression may increase VPN speeds. Here, the default of “0” (disabled) can be tweaked to as high as “11”. All the nodes must be configured with the same compresssion settting. Since most VPN traffic is already compressed/encrypted at the application layer, think carefully about whether you really need this enabled. Enabling compression will add extra workload to the CPU, and may not increase speed/throughput.
Subnet: Defines the primary subnet reachable via the host being defined.
Ed25519 Public Key: This is where you enter your Ed25519 encryption Public Key.
RSA Public Key *: If you are using an RSA key, you must define the public key on for each host here. RSA is optional in Tinc 1.0+ .
You must provide the minimum information for every host you define before you can click OK and proceed to the next row. Clicking OK does not save the settings. After you've defined all hosts, and clicked “OK” for each, you must then click the “Save” button at the bottom. Only then will all your host settings be saved.
Custom: In this field, you are free to define custom configuration settings for each host. For example, if a host is communicating with a second subnet, you could add something like: Subnet = 10.10.8.0/24 . Please ensure this is consistent with the host IP/subnet + config-page “netmask” setting.