wit-network-config/files/qemu-ifup

34 lines
834 B
Bash
Executable File

#!/bin/bash
set -Eeuo pipefail
IFACE=$1
source /etc/libvirt/hooks/$IFACE || true
if ! [[ $CLUSTER =~ ^[0-9]+$ ]]; then
echo "CLUSTER seems not to be valid"
exit 10
fi
LOOPBACKIP=$(ip -4 addr show dev lo | grep -Po 'inet \K[\d.]+' | grep -v "^127.0.0.1$")
BRIDGE=br${CLUSTER}
VXLAN=vxlan${CLUSTER}
VNI=${CLUSTER}
ip link set up ${IFACE}
if ! ip link show dev ${VXLAN} &>/dev/null; then
ip link add ${VXLAN} type vxlan id ${VNI} dstport 4789 local ${LOOPBACKIP} nolearning
ip link set up ${VXLAN}
fi
if ! ip link show dev ${BRIDGE} &>/dev/null; then
brctl addbr ${BRIDGE}
brctl stp ${BRIDGE} off
brctl addif ${BRIDGE} ${VXLAN}
ip link set up dev ${BRIDGE}
bridge vlan del dev ${BRIDGE} vid 1 self
echo 1 >/sys/class/net/${BRIDGE}/bridge/vlan_filtering
fi
brctl addif ${BRIDGE} ${IFACE}