{
    "mode": "man",
    "parameter": "interfaces",
    "section": "5",
    "url": "https://www.chedong.com/phpMan.php/man/interfaces/5/json",
    "generated": "2026-06-02T18:06:52Z",
    "sections": {
        "NAME": {
            "content": "/etc/network/interfaces - network interface configuration for ifup and ifdown\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "/etc/network/interfaces  contains network interface configuration information for the ifup(8)\nand ifdown(8) commands.  This is where you configure how your system is connected to the net‐\nwork.\n",
            "subsections": []
        },
        "EXAMPLE": {
            "content": "The following example configures two network interfaces: eth0 is brought up at boot, and uses\nDHCP for IPv4 and SLAAC for IPv6, whereas eth1 is brought up whenever the network hardware is\ndetected, and is configured with static IPv4 and IPv6 addresses.\n\nauto eth0\nallow-hotplug eth1\n\niface eth0 inet dhcp\n\niface eth0 inet6 auto\n\niface eth1 inet static\naddress 192.168.1.2/24\ngateway 192.168.1.1\n\niface eth1 inet6 static\naddress fec0:0:0:1::2/64\ngateway fec0:0:0:1::1\n",
            "subsections": []
        },
        "FILE FORMAT": {
            "content": "Lines  starting  with `#' are ignored. Note that end-of-line comments are NOT supported, com‐\nments must be on a line of their own.\n\nA line may be extended across multiple lines by making the last character a backslash.\n\nThe file consists of zero or more \"iface\", \"mapping\", \"auto\",  \"allow-\",  \"rename\",  \"source\"\nand  \"source-directory\" stanzas. These will be described in more detail in the following sec‐\ntions.\n",
            "subsections": []
        },
        "INTERFACE SELECTION": {
            "content": "Lines beginning with the word \"auto\" are used to  identify  the  physical  interfaces  to  be\nbrought up when ifup is run with the -a option.  (This option is also used by the system boot\nscripts, so interfaces marked \"auto\" are brought up at boot time.)  Physical interface  names\nshould  follow the word \"auto\" on the same line.  There can be multiple \"auto\" stanzas.  ifup\nbrings the named interfaces up in the order listed.\n\nLines beginning with \"allow-\" are used to identify interfaces that should be brought up auto‐\nmatically  by various subsystems. This may be done using a command such as \"ifup --allow=hot‐\nplug eth0 eth1\", which will only bring up eth0 or eth1 if it is listed in an  \"allow-hotplug\"\nline. Note that \"allow-auto\" and \"auto\" are synonyms.  (Interfaces marked \"allow-hotplug\" are\nbrought up when udev detects them.  This can either be during boot if the  interface  is  al‐\nready  present,  or at a later time, for example when plugging in a USB network card.  Please\nnote that this does not have anything to do with detecting a network cable being plugged in.)\n\nLines beginning with \"no-auto-down\" are used  to  identify  interfaces  that  should  not  be\nbrought  down  by the command \"ifdown -a\". Its main use is to prevent an interface from being\nbrought down during system shutdown time, for example if the root  filesystem  is  a  network\nfilesystem and the interface should stay up until the very end. Note that you can still bring\ndown the interface by specifying the interface name explicitly.\n\nLines beginning with \"no-scripts\" are used  to  identify  interfaces  for  which  scripts  in\n/etc/network/if-*.d/  should  not  be  run  when those interfaces are brought up or down.  he\nabove will match eth0 and eth1, and will bring up  both  interfaces  using  the  \"iface  eth\"\nstanza.\n",
            "subsections": []
        },
        "INTERFACE RENAMING": {
            "content": "Lines  beginning with \"rename\" are used to rename interfaces.  It takes one or more arguments\nin the form of \"CUR=NEW\", where CUR is the name of an existing interface, and NEW is the  new\nname.  This becomes very powerful when combined with pattern matching for the CUR interface.\n\nInterfaces are renamed whenever \"ifup\" is called.  Renaming logically happens before anything\nelse is done.  So if an interface is started with the name \"foo\", and it has to be renamed to\n\"bar\"  and brought up at boot time, then one should use the following /etc/network/interfaces\nfile:\n\nrename foo=bar\nauto bar\niface bar ...\n\nHowever, if the interface is not renamed yet, it is possible to use both \"ifup foo\" and \"ifup\nbar\".  The former command will then automatically be converted to the latter.  This is mainly\nuseful when ifup is called automatically whenever an interface is hotplugged.\n\nInterface renaming only works if the operating system supports it, if an interface is not re‐\nnamed to another existing interface, and may require that the interface that is to be renamed\nhas not been brought up yet.  If ifup tries to rename an interface and it fails, it will exit\nwith an error.\n",
            "subsections": []
        },
        "INCLUDING OTHER FILES": {
            "content": "Lines  beginning with \"source\" are used to include stanzas from other files, so configuration\ncan be split into many files. The word \"source\" is  followed  by  the  path  of  file  to  be\nsourced. Shell wildcards can be used.  (See wordexp(3) for details.)\n\nSimilarly, \"source-directory\" keyword is used to source multiple files at once, without spec‐\nifying them individually or using shell globs. Additionally, when \"source-directory\" is used,\nnames  of  the files are checked to match the following regular expression: ^[a-zA-Z0-9-]+$.\nIn other words, the names must consist entirely of ASCII upper- and lower-case letters, ASCII\ndigits,  ASCII  underscores,  and ASCII minus-hyphens. In the directory path, shell wildcards\nmay be used as well.\n\nWhen sourcing files or directories, if a path doesn't have a leading slash,  it's  considered\nrelative  to the directory containing the file in which the keyword is placed. In the example\nabove, if the file is located at /etc/network/interfaces, paths to the included files are un‐\nderstood to be under /etc/network.\n\nBy  default,  on  a  freshly  installed Debian system, the interfaces file includes a line to\nsource files in the /etc/network/interfaces.d directory.\n",
            "subsections": []
        },
        "MAPPINGS": {
            "content": "Stanzas beginning with the word \"mapping\" are used to determine how a logical interface  name\nis  chosen  for  a  physical interface that is to be brought up.  The first line of a mapping\nstanza consists of the word \"mapping\" followed by a pattern in shell glob syntax.  Each  map‐\nping  stanza must contain a script definition.  The named script is run with the physical in‐\nterface name as its argument and with the contents of all following \"map\" lines (without  the\nleading  \"map\")  in  the stanza provided to it on its standard input. The script must print a\nstring on its standard output before exiting. See /usr/share/doc/ifupdown/examples for  exam‐\nples of what the script must print.\n\nMapping  a  name  consists of searching the remaining mapping patterns and running the script\ncorresponding to the first match; the script outputs  the  name  to  which  the  original  is\nmapped.\n\nifup is normally given a physical interface name as its first non-option argument.  ifup also\nuses this name as the initial logical name for the interface unless it is  accompanied  by  a\nsuffix  of  the form =LOGICAL, in which case ifup chooses LOGICAL as the initial logical name\nfor the interface.  It then maps this name, possibly more than once according  to  successive\nmapping  specifications,   until  no further mappings are possible.  If the resulting name is\nthe name of some defined logical interface then ifup attempts to bring up the physical inter‐\nface as that logical interface.  Otherwise ifup exits with an error.\n",
            "subsections": []
        },
        "INTERFACE DEFINITIONS": {
            "content": "Stanzas defining logical interfaces start with a line consisting of the word \"iface\" followed\nby the name of the logical interface.  In simple configurations without mapping stanzas  this\nname  should simply be the name of the physical interface to which it is to be applied.  (The\ndefault mapping script is, in effect, the echo command.)  The interface name is  followed  by\nthe  name of the address family that the interface uses.  This will be \"inet\" for TCP/IP net‐\nworking, but there is also some support for  IPX  networking  (\"ipx\"),  and  IPv6  networking\n(\"inet6\").  Following that is the name of the method used to configure the interface.\n\nAdditional  options can be given on subsequent lines in the stanza.  Which options are avail‐\nable depends on the family and method, as described below.  Additional options  can  be  made\navailable  by other Debian packages.  For example, the wireless-tools package makes available\na number of options prefixed with \"wireless-\" which can be used to  configure  the  interface\nusing  iwconfig(8).   (See wireless(7) for details.)  A list of packages providing additional\noptions is mentioned in the section \"OPTIONS PROVIDED BY OTHER PACKAGE\".\n\nOptions are usually indented for clarity (as in the example above) but are  not  required  to\nbe.\n\nMultiple  \"iface\"  stanzas can be given for the same interface, in which case all of the con‐\nfigured addresses and options for that interface will be applied when bringing up that inter‐\nface.   This  is  useful to configure both IPv4 and IPv6 addresses on the same interface (al‐\nthough if no inet6 stanza is present, the kernel will normally still  perform  stateless  ad‐\ndress  autoconfiguration  if  there is an IPv6 route advertisement daemon on the network). It\ncan also be used to configure multiple addresses of the same type on a single interface.\n",
            "subsections": []
        },
        "INTERFACE TEMPLATES": {
            "content": "It is possible to define interface definition templates and extend them  using  the  inherits\nkeyword:\n\niface ethernet inet static\nmtu 1500\nhwaddress 11:22:33:44:55:66\n\niface eth0 inet static inherits ethernet\naddress 192.168.1.2/24\n\nThis  may  be  useful to separate link-level settings shared by multiple interfaces from, for\nexample, IP address settings specific to every interface.\n",
            "subsections": []
        },
        "PATTERN MATCHING INTERFACES": {
            "content": "It is possible to use patterns to match one or more real interfaces.  These patterns can cur‐\nrently  appear in lines beginning with \"auto\", \"allow-\", \"rename\" and on the command line.  A\npattern has the following format (see below for exceptions for GNU/Hurd):\n\n[VARIABLE]/VALUE[/[OPTIONS]][=LOGICAL]\n\nIf no VARIABLE is given, this pattern will match interface names  against  the  given  VALUE.\nVALUE  can contain wildcard patterns such as ? and *, see the fnmatch(3) function.  When ifup\nor ifdown is run, patterns are replaces by all real interfaces that are  currently  known  to\nthe  operating  system kernel and whose names match the pattern.  For example, given the fol‐\nlowing line:\n\nauto /eth*\n\nIf the kernel knows about the interfaces with names lo, eth0 and eth1, then the above line is\nthen interpreted as:\n\nauto eth0 eth1\n\nNote that there must still be valid \"iface\" stanzas for each matching interface.  However, it\nis possible to combine a pattern with a mapping to a logical interface, like so:\n\nauto /eth*=eth\niface eth inet dhcp\n\nValid variable names are \"mac\", in which case value is matched against  the  interface's  MAC\naddress.  On Linux, the variable name can also be any filename in /sys/class/net/<iface>/, in\nwhich case the value is matched against the contents of the corresponding file.\n\nThe OPTIONS field currently only supports a number. If given, only the  n-th  interface  that\nhas  a  matching  value will actually be used, where n is the number given, starting at 1. So\n/eth*/1 will match the first interface whose name starts with eth.\n\nOn GNU/Hurd, interface names start with /dev/, and this obviously clashes with the format for\npatterns.   To ensure an interface name like /dev/eth0 does not get interpreted as a pattern,\nany pattern that starts with /dev/ is ignored, and instead interpreted as a literal interface\nname.  To make a pattern that matches interface names on GNU/Hurd, use something like:\n\nauto /?dev?eth*=eth\niface eth inet dhcp\n",
            "subsections": []
        },
        "VLAN INTERFACES": {
            "content": "To  ease  the configuration of VLAN interfaces, interfaces having .  (full stop character) in\nthe name are configured as 802.1q tagged virtual LAN interface. For example, interface eth0.1\nis a virtual interface with VLAN ID 1 having eth0 as its parent interface.\n\nVLAN  interfaces  are mostly treated as independent interfaces.  As such, a VLAN interface is\nnormally not automatically brought up when its parent interface is brought up.  The exception\nis when ifup is called with the --allow option, in which case all VLAN interfaces that are in\nthe same allow class as the parent interface are brought up together with the  parent  inter‐\nface.  For example:\n\nallow-hotplug eth0 eth0.1\n\niface eth0 inet static\naddress ...\n\niface eth0.1 inet static\naddress ...\n\niface eth0.2 inet static\naddress ...\n\nIn  the above example, when \"ifup --allow hotplug eth0\" is called (either manually or because\nudev triggers this when a network device is hotplugged), the interface eth0 and the VLAN  in‐\nterface eth0.1 are brought up, but eth0.2 is not.\n\nKeep  in  mind that pattern matching will only match interfaces the kernel knows about, so it\nis not possible to specify \"auto /eth0.*\" and have all VLAN interfaces for eth0 be brought up\nat  boot  time.  Another way to ensure that a VLAN interface is brought up automatically when\nthe parent interface is brought up, is to use a recursive call to ifup, like so:\n\niface eth0 inet manual\nup ifup eth0.3\n\niface eth0.3 inet static\naddress ...\n\nNote that there is no need to add an explicit call to ifdown, since VLAN interfaces are auto‐\nmatically brought down whenever their parent interfaces are brought down.\n",
            "subsections": []
        },
        "IFACE OPTIONS": {
            "content": "The following \"command\" options are available for every family and method.  Each of these op‐\ntions can be given multiple times in a single stanza, in which case the commands are executed\nin  the  order  in which they appear in the stanza.  (You can ensure a command never fails by\nsuffixing them with \"|| true\".)\n\npre-up command\nRun command before bringing the interface up.  If this command fails then ifup aborts,\nrefraining  from marking the interface as configured, prints an error message, and ex‐\nits with status 0.  This behavior may change in the future.\n\nup command\n\npost-up command\nRun command after bringing the interface up.  If this command fails then ifup  aborts,\nrefraining  from  marking  the interface as configured (even though it has really been\nconfigured), prints an error message, and exits with  status  0.   This  behavior  may\nchange in the future.\n\ndown command\n\npre-down command\nRun  command  before  taking  the  interface  down.  If this command fails then ifdown\naborts, marks the interface as deconfigured (even though it has not really been decon‐\nfigured), and exits with status 0.  This behavior may change in the future.\n\npost-down command\nRun  command  after  taking  the  interface  down.   If this command fails then ifdown\naborts, marks the interface as deconfigured, and exits with status 0.   This  behavior\nmay change in the future.\n\ndescription name\nAlias interface by name\n",
            "subsections": []
        },
        "HOOK SCRIPTS": {
            "content": "There  are  four  directories in which scripts can be placed which will always be run for any\ninterface during certain phases of ifup and ifdown commands. These are:\n\n/etc/network/if-pre-up.d/\nScripts in this directory are run before bringing the interface up.\n\n/etc/network/if-up.d/\nScripts in this directory are run after bringing the interface up.\n\n/etc/network/if-down.d/\nScripts in this directory are run before bringing the interface down.\n\n/etc/network/if-post-down.d/\nScripts in this directory are run after bringing the interface down.\n\nThe scripts in which are run (with no arguments) using run-parts(8) after  the  corresponding\npre-up,  up,  down and post-down options in the /etc/network/interfaces file itself have been\nprocessed. Please note that as post-up and pre-down are aliases, no files in the  correspond‐\ning directories are processed.  Please use if-up.d and if-down.d directories instead.\n",
            "subsections": []
        },
        "ENVIRONMENT VARIABLES": {
            "content": "All  hook scripts, and the commands executed by pre-up, up, post-up, pre-down, down and post-\ndown have access to the following environment variables:\n\nIFACE  The physical name of the interface being processed, or \"--all\" (see below).\n\nLOGICAL\nThe logical name of the interface being processed, or \"auto\" (see below).\n\nADDRFAM\nThe address family of the interface, or \"meta\" (see below).\n\nMETHOD The method of the interface (e.g., static), or \"none\" (see below).\n\nCLASS  The class of interfaces being processed.  This is a copy of the  value  given  to  the\n--allow  option  when  running  ifup or ifdown, otherwise it is set to \"auto\" when the\n--all option is used.\n\nCLASS  The class of interfaces being processed.  This is a copy of the  value  given  to  the\n--allow  option  when  running  ifup or ifdown, otherwise it is set to \"auto\" when the\n--all option is used.\n\nMODE   start if run from ifup, stop if run from ifdown.\n\nPHASE  As per MODE, but with finer granularity, distinguishing the pre-up, post-up,  pre-down\nand post-down phases.\n\nVERBOSITY\nIndicates whether --verbose was used; set to 1 if so, 0 if not.\n\nPATH   The command search path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n\nAdditionally,  all  options given in an interface definition stanza are exported to the envi‐\nronment in upper case with \"IF\" prepended and with  hyphens  converted  to  underscores  and\nnon-alphanumeric characters discarded.\n\nWhen  ifupdown is being called with the --all option, before doing anything to interfaces, it\ncalls all the hook scripts (pre-up or down) with IFACE set to \"--all\",  LOGICAL  set  to  the\ncurrent  value  of  --allow  parameter  (or  \"auto\"  if  it's  not  set),  ADDRFAM=\"meta\" and\nMETHOD=\"none\".  After all the interfaces have been brought up or taken down, the  appropriate\nscripts (up or post-down) are executed.\n",
            "subsections": []
        },
        "CONCURRENCY AND PARALLEL EXECUTION": {
            "content": "Ifupdown  uses  per-interface  locking to ensure that concurrent ifup and ifdown calls to the\nsame interface are run in serial.  However, calls to different interfaces will be able to run\nin  parallel.  It is therefore important that any hook scripts and pre-up, up, down and post-\ndown commands are written with the possibility of parallel execution in mind.\n\nIt is allowed to recursively call ifup and ifdown from hook scripts and  interface  commands,\nas  long  as  these  calls  refer to a different interface than the one that is already being\n(de)configured.  Loops are detected and will result in the call failing instead  of  a  dead‐\nlock, although it is best if one does not rely on that.\n",
            "subsections": []
        },
        "OPTIONS PROVIDED BY OTHER PACKAGES": {
            "content": "This  manual page documents the configuration options provided by the ifupdown package.  How‐\never, other packages can make other options available  for  use  in  /etc/network/interfaces.\nHere is a list of packages that provide such extensions:\n\narping,  avahi-autoipd,  avahi-daemon,  bind9,  bridge-utils,  clamav-freshclam, controlaula,\nepoptes-client, ethtool, guidedog, hostap-utils, hostapd, htpdate, ifenslave, ifmetric, ifup‐\ndown-extra, ifupdown-multi, ifupdown-scripts-zg2, initscripts, isatapd, linux-wlan-ng, lprng,\nmacchanger, miredo, nslcd, ntpdate,  openntpd,  openresolv,  openssh-server,  openvpn,  open‐\nvswitch-switch,  postfix,  resolvconf,  sendmail-base,  shorewall-init, slrn, slrnpull, tinc,\nucarp, uml-utilities, uruk, vde2, vlan, vzctl, whereami, wide-dhcpv6-client,  wireless-tools,\nwpasupplicant.\n\nPlease  consult  the  documentation  of  those packages for information about how they extend\nifupdown.\n",
            "subsections": []
        },
        "INET ADDRESS FAMILY": {
            "content": "This section documents the methods available in the inet address family.\n",
            "subsections": [
                {
                    "name": "The loopback Method",
                    "content": "This method may be used to define the IPv4 loopback interface.\n"
                },
                {
                    "name": "Options",
                    "content": "(No options)\n"
                },
                {
                    "name": "The static Method",
                    "content": "This method may be used to define Ethernet interfaces  with  statically  allocated  IPv4  ad‐\ndresses.\n"
                },
                {
                    "name": "Options",
                    "content": "address address\nAddress (dotted quad/netmask) required\n\nnetmask mask\nNetmask (dotted quad or number of bits) deprecated\n\nbroadcast broadcastaddress\nBroadcast address (dotted quad, + or -) deprecated. Default value: \"+\"\n\nmetric metric\nRouting metric for default gateway (integer)\n\ngateway address\nDefault gateway (dotted quad)\n\npointopoint address\nAddress of other end point (dotted quad). Note the spelling of \"point-to\".\n\nhwaddress address\nLink local address or \"random\".\n\nmtu size\nMTU size\n\nscope  Address validity scope. Possible values: global, link, host\n"
                },
                {
                    "name": "The manual Method",
                    "content": "This  method  may be used to define interfaces for which no configuration is done by default.\nSuch interfaces can be configured manually by means of up  and  down  commands  or  /etc/net‐\nwork/if-*.d scripts.\n"
                },
                {
                    "name": "Options",
                    "content": "hwaddress address\nLink local address or \"random\".\n\nmtu size\nMTU size\n"
                },
                {
                    "name": "The dhcp Method",
                    "content": "This  method may be used to obtain an address via DHCP with any of the tools: dhclient, pump,\nudhcpc, dhcpcd. (They have been listed in their order of precedence.) If you have  a  compli‐\ncated DHCP setup you should note that some of these clients use their own configuration files\nand do not obtain their configuration information via ifup.\n"
                },
                {
                    "name": "Options",
                    "content": "hostname hostname\nHostname to be requested (pump, dhcpcd, udhcpc)\n\nmetric metric\nMetric for added routes (dhclient)\n\nleasehours leasehours\nPreferred lease time in hours (pump)\n\nleasetime leasetime\nPreferred lease time in seconds (dhcpcd)\n\nvendor vendorid\nVendor class identifier (dhcpcd)\n\nclient clientid\nClient identifier (dhcpcd), or \"no\" (dhclient)\n\nhwaddress address\nHardware address.\n"
                },
                {
                    "name": "The bootp Method",
                    "content": "This method may be used to obtain an address via bootp.\n"
                },
                {
                    "name": "Options",
                    "content": "bootfile file\nTell the server to use file as the bootfile.\n\nserver address\nUse the IP address address to communicate with the server.\n\nhwaddr addr\nUse addr as the hardware address instead of whatever it really is.\n"
                },
                {
                    "name": "The tunnel Method",
                    "content": "This method is used to create GRE or IPIP tunnels. You need to have the ip  binary  from  the\niproute package. For GRE tunnels, you will need to load the ipgre module and the ipip module\nfor IPIP tunnels.\n"
                },
                {
                    "name": "Options",
                    "content": "address address\nLocal address (dotted quad) required\n\nmode type\nTunnel type (either GRE or IPIP) required\n\nendpoint address\nAddress of other tunnel endpoint required\n\ndstaddr address\nRemote address (remote address inside tunnel)\n\nlocal address\nAddress of the local endpoint\n\nmetric metric\nRouting metric for default gateway (integer)\n\ngateway address\nDefault gateway\n\nttl time\nTTL setting\n\nmtu size\nMTU size\n"
                },
                {
                    "name": "The ppp Method",
                    "content": "This method uses pon/poff to configure a PPP interface. See those commands for details.\n"
                },
                {
                    "name": "Options",
                    "content": "provider name\nUse name as the provider (from /etc/ppp/peers).\n\nunit number\nUse number as the ppp unit number.\n\noptions string\nPass string as additional options to pon.\n"
                },
                {
                    "name": "The wvdial Method",
                    "content": "This method uses wvdial to configure a PPP interface. See that command for more details.\n"
                },
                {
                    "name": "Options",
                    "content": "provider name\nUse name as the provider (from /etc/wvdial.conf).\n"
                },
                {
                    "name": "The ipv4ll Method",
                    "content": "This method uses avahi-autoipd to configure an interface  with  an  IPv4  Link-Layer  address\n(169.254.0.0/16  family).  This method is also known as APIPA or IPAC, and often colloquially\nreferred to as \"Zeroconf address\".\n"
                },
                {
                    "name": "Options",
                    "content": "(No options)\n"
                }
            ]
        },
        "IPX ADDRESS FAMILY": {
            "content": "This section documents the methods available in the ipx address family.\n",
            "subsections": [
                {
                    "name": "The static Method",
                    "content": "This method may be used to setup an IPX interface. It requires the ipxinterface command.\n"
                },
                {
                    "name": "Options",
                    "content": "frame type\ntype of Ethernet frames to use (e.g. 802.2)\n\nnetnum id\nNetwork number\n"
                },
                {
                    "name": "The dynamic Method",
                    "content": "This method may be used to setup an IPX interface dynamically.\n"
                },
                {
                    "name": "Options",
                    "content": "frame type\ntype of Ethernet frames to use (e.g. 802.2)\n"
                }
            ]
        },
        "INET6 ADDRESS FAMILY": {
            "content": "This section documents the methods available in the inet6 address family.\n",
            "subsections": [
                {
                    "name": "The auto Method",
                    "content": "This method may be used to define interfaces with automatically assigned IPv6 addresses.  Us‐\ning this method on its own doesn't mean that RDNSS options will be applied, too. To make this\nhappen, rdnssd daemon must be installed, properly configured and running. If stateless DHCPv6\nsupport  is  turned  on, then additional network configuration parameters such as DNS and NTP\nservers will be retrieved from a DHCP server. Please note that on ifdown, the  lease  is  not\ncurrently released (a known bug).\n"
                },
                {
                    "name": "Options",
                    "content": "privext int\nPrivacy extensions (RFC4941) (0=off, 1=assign, 2=prefer)\n\nacceptra int\nAccept router advertisements (0=off, 1=on, 2=on+forwarding). Default value: \"2\"\n\ndhcp int\nUse stateless DHCPv6 (0=off, 1=on)\n\nrequestprefix int\nRequest a prefix through DHCPv6 Prefix Delegation (0=off, 1=on). Default value:\n\"0\"\n\nll-attempts\nNumber of attempts to wait for a link-local address. Default value: \"60\"\n\nll-interval\nLink-local address polling interval in seconds. Default value: \"0.1\"\n"
                },
                {
                    "name": "The loopback Method",
                    "content": "This method may be used to define the IPv6 loopback interface.\n"
                },
                {
                    "name": "Options",
                    "content": "(No options)\n"
                },
                {
                    "name": "The static Method",
                    "content": "This method may be used to define interfaces with statically assigned IPv6 addresses. By  de‐\nfault, stateless autoconfiguration is disabled for this interface.\n"
                },
                {
                    "name": "Options",
                    "content": "address address\nAddress (colon delimited/netmask) required\n\nnetmask mask\nNetmask (number of bits, eg 64) deprecated\n\nmetric metric\nRouting metric for default gateway (integer)\n\ngateway address\nDefault gateway (colon delimited)\n\nmedia type\nMedium type, driver dependent\n\nhwaddress address\nHardware address or \"random\"\n\nmtu size\nMTU size\n\nacceptra int\nAccept router advertisements (0=off, 1=on, 2=on+forwarding)\n\nautoconf int\nPerform stateless autoconfiguration (0=off, 1=on). Default value: \"0\"\n\nprivext int\nPrivacy extensions (RFC3041) (0=off, 1=assign, 2=prefer)\n\nscope  Address validity scope. Possible values: global, site, link, host\n\npreferred-lifetime int\nTime that address remains preferred\n\ndad-attempts\nNumber of attempts to settle DAD (0 to disable DAD). Default value: \"60\"\n\ndad-interval\nDAD state polling interval in seconds. Default value: \"0.1\"\n"
                },
                {
                    "name": "The manual Method",
                    "content": "This  method  may be used to define interfaces for which no configuration is done by default.\nSuch interfaces can be configured manually by means of up  and  down  commands  or  /etc/net‐\nwork/if-*.d scripts.\n"
                },
                {
                    "name": "Options",
                    "content": "hwaddress address\nHardware address or \"random\"\n\nmtu size\nMTU size\n"
                },
                {
                    "name": "The dhcp Method",
                    "content": "This  method  may  be used to obtain network interface configuration via stateful DHCPv6 with\ndhclient. In stateful DHCPv6, the DHCP server  is  responsible  for  assigning  addresses  to\nclients.\n"
                },
                {
                    "name": "Options",
                    "content": "hwaddress address\nHardware address or \"random\"\n\nacceptra int\nAccept router advertisements (0=off, 1=on, 2=on+forwarding). Default value: \"1\"\n\nautoconf int\nPerform stateless autoconfiguration (0=off, 1=on)\n\nrequestprefix int\nRequest a prefix through DHCPv6 Prefix Delegation (0=off, 1=on). Default value:\n\"0\"\n\nll-attempts\nNumber of attempts to wait for a link-local address. Default value: \"60\"\n\nll-interval\nLink-local address polling interval in seconds. Default value: \"0.1\"\n"
                },
                {
                    "name": "The v4tunnel Method",
                    "content": "This method may be used to setup an IPv6-over-IPv4 tunnel. It requires the  ip  command  from\nthe iproute package.\n"
                },
                {
                    "name": "Options",
                    "content": "address address\nAddress (colon delimited/netmask) required\n\nnetmask mask\nNetmask (number of bits, eg 64) deprecated\n\nendpoint address\nAddress of other tunnel endpoint (IPv4 dotted quad) required\n\nlocal address\nAddress of the local endpoint (IPv4 dotted quad)\n\nmetric metric\nRouting metric for default gateway (integer)\n\ngateway address\nDefault gateway (colon delimited)\n\nttl time\nTTL setting\n\nmtu size\nMTU size\n\npreferred-lifetime int\nTime that address remains preferred\n"
                },
                {
                    "name": "The 6to4 Method",
                    "content": "This  method  may be used to setup a 6to4 tunnel. It requires the ip command from the iproute\npackage.\n"
                },
                {
                    "name": "Options",
                    "content": "local address\nAddress of the local endpoint (IPv4 dotted quad) required\n\nmetric metric\nRouting metric for default gateway (integer)\n\nttl time\nTTL setting\n\nmtu size\nMTU size\n\npreferred-lifetime int\nTime that address remains preferred\n"
                }
            ]
        },
        "CAN ADDRESS FAMILY": {
            "content": "This section documents the methods available in the can address family.\n",
            "subsections": [
                {
                    "name": "The static Method",
                    "content": "This method may be used to setup a Controller Area Network (CAN) interface. It  requires  the\nthe ip command from the iproute package.\n"
                },
                {
                    "name": "Options",
                    "content": "bitrate bitrate\nbitrate (1..1000000) required\n\nsamplepoint samplepoint\nsample point (0.000..0.999)\n\nloopback loopback\nloop back CAN Messages (on|off)\n\nlistenonly listenonly\nlisten only mode (on|off)\n\ntriple triple\nactivate triple sampling (on|off)\n\noneshot oneshot\none shot mode (on|off)\n\nberr berr\nactivate berr reporting (on|off)\n"
                }
            ]
        },
        "KNOWN BUGS/LIMITATIONS": {
            "content": "The ifup and ifdown programs work with so-called \"physical\" interface names.  These names are\nassigned to hardware by the kernel.  Unfortunately it can happen that the kernel assigns dif‐\nferent  physical  interface  names to the same hardware at different times; for example, what\nwas called \"eth0\" last time you booted is now called \"eth1\" and vice versa.  This  creates  a\nproblem if you want to configure the interfaces appropriately.  A way to deal with this prob‐\nlem is to use mapping scripts that choose logical interface names according to the properties\nof  the  interface hardware.  See the get-mac-address.sh script in the examples directory for\nan example of such a mapping script.  See also Debian bug #101728.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "The ifupdown suite was written by Anthony Towns <aj@azure.humbug.org.au>.  This  manpage  was\ncontributed by Joey Hess <joey@kitenet.net>.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ifup(8), ip(8), ifconfig(8), run-parts(8), resolvconf(8).\n\nFor  advice  on configuring this package read the Network Configuration chapter of the Debian\nReference    manual,     available     at     http://www.debian.org/doc/manuals/debian-refer‐\nence/ch05.en.html or in the debian-reference-en package.\n\nExamples  of  how  to set up interfaces can be found in /usr/share/doc/ifupdown/examples/net‐‐\nwork-interfaces.gz.\n\n\n\nifupdown                                    24 July 2017                               INTERFACES(5)",
            "subsections": []
        }
    },
    "summary": "/etc/network/interfaces - network interface configuration for ifup and ifdown",
    "flags": [],
    "examples": [
        "The following example configures two network interfaces: eth0 is brought up at boot, and uses",
        "DHCP for IPv4 and SLAAC for IPv6, whereas eth1 is brought up whenever the network hardware is",
        "detected, and is configured with static IPv4 and IPv6 addresses.",
        "auto eth0",
        "allow-hotplug eth1",
        "iface eth0 inet dhcp",
        "iface eth0 inet6 auto",
        "iface eth1 inet static",
        "address 192.168.1.2/24",
        "gateway 192.168.1.1",
        "iface eth1 inet6 static",
        "address fec0:0:0:1::2/64",
        "gateway fec0:0:0:1::1"
    ],
    "see_also": [
        {
            "name": "ifup",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/ifup/8/json"
        },
        {
            "name": "ip",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/ip/8/json"
        },
        {
            "name": "ifconfig",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/ifconfig/8/json"
        },
        {
            "name": "run-parts",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/run-parts/8/json"
        },
        {
            "name": "resolvconf",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/resolvconf/8/json"
        }
    ]
}