KVM setup bridge met netplan

ik heb al eens eerder een artikel gewijd aan het instellen van een bridge voor kvm (KVM setup bridged netwerk) maar tegenwoordig word ubuntu default uitgerold met netplan. in de basis komt het op het zelfde neer maar de net ff andere commando’s en plaatsen.

In mijn voorbeeld is het systeem een kalen ubuntu 20.04 installatie met kvm al geïnstalleerd. als je dat nog niet hebt kijk dan naar Installatie KVM 

wat heb ik nodig ?

Om je virtual machine op de host in het zelfde subnet als je kvm server een netwerk adres te krijgen heb je dus een bridge nodig deze kan kan het installeren op de volgende manier.  

$ sudo apt-get install bridge-utils

als de tools er op staan gaan we naar de config van netplan. deze is te vinden in /etc/netplan. als je net als ik een kalen install hebt gedaan en netwerk hebt geconfigureerd in de installer heb je waarschijnlijk een file  00-installer-config.yaml maar hij kan ook anders heten bv 01-netcfg.yaml of 50-cloud-init.yml, het maakt niet zoveel uit. Bekijk de file deze zal er ongeveer zo uitzien.

$ cat 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  version: 2

  ethernets:
    eno1:
      addresses:
      - 192.168.53.22/24
      gateway4: 192.168.53.1
      nameservers:
        addresses:
        - 192.168.53.10
        - 192.168.53.22
        - 192.168.53.5
        search:
        - starfleet.edd
      dhcp4: false
      dhcp6: true

Voordat we aanpassingen gaan maken gaan we in ieder geval een copyt maken van deze file, dat doen we door er .ORG achter te zetten. we kunnen dan altijd terug naar de ouder config ingeval van problemen.

$ sudo cp 00-installer-config.yaml 00-installer-config.yaml.ORG

Aanmaken brigde

hier onder staat de aangepast versie met bridge, zorg ervoor dat je oorspronkelijke interface dhcp uit schakelt. voor zowel ipv4 als v6
maak een sectie bridge aan met een interface naam br0. en verwijs naar de interface waar je hem aan gekoppelt wil hebben in mijn geval en01

 

$ cat 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  version: 2

  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false

  bridges:
    br0:
      interfaces: [eno1]
      addresses:
      - 192.168.53.22/24
      gateway4: 192.168.53.1
      nameservers:
        addresses:
        - 192.168.53.10
        - 192.168.53.22
        - 192.168.53.5
        search:
        - starfleet.edd
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: false
      dhcp6: true

de rest blijft eigenlijk gelijk, we zetten er alleen nog een sectie parameters bij met stp: true en forward-delay: 4 let op de : bij de entry’ s
als dit gedaan is kunnen we een nieuwe netplan config generen en deze activeren.

$ sudo netplan generate 
$ sudo netplan --debug apply

als dit gedaan is kunnen we het 1 en andere controleren.

$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.1c697a0fdadc	yes		eno1
virbr0		8000.525400a45a1a	yes		virbr0-nic
$ networkctl status br0 
● 6: br0                                                                          
               Link File: /usr/lib/systemd/network/99-default.link                
            Network File: /run/systemd/network/10-netplan-br0.network             
                    Type: bridge                                                  
                   State: routable (configured)         
                  Driver: bridge                                                  
              HW Address: 1c:69:7a:0f:da:dc (EliteGroup Computer Systems Co., LTD)
                     MTU: 1500 (min: 68, max: 65535)                              
           Forward Delay: 4s                                                      
              Hello Time: 2s                                                      
                 Max Age: 20s                                                     
             Ageing Time: 5min                                                    
                Priority: 32768                                                   
                     STP: yes                                                     
  Multicast IGMP Version: 2                                                       
    Queue Length (Tx/Rx): 1/1                                                     
                 Address: 192.168.53.22                                           
                          2001:981:4dbc:1:1e69:7aff:fe0f:dadc                     
                          fe80::1e69:7aff:fe0f:dadc                               
                 Gateway: 192.168.53.1 (AVM GmbH)                                 
                          fe80::3631:c4ff:fe8b:4dcb (AVM GmbH)                    
                          fe80::3631:c4ff:fe8b:4dcb (AVM GmbH)                    
                     DNS: 192.168.53.10                                           
                          192.168.53.22                                           
                          192.168.53.5                                            
                          2001:981:4dbc:1:7dbc:86f3:da90:f6b8                     
          Search Domains: starfleet.edd                                           

Jan 08 15:25:09 andromeda systemd-udevd[4689]: br0: Could not generate persistent MAC: No data available
Jan 08 15:25:09 andromeda systemd-networkd[4685]: br0: netdev ready
Jan 08 15:25:09 andromeda systemd-networkd[4685]: br0: IPv6 successfully enabled
Jan 08 15:25:09 andromeda systemd-networkd[4685]: br0: Link UP
Jan 08 15:25:17 andromeda systemd-networkd[4685]: br0: Gained carrier
Jan 08 15:25:19 andromeda systemd-networkd[4685]: br0: Gained IPv6LL