content: # CoreRAD reference configuration file
  #
  # Many of these settings are not necessary for typical home LAN use. See the
  # intro guide on the website to get started with a minimal configuration:
  # https://corerad.net/intro/.
  #
  # A minimal default configuration can also be generated by running:
  # $ corerad -init
  # wrote minimal configuration file for CoreRAD v1.0.0 (2022-01-31) to "/home/corerad/corerad.toml"
  #
  # Options which correspond to Router Configuration Variables in RFC 4861 are
  # noted by their name in the corresponding documentation comment. For example,
  # see "AdvSendAdvertisements". See also:
  # https://datatracker.ietf.org/doc/html/rfc4861#section-6.2.1.
  #
  # All duration values are specified in Go time.ParseDuration format:
  # https://golang.org/pkg/time/#ParseDuration.
  
  # Interfaces which will be used to serve IPv6 NDP router advertisements.
  [[interfaces]]
  # Interfaces can be configured individually via "name" or as a group via
  # "names". These keys are mutually exclusive.
  name = "eth0"
  # names = ["eth0", "eth1"]
  
  # Indicates whether or not this interface will be used exclusively for
  # monitoring incoming NDP traffic. monitor provides limited functionality in
  # comparison to advertise and is mostly useful for verifying the status and
  # health of upstream network links where it would not be appropriate to send
  # router advertisements.
  #
  # This option is mutually exclusive with advertise, and both must not be set to
  # true on the same interface.
  monitor = false
  
  # AdvSendAdvertisements: indicates whether or not this interface will send
  # periodic router advertisements and respond to router solicitations.
  #
  # Must be set to true to enable serving on this interface. This option is
  # mutually exclusive with monitor, and both must not be set to true on the same
  # interface.
  advertise = false
  
  #
  # All other interface parameters in this section can be removed to simplify
  # configuration by using recommended default values.
  #
  
  # Indicates whether or not this interface will have verbose logging mode
  # enabled. By default, CoreRAD prefers to use metrics to communicate non-error
  # conditions, while errors are communicated with both metrics and logs. Setting
  # this to true will enable more informational logging output.
  verbose = false
  
  # MaxRtrAdvInterval: the maximum time between sending unsolicited multicast
  # router advertisements. Must be between 4 and 1800 seconds.
  max_interval = "600s"
  
  # MinRtrAdvInterval: the minimum time between sending unsolicited multicast
  # router advertisements. Must be between 3 and (.75 * max_interval) seconds. An
  # empty string or the value "auto" will compute an optimal default.
  min_interval = "auto"
  
  # AdvManagedFlag: indicates if hosts should request address configuration from a
  # DHCPv6 server.
  managed = false
  
  # AdvOtherConfigFlag: indicates if additional configuration options are
  # available from a DHCPv6 server.
  other_config = false
  
  # AdvReachableTime: indicates how long a node should treat a neighbor as
  # reachable. 0 or empty string mean this value is unspecified by this router.
  reachable_time = "0s"
  
  # AdvRetransTimer: indicates how long a node should wait before retransmitting
  # neighbor solicitations. 0 or empty string mean this value is unspecified by
  # this router.
  retransmit_timer = "0s"
  
  # AdvCurHopLimit: indicates the value that should be placed in the Hop Limit
  # field in the IPv6 header. Must be between 0 and 255. 0 means this value is
  # unspecified by this router.
  hop_limit = 64
  
  # AdvDefaultLifetime: the value sent in the router lifetime field. Must be 0 or
  # between max_interval and 9000 seconds. An empty string is treated as 0, or the
  # value "auto" will compute an optimal default.
  default_lifetime = "auto"
  
  # AdvLinkMTU: attaches a NDP MTU option to the router advertisement, so clients
  # can set their link MTU as recommended by the router. 0 means this value is
  # unspecified by this router.
  mtu = 0
  
  # AdvSourceLLAddress: attaches a NDP source link-layer address option to the
  # router advertisement. Defaults to true when omitted.
  source_lla = true
  
  # Attaches a NDP captive portal option to the router advertisement. Only set
  # when a URI value is present and not an empty string.
  captive_portal = ""
  
  # Indicates whether or not CoreRAD will issue multicast router advertisements.
  # In this mode, machines on this interface's LAN must issue individual router
  # solicitations in order to receive router advertisements.
  unicast_only = false
  
  # Indicates the preference of this router over other default routers. Only the
  # values "low", "medium", and "high" are allowed. An empty string is treated as
  # "medium".
  preference = "medium"
  
    # Prefix: attaches a NDP Prefix Information option to the router
    # advertisement.
    [[interfaces.prefix]]
    # Serve Prefix Information options for each IPv6 prefix on this interface
    # configured with a /64 CIDR mask. Only /64 is allowed for this special case.
    #
    # If prefix is an empty string or omitted, "::/64" is assumed.
    prefix = "::/64"
  
    # Specifies on-link and autonomous address autoconfiguration (SLAAC) flags for
    # this prefix. Both default to true.
    on_link = true
    autonomous = true
  
    # Specifies the preferred and valid lifetimes for this prefix. The preferred
    # lifetime must not exceed the valid lifetime. By default, the preferred
    # lifetime is 4 hours and the valid lifetime is 24 hours. "auto" uses the
    # defaults. "infinite" means this prefix should be used forever.
    preferred_lifetime = "auto"
    valid_lifetime = "auto"
  
    # Specifies whether this prefix should be deprecated. When true, the preferred
    # and valid lifetime values will be interpreted as deadlines (added to the
    # current time) for clients using this prefix. The preferred and valid
    # lifetime values will count down to zero until CoreRAD is restarted, at which
    # point the deprecated prefix can be completely removed from its
    # configuration. Note that a deprecated prefix cannot have an infinite
    # preferred and/or valid lifetime. Defaults to false.
    deprecated = false
  
    # Alternatively, serve an explicit IPv6 prefix.
    [[interfaces.prefix]]
    prefix = "2001:db8::/64"
  
    # Route: attaches an NDP Route Information option to the router advertisement.
    [[interfaces.route]]
    # Serve Route Information options for each IPv6 destination route configured
    # on system loopback interfaces, meaning this router owns that route and can
    # be the authority on how traffic is routed to that prefix. This is a typical
    # configuration for DHCPv6 Prefix Delegation; for example, an ISP router
    # delegates a /48 prefix on a WAN interface. The router will configure a /48
    # unreachable route on loopback (as it owns the entire delegated prefix), but
    # it can advertise more specific /64 prefixes on each LAN.
    #
    # Only ::/0 is allowed for this special case. If prefix is an empty string or
    # omitted, "::/0" is assumed.
    prefix = "::/0"
  
    # Alternatively, serve an explicit IPv6 route.
    [[interfaces.route]]
    prefix = "2001:db8:ffff::/64"
  
    # Indicates the preference of this route over other routes advertised by other
    # routers. Only the values "low", "medium", and "high" are allowed. An empty
    # string is treated as "medium".
    preference = "medium"
  
    # Specifies the lifetime of this prefix. By default, the lifetime is 24 hours.
    # "auto" uses the defaults. "infinite" means this route should be used
    # forever.
    lifetime = "auto"
  
    # Specifies whether this route should be deprecated. When true, the lifetime
    # value will be interpreted as a deadline (added to the current time) for
    # clients using this route. The lifetime value will count down to zero until
    # CoreRAD is restarted, at which point the deprecated route can be completely
    # removed from its configuration. Note that a deprecated route cannot have an
    # infinite lifetime. Defaults to false.
    deprecated = false
  
    # RDNSS: attaches a NDP Recursive DNS Servers option to the router
    # advertisement.
    [[interfaces.rdnss]]
    # The DNS servers which should be advertised. Explicit IPv6 addresses may be
    # specified, but the special :: wildcard may also be set (with or without
    # other explicit addresses) to choose a suitable IPv6 address (preferring
    # Unique Local Addresses, then Global Unicast Addresses, then Link-Local
    # Addresses) from this interface to serve in the event that the DNS server
    # resides on the same interface as CoreRAD.
    #
    # If servers is an empty array or omitted, ["::"] is assumed.
    servers = ["::"]
  
    # The maximum time these RDNSS addresses may be used for name resolution. An
    # empty string or 0 means these servers should no longer be used. "auto" will
    # compute an optimal default. "infinite" means these servers should be used
    # forever.
    lifetime = "auto"
  
    # DNSSL: attaches a NDP DNS Search List option to the router advertisement.
    [[interfaces.dnssl]]
    # The maximum time these DNSSL domain names may be used for name resolution.
    # An empty string or 0 means these search domains should no longer be used.
    # "auto" will compute an optimal default. "infinite" means these search
    # domains should be used forever.
    lifetime = "auto"
    domain_names = ["foo.example.com"]
  
    # PREF64: enable PREF64 on the interface using the given prefix. Note that this
    # often requires further configuration of the network for NAT64 and/or DNS64. If
    # an empty string is given, the default prefix of "64:ff9b::/96" is assumed.
    [[interfaces.pref64]]
    prefix = "64:ff9b::/96"
  
  # Enable or disable the debug HTTP server for facilities such as Prometheus
  # metrics and pprof support.
  #
  # Warning: do not expose pprof on an untrusted network!
  [debug]
  address = "localhost:9430"
  prometheus = false
  pprof = false
  