Tinc is a newer VPN technology. Unlike with other protocols, it lets you create partial/full mesh VPN connections without having to define every endpoint. A minimum of configuration is needed for each site. 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: causes the Tinc daemon to start as part of the wanup (WAN interface initialization) process.
Interface type: specifies the communication protocol used within your VPN.
Generally, you should choose TUN. For more details, see “Interface Type” on the OpenVPN Server wiki page.
VPN Netmask: here, specify the (sub)netmask to be used for intra-site communications.
Host Name: a unique identifier of the OpenVPN device. This is NOT the device's DHCP/DNS Hostnames.
Poll interval: if set greater than “0”, a watchdog polls whether Tinc is running (not crashed) every n minutes. If it isn't running, it restarts the Tinc service. Settings this to “0” disables the watchdog.
Ed25519 Private Key: the private Ed25519 encryption key.
This is needed for the encryption process.
RSA Private Key: * here, enter the private RSA key.
RSA encryption uses much more CPU power than the Ed25519 protocol.
This key is optional and needed only for communication with hosts using Tinc 1.0 or lower.
Custom: here you can specify any custom Tinc daemon parameters you wish.
Most hosts on your network should be defined on this page. Tinc doesn't need all hosts to be defined. It can use a relay to reach secondary hosts if the end devices can't (yet) communicate. There are various reasons hosts may not be able to communicate. This includes the presence of NAT devices between them.
However, you do need to define “yourself” on each Tinc device.
ConnectTo: this can be set “On” or left blank. It tells Tinc to connect directly to another host (without a relay).
Name: as on the Config tab, this is a unique Tinc identifier defined in the Host Name field.
Address: this is used only for direct communication. It defines the IP/FQDN where the host can be found (without a relay).
Port: if blank, sets the default setting of TCP/UDP(655).
You might need to tune this for network devices without root/Administrator privileges (but not FreshTomato).
Compression: lets you set the compression level (between the default of “0” (disabled) and “11”).
Sometimes, compression can increase VPN speeds. You must configure all nodes with the same setting. Think carefully about whether you need this, as most VPN traffic is already compressed at the application layer. Enabling compression adds extra CPU workload and may not increase throughput.
Subnet: the primary subnet reachable via the host being defined.
This is published to tinc peers so they know which peer hosts the subnet.
Ed25519 Public Key: here, enter your Ed25519 encryption Public Key.
RSA Public Key: * if you're using RSA encryption, you must define each host's public key here.
RSA is optional in Tinc 1.0 and later. You must provide minimal details for all hosts defined before you can click OK and go to the next row. Clicking OK does not save settings. Only after you've defined all hosts, clicked “OK” for each, and clicked “Save” will all host settings be saved.
Custom: in this field, you can define custom settings for each host.
For example, if a host communicates with with another subnet, you could add:
Subnet = 10.10.8.0/24 .
These settings must be consistent with the host IP/subnet + config-page “netmask” setting.