(Updated July 9, 2025)
GRUB IPv6
=========
vi /etc/default/grub
add GRUB_CMDLINE_LINUX_DEFAULT=”ipv6.disable=1″
update-grub
Virtualization
==============
(add virt-manager if you have a GUI)
apt install qemu-kvm libvirt-clients bridge-utils libvirt-daemon-system virtinst
Configuration for the bridge (single port. would need bond for multiport.)
============================
root@u24vm1:~# cat /etc/netplan/50-cloud-init.yaml
network:
  version: 2
  ethernets:
    enp0s25:
      dhcp4: no
  bridges:
    br0:
      interfaces:
        - enp0s25
      addresses:
        - "141.222.36.36/22"
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
        search: []
      routes:
      - to: "default"
        via: "141.222.36.1"
Bridge with a bond!
network:
  version: 2
  ethernets:
    eno1:
      dhcp4: false
    eno2:
      dhcp4: false
    eno3:
      dhcp4: false
    eno4:
      dhcp4: false
  bonds:
    bond0:
      dhcp4: false
      interfaces:
      - eno2
      - eno4
      - eno1
      - eno3
      parameters:
        mode: "balance-rr"
  bridges:
    br0:
      interfaces:
        - bond0
      addresses:
        - "141.222.36.237/22"
      nameservers:
        addresses:
        - 8.8.8.8
        - 8.8.4.4
        search: []
      routes:
      - to: "default"
        via: "141.222.36.1"
network:
  version: 2
  ethernets:
    eno1: {}
    eno2: {}
  bonds:
    bond0:
      interfaces:
      - eno2
      - eno1
      parameters:
        mode: "802.3ad"
        lacp-rate: "slow"
        transmit-hash-policy: "layer2"
  bridges:
    br0:
      interfaces:
        - bond0
      addresses:
        - "141.222.36.240/22"
      nameservers:
        addresses:
        - 141.222.36.200
        - 141.222.36.196
        search:
        - cs.skidmore.edu
        - skidmore.edu
      routes:
      - to: "default"
        via: "141.222.36.1"
Configure Adapter for a VM
==========================
root@u24vm1:~# cat bridge.xml
   <network>
     <name>host-bridge</name>
     <forward mode='bridge'/>
     <bridge name='br0'/>
   </network>
root@u24vm1:~# virsh net-define bridge.xml
Network host-bridge defined from bridge.xml
virsh # net-start –network host-bridge
virsh # net-autostart –network host-bridge
Network host-bridge marked as autostarted
virsh # net-list
 Name          State    Autostart   Persistent
————————————————
 default       active   yes         yes
 host-bridge   active   yes         yes
Test example on RHEL8 with libvirt:
sudo virt-install \ --name u24temp \ --memory 4096 \ --vcpus 2 \ --disk path=/3TB/VMS/u24temp/u24temp.qcow2,size=100,format=qcow2 \ --location /3TB/ubuntu-24.04.2-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \ --os-variant ubuntu24.04 \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --extra-args 'console=ttyS0,115200n8 serial' \ --machine q35
Test example on Ubuntu 24.04 with libvirt:
sudo virt-install \ --name u24temp \ --memory 3072 \ --vcpus 2 \ --disk path=/VMS/u24temp/u24temp.qcow2,size=60 \ --location /VMS/iso/ubuntu-24.04.2-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \ --network network=host-bridge \ --os-variant ubuntu24.04 \ --graphics none \ --console pty,target_type=serial \ --extra-args 'console=ttyS0,115200n8 serial' \ --machine q35 \ --autostart
Template details:
sysctl.conf
disable ipv6 in grub and ufw
add binutils bashtop chrony
timedatectl set-timezone America/New_York
base ufw rules
    for pkg in $(dpkg -l | awk ‘/^ii/{print $2}’); do
      if apt-cache policy “$pkg” | grep -q “/universe”; then
        echo “$pkg”
      fi
    done