### 7.1 Interface configuration

When configuring an interface, one normally assigns it an address and a netmask. The address uniquely identifies the host on the network attached to the interface. The netmask, combined with the address, forms a subnet. It is used to add a route to the routing table instructing the kernel to send all packets which fall into that subnet to that interface. Because all packets for the entire VPN should go to the virtual network interface used by tinc, the netmask should be such that it encompasses the entire VPN.

For IPv4 addresses:

Linux | `ifconfig` interface address `netmask` netmask
Linux iproute2 | `ip addr add` address`/`prefixlength `dev` interface
FreeBSD | `ifconfig` interface address `netmask` netmask
OpenBSD | `ifconfig` interface address `netmask` netmask
NetBSD | `ifconfig` interface address `netmask` netmask
Solaris | `ifconfig` interface address `netmask` netmask
Darwin (Mac OS X) | `ifconfig` interface address `netmask` netmask
Windows | `netsh interface ip set address` interface `static` address netmask

For IPv6 addresses:

Linux | `ifconfig` interface `add` address`/`prefixlength
FreeBSD | `ifconfig` interface `inet6` address `prefixlen` prefixlength
OpenBSD | `ifconfig` interface `inet6` address `prefixlen` prefixlength
NetBSD | `ifconfig` interface `inet6` address `prefixlen` prefixlength
Solaris | `ifconfig` interface `inet6 plumb up`
| `ifconfig` interface `inet6 addif` address address
Darwin (Mac OS X) | `ifconfig` interface `inet6` address `prefixlen` prefixlength
Windows | `netsh interface ipv6 add address` interface `static` address/prefixlength

On Linux, it is possible to create a persistent tun/tap interface which will continue to exist even if tinc quit, although this is normally not required. It can be useful to set up a tun/tap interface owned by a non-root user, so tinc can be started without needing any root privileges at all.

Linux | `ip tuntap add dev` interface `mode` tun|tap `user` username