(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