Skip to content

Configuration Reference

Nylon utilizes a dual-configuration system: Local Configuration (node.yaml) for node-specific settings and Central Configuration (central.yaml) for network-wide topology and shared settings.


This file defines how an individual node behaves and identifies itself.

FieldTypeDescriptionDefault
idstringA unique identifier for this node (must match central.yaml).-
keystringThe WireGuard private key for this node.-
portintThe UDP port Nylon listens on for peer traffic.57175
interface_namestringThe name of the TUN interface to create (e.g., nylon).nylon / utunX
use_system_routingboolIf true, all packets from peers will exit through the TUN interface.false
no_net_configureboolIf true, Nylon will not attempt to configure system networking/routes.false
dns_resolvers[]stringCustom DNS resolvers (e.g., ["1.1.1.1:53"]) used for config fetching.System Default
log_pathstringIf set, Nylon will write logs to this file instead of stdout.-
exclude_ips[]stringCIDR ranges to exclude from the tunnel (adds to central exclusions).[]
unexclude_ips[]stringCIDR ranges to remove from the centrally excluded ranges.[]
distobjectOptional configuration for fetching central config automatically (see below).-
pre_up / post_up[]stringCommands to execute before/after the interface is brought up.[]
pre_down / post_down[]stringCommands to execute before/after the interface is brought down.[]

Used to bootstrap the central configuration from a remote source.

  • url: The URL to the .nybundle file.
  • key: The public key used to decrypt/verify the bundle.

This file defines the entire network and must be identical on all nodes.

Nodes are defined as either routers (active participants) or clients (passive participants).

FieldTypeDescription
idstringUnique identifier.
pubkeystringWireGuard public key.
addresses[]stringInternal IP addresses (e.g., 10.0.0.1) for this node.
endpoints[]string(Routers only) Publicly reachable addresses in host:port format.
prefixes[]objectExternal prefixes advertised by this node (see Healthchecks).

A list of CIDR ranges (e.g., ["192.168.1.0/24"]) that should be excluded from the Nylon tunnel for all nodes. If empty, all advertised prefixes are included (Full Tunnel).

Defines the bidirectional links between nodes. Supports groups and topological expansion.

graph:
- "node1, node2" # Connects node1 and node2
- "GroupA = node1, node2" # Defines a group
- "GroupA, node3" # Connects all nodes in GroupA to node3

Nylon can dynamically advertise routes based on the health of an external resource.

Always advertised with a fixed metric.

prefixes:
- type: static
prefix: 10.10.0.0/24
metric: 100

Advertises the prefix as long as the target address is reachable via ICMP.

prefixes:
- type: ping
prefix: 10.20.0.0/24
addr: 10.20.0.1
delay: 15s
max_failures: 3

Advertises the prefix if an HTTP GET request to the URL returns a 200 OK.

prefixes:
- type: http
prefix: 10.30.0.0/24
url: "http://internal-service.local/health"
delay: 30s

Settings for the distribution system in central.yaml.

  • key: The public key for the distribution repository.
  • repos: A list of repository URLs.