Following `netplan` creates a virtual bridge `br0` connected to interface `enp2s0`
and both have same mac address (as required by hetzner)

```
network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      match:
        macaddress: 44:8a:5b:9b:a0:5b
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      macaddress: 44:8a:5b:9b:a0:5b
      interfaces: [enp2s0]
      addresses:
        - 148.251.151.77/32
        - 2a01:4f8:210:504c::2/64
      routes:
        - on-link: true
          to: 0.0.0.0/0
          via: 148.251.151.65
      gateway6: fe80::1
      nameservers:
        addresses:
          - 213.133.100.100
          - 213.133.98.98
          - 213.133.99.99
          - 2a01:4f8:0:1::add:1010
          - 2a01:4f8:0:1::add:9999
          - 2a01:4f8:0:1::add:9898
```

Create a vm using the following commands:

Note the following:

1. We have set the network to `default` so we have internet connectivity via the host

2. VNC is set to listen on `0.0.0.0` so we can connect using VNC and complete the installation.

```shell
qemu-img create -f qcow2 images/hellovm-9.qcow2 10G
virt-install --virt-type kvm \
  --name hellovm-9 \
  --ram 2048 \
  --disk images/hellovm-9.qcow2,format=qcow2 \
  --network network=default \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \
  --cdrom boot/ubuntu-18.04.5-live-server-amd64.iso
```

After the installation is complete, start the VM, SSH into it and change the network as follows.
Here we are setting a static IP to the only interface. This means internet connectivity, but no
connectivity from the KVM host.

```
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      addresses:
        - 148.251.151.90/32
      routes:
        - to: 0.0.0.0/0
          via: 148.251.151.65
          on-link: true
      nameservers:
        addresses:
          - 213.133.100.100
          - 213.133.98.98
          - 213.133.99.99
```

Save the configuration and shutdown the guest.

Back on the KVM host, edit the guest configuration using the following command:

```shell
virsh edit hellovm-9
```

And change the network config from this:

```
    <interface type='network'>
      <mac address='52:54:00:86:2b:c4'/>
      <source network='default'/>
      <model type='rtl8139'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
```

to this:

```
    <interface type='bridge'>
      <mac address='00:50:56:00:20:0d'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
```

We have changed the following:

1. Interface type changed to `type='bridge'`

2. MAC address updated to whatever you get from Hetzner.

3. Source changed to `bridge='br0'`

Save and edit. Restart the guest. It should now be connected to the Internet with
both incoming and outgoing.