Router 4 - OpenWRT

Objetivo

Router para invitados

Ubicación actual

En contenedor INCUS de Brocoli

Configuración

Se utilizan dos VF del controlador i350, uno dedicado en el puerto A que irá a Internet (WAN). otro, en el puerto B que será el LAN.

Para el contenedor

Atención al lanzar el contenedor que empieza con 192.168.1.1, inmediatamente cambiar la configuración IP a DHCP para configurarla bien luego.


# Dentro del contenedor -------------------

# Configuración inicial inocua (afinar más tarde)
uci set network.lan.proto='dhcp'
uci set dhcp.lan.ignore='1'
uci commit network
/etc/init.d/network restart


# Dentro del host -------------------
# Límites del contenedor
incus config set router4-openwrt limits.memory 256MiB
incus config device set router4-openwrt root size 1GiB
incus config device override router4-openwrt root size=1GiB

# Opciones de prioridad
# incus config set router4-openwrt limits.cpu 1
# incus config set router4-openwrt limits.cpu.allowance 25%
# incus config set router4-openwrt limits.cpu.priority 8
# No hacemos aquí limitación de ancho de banda por la carga de cpu y por el offload en i350

# Ver relación entre PCI y nombres ethernet
sudo lshw -class network -businfo

# Añadimos VF de ethernet (menor uso de cpu)
incus config device add router4-openwrt ethwan nic nictype=sriov parent=enp1s0f0 name=ethwan
incus config device add router4-openwrt ethlan nic nictype=sriov parent=enp1s0f1 name=ethlan
# Fin VF

# opción con macvlan (Más carga de CPU)
incus config device remove router4-openwrt ethwan
incus config device remove router4-openwrt ethlan

incus config device add router4-openwrt ethwan nic nictype=macvlan mode=passthru parent=enp1s0f0 name=ethwan
incus config device add router4-openwrt ethlan nic nictype=macvlan mode=passthru parent=enp1s0f1 name=ethlan

# ... Configuración para que use los 4 hilos del procesador
incus config device set router4-openwrt ethwan queue_count 4
incus config device set router4-openwrt ethlan queue_count 4
# Fin macvlan

# Varios
incus config set router4-openwrt boot.autostart 1

Para el kernel del host

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt kvm.ignore_msrs=1 i915.enable_gvt=1 pci=realloc pci=assign-busses"