bionic (8) fanctl.8.gz

Provided by: ubuntu-fan_0.12.10_all bug

NAME

       fanctl - fan bridge administration

SYNOPSIS

       fanctl up [<options>...]
       fanctl down [<options>...]
       fanctl up -a
       fanctl down -a
       fanctl down -e
       fanctl show
       fanctl help

DESCRIPTION

       fanctl is used to set up, tear down, and inspect Fan bridge mappings and devices in the linux kernel.

       NOTE:  Future  versions  of the commands will make fanatic the primary interface for interacting with Fan
              networks.  For maximum portability fanctl should only be used if absolutely necessary.

       A network Fan is a mechanism for expanding the range of IP addresses available to a system.  It  is  most
       useful  for  containers  such  as  Docker and LXC/LXD, but it can be used in other contexts as well.  Fan
       works by creating a bridge that uses a mathematical  mapping  between  the  host's  (or  underlay's)  /16
       address and the Fan's (or overlay's) /8 address. By mapping addresses in this way, a 253-fold increase in
       address space can be achieved.  For example, if the host machine  uses  a  subnet  of  172.16.0.0/16  and
       assigns  a  250.0.0.0/8  Fan to an IP address of 172.16.3.4, the hosts's Fan overlay addresses will be in
       the 250.3.4.0/24 subnet, where 250 is derived from the user defined overlay network prefix.

COMMAND SYNTAX

       fanctl up -u <underlay> -o <overlay> [<options>]
              Sets up a new Fan bridge mapping overlay addresses to the corresponding underlay addresses on  the
              local  network.   Using  the  example,  the  new  bridge is named fan-250 based on the overlay and
              underlay addresses specified (see ADDRESSING below).  The options are  described  in  the  OPTIONS
              section below.

       fanctl down -u <underlay> -o <overlay>
              Tears  down  a  previously-configured Fan bridge and associated mapping.  This action will fail if
              the bridge is still in use.

       fanctl up -a
              Sets up all Fans defined in /etc/network/fan if present.

       fanctl down -a
              Tears down all automatically defined Fan bridges on the system.  These may be  identified  in  the
              fanctl show output via the auto flag.

       fanctl down -e
              Tears down all defined Fan bridges on the system.

       fanctl show
              Lists all currently defined Fan bridges in the system; for instance:

              # fanctl show
              Bridge       Underlay        Overlay       Flags
              fan-250      172.16.3.4/16   250.0.0.0/8   dhcp host-reserve 1

       fanctl config set -u <underlay> -o <overlay> [<options>...]
              Sets  configuration  options  for  the  underlay/overlay  combination  specified  (or  clears  any
              individual configuration if no options are specified).
              To add options, the current set of options has to be obtained via fanctl config show and added  to
              the list of new options.

       fanctl config show -u <underlay> -o <overlay>
              Displays any additional configuration options for the underlay/overlay combination specified.

       fanctl config list
              Displays all underlay/overlay combinations which have additional configuration.

       fanctl help [<command>]
              Displays  basic  usage information for fanctl.  When used with a specific command limits output to
              that command.

ADDRESSING

       The Fan mapping is defined by a combination of the underlay and overlay addresses.  Each is defined as  a
       CIDR network address.  For example:

              # fanctl up -u 172.16.3.4/16 -o 250.0.0.0/8

       This example defines an overlay of 250.0.0.0/8 and an underlay of 172.16.3.4/16.  When mapping an address
       in the 250.0.0.0/8 subnet, we take the 16 bits of destination address starting at bit 8 and  replace  the
       bottom  16  bits  of  the  underlay  address with it.  For example, attempting to talk to 250.3.4.15 will
       trigger the packet to be sent to 172.16.3.4 for delivery.

       It is not always possible to know the local underlay address at the time the configuration  is  generated
       (such  as  when  a  common  configuration  is  desired  on all systems).  In this case we can specify the
       underlay address using only the underlay prefix, or by reference to an interface.

       For example, to bring up a Fan bridge slice for each address in the 172.16.0.0/16 subnet,  the  following
       example  examines  each  interface  as it is currently configured and configures a matching slice at that
       time:

              # fanctl up -u 172.16.0.0/16 -o 250.0.0.0/8

       To bring up Fan slices corresponding to the addresses on a  specific  interface  we  can  substitute  the
       interface name:

              # fanctl up -u ens3/16 -o 250.0.0.0/8

       To  bring  up  Fan  slices corresponding to the addresses on the primary network interface (the interface
       with the default route), the keyword default can be substituted:

              # fanctl up -u default/16 -o 250.0.0.0/8

