Examples

Examples

Configure an ethernet device with networkd, identified by its name, and enable
DHCP:

network:
	version: 2
	ethernets:
		eno1:
			dhcp4: true

This is an example of a static-configured interface with multiple IPv4 addresses
and multiple gateways with networkd, with equal route metric levels, and static
DNS nameservers (Google DNS for this example):

network:
  version: 2
  renderer: networkd
  ethernets:
  eno1:
    addresses:
    - 10.0.0.10/24
    - 11.0.0.11/24
    nameservers:
    addresses:
    - 8.8.8.8
    - 8.8.4.4
    routes:
    - to: 0.0.0.0/0
    via: 10.0.0.1
    metric: 100
    - to: 0.0.0.0/0
    via: 11.0.0.1
    metric: 100

This is a complex example which shows most available features:

network:
  version: 2
	# if specified, can only realistically have that value, as networkd cannot
	# render wifi/3G.
	renderer: NetworkManager
	ethernets:
		# opaque ID for physical interfaces, only referred to by other stanzas
		id0:version: 2
    # if specified, can only realistically have that value, as networkd cannot
    # render wifi/3G.
    renderer: NetworkManager
    ethernets:
      # opaque ID for physical interfaces, only referred to by other stanzas
      id0:
        match:
          macaddress: 00:11:22:33:44:55
        wakeonlan: true
        dhcp4: true
        addresses:
          - 192.168.14.2/24
          - 192.168.14.3/24
          - "2001:1::1/64"
        nameservers:
          search: [foo.local, bar.local]
          addresses: [8.8.8.8]
        routes:
          - to: default
          via: 192.168.14.1
          - to: default
          via: "2001:1::2"
          - to: 0.0.0.0/0
          via: 11.0.0.1
          table: 70
          on-link: true
          metric: 3
        routing-policy:
          - to: 10.0.0.0/8
          from: 192.168.14.2/24
          table: 70
          priority: 100
          - to: 20.0.0.0/8
          from: 192.168.14.3/24
          table: 70
          priority: 50
        # only networkd can render on-link routes and routing policies
        renderer: networkd
      lom:
        match:
          driver: ixgbe
        # you are responsible for setting tight enough match rules
        # that only match one device if you use set-name
        set-name: lom1
        dhcp6: true
      switchports:
        # all cards on second PCI bus unconfigured by
        # themselves, will be added to br0 below
        match:
        name: enp2*
        mtu: 1280
    wifis:
      all-wlans:
        # useful on a system where you know there is
        # only ever going to be one device
        match: {}
        access-points:
        "Joe's home":
          # mode defaults to "infrastructure" (client)
          password: "s3kr1t"
      # this creates an AP on wlp1s0 using hostapd
      # no match rules, thus the ID is the interface name
      wlp1s0:
        access-points:
          "guest":
              mode: ap
              # no WPA config implies default of open
       bridges:
        # the key name is the name for virtual (created) interfaces
        # no match: and set-name: allowed
        br0:
          # IDs of the components; switchports expands into multiple interfaces
          interfaces: [wlp1s0, switchports]
          dhcp4: true
			match:
				macaddress: 00:11:22:33:44:55
			wakeonlan: true
			dhcp4: true
			addresses:
				- 192.168.14.2/24
				- 192.168.14.3/24
				- "2001:1::1/64"
			nameservers:
				search: [foo.local, bar.local]
				addresses: [8.8.8.8]
			routes:
				- to: default
				via: 192.168.14.1
				- to: default
				via: "2001:1::2"
				- to: 0.0.0.0/0
				via: 11.0.0.1
				table: 70
				on-link: true
				metric: 3
			routing-policy:
				- to: 10.0.0.0/8
				from: 192.168.14.2/24
				table: 70
				priority: 100
				- to: 20.0.0.0/8
				from: 192.168.14.3/24
				table: 70
				priority: 50
			# only networkd can render on-link routes and routing policies
			renderer: networkd
		lom:
			match:
				driver: ixgbe
			# you are responsible for setting tight enough match rules
			# that only match one device if you use set-name
			set-name: lom1
			dhcp6: true
		switchports:
			# all cards on second PCI bus unconfigured by
			# themselves, will be added to br0 below
			match:
			name: enp2*
			mtu: 1280
	wifis:
		all-wlans:
			# useful on a system where you know there is
			# only ever going to be one device
			match: {}
			access-points:
			"Joe's home":
				# mode defaults to "infrastructure" (client)
				password: "s3kr1t"
		# this creates an AP on wlp1s0 using hostapd
		# no match rules, thus the ID is the interface name
		wlp1s0:
			access-points:
				"guest":
						mode: ap
						# no WPA config implies default of open
     bridges:
			# the key name is the name for virtual (created) interfaces
			# no match: and set-name: allowed
			br0:
				# IDs of the components; switchports expands into multiple interfaces
				interfaces: [wlp1s0, switchports]
				dhcp4: true
1 Like