#!/bin/bash set -e LAB_NAME="{{ gateway_config.lab_name }}" VNI="{{ gateway_config.vni }}" WG_IF="wg-${LAB_NAME}" VXLAN_IF="vxlan${VNI}" # Wait for WireGuard interface timeout=30 while [ $timeout -gt 0 ]; do if ip link show ${WG_IF} &>/dev/null; then break fi sleep 1 ((timeout--)) done # Create VXLAN interface if ! ip link show ${VXLAN_IF} &>/dev/null; then ip link add ${VXLAN_IF} type vxlan \ id ${VNI} \ dev ${WG_IF} \ dstport {{ vxlan_port }} \ nolearning \ proxy fi # Configure VXLAN peers (FDB entries) {% for peer in gateway_config.peers %} bridge fdb append 00:00:00:00:00:00 dev ${VXLAN_IF} dst {{ peer.wg_ip }} {% endfor %} # Bring up interface ip link set ${VXLAN_IF} up