LIMITATIONS

       Currently Fan can only apply overlay addresses with a /8 network mask, and underlay addresses with a  /16
       network mask.  We expect to relax this limitation in a later update.

OPTIONS

       -u <underlay>|--underlay=<underlay>
              Specify the underlay network address and mask.

       -o <overlay>|--overlay=<overlay>
              Specify the overlay network address and mask.

       --type=<type>
              Sets the encapsulation type for this Fan bridge.  May be ipip or vxlan (default) only.  You should
              not normally need to specify this.

       --mode=<mode>
              Sets the bridge mode.  May be compact (default) or sliced only.  In  compact  mode  a  single  Fan
              bridge  per overlay network is created.  In sliced mode a Fan bridge is created for each local Fan
              slice.  sliced mode is considered legacy.  You should not normally need to specify this.

       --dhcp Turns on automatic address allocation for the Fan bridge.  A dnsmasq instance is started  attached
              to the bridge allocating the unreserved addresses to entities attached to the Fan bridge.

       --host-reserve=<count>
              By  default  the .1 address on the Fan bridge is allocated to the host, enabling it to communicate
              with entities on the Fan bridge. This option reserves additional addresses for  host  applications
              to use. A host-reserve 4 reserves .1 through .4 in the Fan bridge for host use.

       --bridge=<name>
              By  default  the  bridge  name  is  based  on  the  overlay  and underlay addresses specified (see
              ADDRESSING above). This option overrides the name to one you specify.

       --enable
              This option marks the Fan bridge to be automatically  configured  when  the  underlying  interface
              comes  up.   This  is primarily used in the local Fan persistent configuration to enable centrally
              configured Fan mappings on a specific host.  (See PERSISTENT CONFIGURATION below).

PERSISTENT CONFIGURATION

       NOTE: The location and content of the configuration files should still be  considered  unstable  as  they
       could  change  in  future.  Use  of fanatic is highly recommended as this command will make any necessary
       changes to the right config files.

       Fan mappings are configured via /etc/network/fan  by  pairs  of  local  (underlay)  and  overlay  network
       addresses.   The  first element of each pair specifies the underlay range which should be mapped into the
       overlay network specified by the second element. For example:

              # RFC1918 - we recommend you use these for easy interop with
              # other FAN users on small private networks. They provide
              # around 250 IP's per 192.168.0.0/16 address, or 16 per
              # 172.16.0.0/12 address.

              # local         overlay
              192.168.0.0/16  250.0.0.0/8
              172.16.0.0/12   251.0.0.0/8

       Comments are introduced via a hash (#), and blank lines are ignored.

       Note, that the local (underlay) range does not need to match the subnet mask of the interface as long  as
       all  addresses  of  the  larger  scope  are  routeable.  If  for  example  the interface is configured as
       192.168.122.2/24 but can reach all 192.168.0.0/16 addresses that will be part of  the  Fan  network,  the
       local (underlay) address of 192.168.0.0/16 can be used regardless.

       It  is  expected that the /etc/network/fan configuration is globally managed ensuring that all hosts have
       consistent overlay to underlay mappings.  Local deviation is managed via the  fanctl  config  subcommand.
       This  allow a local host to record additional flags against a specific overlay/underlay combination.  For
       example:

              # fanctl config set -u 172.16.0.0/16 -o 250.0.0.0/8 --enable

       will set the --enable option to the local host configuration, triggering this Fan to be  configured  when
       the host interface is configured.

FAN BRIDGES

       By  default  each  Fan bridge represents a Fan overlay network which is expressed locally on the machine.
       The Fan bridge will have the various slice addresses mapped to it.

       In legacy sliced mode each Fan bridge represents a slice of a Fan  overlay  network  which  is  expressed
       locally on the machine.  The Fan bridge will have the overlay addresses representing one local IP address
       mapped to it.  A machine may have more than one local address on the underlay  network,  enabling  it  to
       have  more  than  one  such  slice mapped.  It may also have more than one overlay range defined for each
       local IP address.

       Each Fan bridge is a separate broadcast domain,  with  routing  between  the  bridges  both  locally  and
       globally within the Fan.

       Each Fan bridge appears as a bridge on the system, named for the overlay subnet hosted by that particular
       Fan bridge and the underlay address prefix  for  which  it  carries  traffic.   For  our  250.0.0.0/8  on
       172.16.3.4 example, the bridge would be named fan-250 and would carry all traffic for 250.3.4.0/24.

SEE ALSO

       fanatic(8), /usr/share/doc/ubuntu-fan/README

AUTHOR(s)

       Andy Whitcroft <apw@canonical.com>,
       Stefan Bader <stefan.bader@canonical.com>

                                                  July 24, 2017                                        FANCTL(8)