Network Configuration

IPv6

IPv6 is supported since version 8.2, but there are a couple of requirements to use it:

  • IPv6 must be enabled by the kernel at boot time (usually the default).

  • IPv6 must be enabled for all (used) network interfaces plus the loopback interface (usually the default). If that is not the case, change that by modifying the kernel parameters net.ipv6.conf.*.disable_ipv6 = 0 in /etc/sysctl.conf / /etc/sysctl.d/*.

  • Dual stack sockets must be enabled (usually the default). Check that net.ipv6.bindv6only = 0 (e.g. using sysctl or cat /proc/sys/net/ipv6/bindv6only). If that is not that case, change that using sysctl files like above.

If these requirements are met, IPv6 addresses on your network interfaces should be recognized, used and announced to the management according to the rules set (see Configure allowed network interfaces). The rules can also be used to limit reported interfaces to IPv4 only or IPv6 only if required.

Disallow RDMA for specific network interfaces

Use the option connTcpOnlyFilterFile to set the path to a text file that specifies IP subnets that must have RDMA disabled for outgoing communication. Add the option to the configuration file of a server daemon or client, as follows.

connTcpOnlyFilterFile = /etc/beegfs/tcp-only-interfaces.conf

This option works similarly to option connNetFilterFile. You need to add one subnet per line in classless notation (e.g. 192.168.10.0/24 or fd00::1/64).

See also

RDMA Support

Configure allowed network interfaces

There are two different settings that can be used to achieve this:

  • In the config file of each service, there is an option called connNetFilterFile. It can be used to activate IP address range based filtering. This setting will allow outgoing connection attempts of a BeeGFS service only to the set of specified IP addresses, which is useful if a client (or other services) should not try to connect to certain exported interface IPs of another node, e.g., because some of the interface IPs might not be reachable from the current network or are meant for internal use only. This works separately for IPv4 and IPv6.

  • In the config file of each service, there is an option called connInterfacesFile. By specifying a file with a list of interfaces (one per line) here, you can control which interfaces a BeeGFS service registers at the management daemon and in which order they should be tried during connection attempts by other nodes. For instance, if your node has eth0 and eth1, but you only add eth1 to the interfaces file, then the other servers/clients won’t know that there is another interface for that server and hence will not try to connect to other interfaces. Since version 8.2, this supports a backward compatible advanced filter syntax:

    • Interfaces can be filtered by name, address and protocol (IPv4 or IPv6). Each filter entry has the form [!] [<name>|*] [<addr>|*] [<protocol>|*], where protocol can be “4” or “6”. Each field can be set to “*” to match any value. Stars on the right can be omitted.

    • The order of the filter entries determines the priority of the interfaces as they should be used by other nodes for BeeMsg communication. The first entry an interface matches is that interfaces priority - the earlier the match, the higher the priority. Any interface that doesn’t match any entry is not reported and will thus not be contacted by other nodes. A single ! before the entry blacklists the matching interfaces - it is not reported even if a later entry does match it.

    • If not given, all suitable interfaces can be used and are reported in default order.

      EXAMPLES:

      • Prefer IPv6: * * 6, * * 4

      • IPv6 only: * * 6

      • Only the eth0 interface using IPv6: eth0 * 6

      • Prefer one IPv6 address, report only IPv4 otherwise: * fd00::1, * * 4

      • Deny eth0 interface, report everything else: ! eth0, *