====== Ubuntu 18.04 Netplan ======
===== Intro =====
Ubuntu 18.04 used a YAML based file with Netplan to configure the networking. I need to set up a server for virtualisation hosting with bonded uplinks to the ethernet switch.
This page build on the basic config to have a bonded ethernet with a vlan driver next to pick off vlans from the bond0 interface, and then the bridging driver on the vlans to allow a guest to connect to any vlan presented.
===== Basic DHCP YAML config =====
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes
===== Basic static address =====
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- 192.168.5.YYY/24
gateway4: 192.168.5.ZZZ
nameservers:
search: [rainsbrook.co.uk, sub.rainsbrook.co.uk]
addresses: [192.168.5.XXX, 1.1.1.1]
===== Static with Bonding =====
===== And VLANs =====
===== And Bridging on VLANS on Bonding =====
This renames the "newer" style of naming ethernet to the more traditional eth0/1/2 etc based on the MAC address of the interface.
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: 00:30:48:c0:ff:ee
dhcp4: no
dhcp6: no
optional: true
set-name: eth0
eth1:
match:
macaddress: 00:fe:de:ad:be:ef
dhcp4: no
dhcp6: no
optional: true
set-name: eth1
bonds:
bond0:
interfaces: [ eth0, eth1 ]
dhcp4: no
dhcp6: no
parameters:
mode: active-backup
primary: eth0
vlans:
vlan5:
accept-ra: no
id: 5
link: bond0
dhcp4: no
dhcp6: no
vlans:
vlan7:
accept-ra: no
id: 7
link: bond0
dhcp4: no
dhcp6: no
bridges:
br1:
addresses: [ 192.168.1.x/24 ]
dhcp4: no
dhcp6: no
interfaces: [ bond0 ]
gateway4: 192.168.1.1
nameservers:
addresses: [ 192.168.1.x ]
search: [ domain1.co.uk, domain1.int ]
br5:
dhcp4: no
dhcp6: no
interfaces: [ vlan5 ]
br7:
dhcp4: no
dhcp6: no
interfaces: [ vlan7 ]
===== Updating resolv.conf =====
''/etc/resolv/conf'' is now a symlink as below:-
root@argon:~# ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Apr 3 08:41 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
root@argon:~# ls -l /run/systemd/resolve/*
-rw-r--r-- 1 systemd-resolve systemd-resolve 633 Apr 3 12:04 /run/systemd/resolve/resolv.conf
-rw-r--r-- 1 systemd-resolve systemd-resolve 760 Apr 3 12:04 /run/systemd/resolve/stub-resolv.conf
Two choices seem to exist, the resolv.conf file is the one updated by netplan, so let's use this:-
root@argon:~# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
ln: failed to create symbolic link '/etc/resolv.conf': File exists
root@argon:~# mv /etc/resolv.conf /etc/resolv.conf.orig
root@argon:~# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
root@argon:~# rm /etc/resolv.conf.orig
You could just use ''ln -sf'' to force the link creation, but if something goes wrong, you loose the original file.
Test with ''dig'' or ''nslookup'' and resolution should work as expected.