#!/bin/bash # ===================================================== # Proxmox VE: Linux Bridge erstellen # ===================================================== # ---- Standardwerte ---- DEFAULT_BRIDGE="xx_vmbrmgt" DEFAULT_BRIDGE_IP="10.60.10.1/24" DEFAULT_NAT_SUBNET="10.60.10.0/24" DEFAULT_OUT_IF="vmbr0" INTERFACES_FILE="/etc/network/interfaces" # ---- Farben / Layout ---- BOLD="\033[1m" GREEN="\033[32m" CYAN="\033[36m" YELLOW="\033[33m" RED="\033[31m" RESET="\033[0m" INDENT=" " # ---- Root Check ---- if [[ $EUID -ne 0 ]]; then echo -e "${BOLD}${RED}${INDENT}Bitte als Root ausführen!${RESET}" exit 1 fi # ---- Header ---- echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" echo -e "${CYAN}${BOLD}${INDENT} Linux Bridge erstellen ${RESET}" echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" # ---- Eingaben ---- read -p "${INDENT}Bridge Name (Default: $DEFAULT_BRIDGE): " BRIDGE_NAME BRIDGE_NAME="${BRIDGE_NAME:-$DEFAULT_BRIDGE}" read -p "${INDENT}Bridge IP (Default: $DEFAULT_BRIDGE_IP): " BRIDGE_IP BRIDGE_IP="${BRIDGE_IP:-$DEFAULT_BRIDGE_IP}" read -p "${INDENT}Subnet für NAT (Default: $DEFAULT_NAT_SUBNET): " NAT_SUBNET NAT_SUBNET="${NAT_SUBNET:-$DEFAULT_NAT_SUBNET}" read -p "${INDENT}Physisches Ausgangsinterface (Default: $DEFAULT_OUT_IF): " OUT_IF OUT_IF="${OUT_IF:-$DEFAULT_OUT_IF}" # ---- Zusammenfassung ---- echo -e "\n${CYAN}${BOLD}${INDENT}==========================================${RESET}" echo -e "${CYAN}${BOLD}${INDENT} Zusammenfassung ${RESET}" echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" echo -e "${INDENT}Bridge Name : ${CYAN}$BRIDGE_NAME${RESET}" echo -e "${INDENT}Bridge IP : ${CYAN}$BRIDGE_IP${RESET}" echo -e "${INDENT}NAT Subnet : ${CYAN}$NAT_SUBNET${RESET}" echo -e "${INDENT}Ausgangsinterface: ${CYAN}$OUT_IF${RESET}" echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" read -p "${INDENT}Mit Enter bestätigen und Bridge erstellen..." _ # ---- Backup der interfaces-Datei ---- echo -e "\n${INDENT}==> Backup der interfaces-Datei..." cp "$INTERFACES_FILE" "${INTERFACES_FILE}.bak.$(date +%Y%m%d-%H%M)" echo -e "${INDENT}Backup erstellt: ${CYAN}${INTERFACES_FILE}.bak.${RESET}" # ---- Bridge in interfaces eintragen ---- echo -e "${INDENT}==> Bridge $BRIDGE_NAME in $INTERFACES_FILE eintragen..." cat <> "$INTERFACES_FILE" # -------------------------------------------------- # VM Bridge $BRIDGE_NAME auto $BRIDGE_NAME iface $BRIDGE_NAME inet static address $BRIDGE_IP bridge-ports none bridge-stp off bridge-fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '$NAT_SUBNET' -o $OUT_IF -j MASQUERADE post-down iptables -t nat -F EOF # ---- Bridge aktivieren ---- echo -e "${INDENT}==> Bridge $BRIDGE_NAME aktivieren..." ifup $BRIDGE_NAME # ---- Fertig ---- echo -e "${GREEN}${BOLD}${INDENT}✔ Bridge $BRIDGE_NAME ist jetzt aktiv und konfiguriert!${RESET}\n"