From 793d7ec42b4044e591a15994a4681bc778e29ca5 Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Wed, 28 Jan 2026 00:04:21 +0100 Subject: [PATCH] create_pve-mgnt-vmbr.sh aktualisiert --- create_pve-mgnt-vmbr.sh | 75 +++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 17 deletions(-) diff --git a/create_pve-mgnt-vmbr.sh b/create_pve-mgnt-vmbr.sh index 79660b0..8c7ca77 100644 --- a/create_pve-mgnt-vmbr.sh +++ b/create_pve-mgnt-vmbr.sh @@ -1,25 +1,67 @@ #!/bin/bash # ===================================================== -# Proxmox VE: Linux Bridge xx_vmbrmgt erstellen -# IP: 10.60.10.1/24 | Kein physischer Port -# NAT & IP Forwarding aktiviert +# Proxmox VE: Linux Bridge erstellen # ===================================================== -# Root-Check +# ---- 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 "Bitte als Root ausführen (sudo)" + echo -e "${BOLD}${RED}${INDENT}Bitte als Root ausführen!${RESET}" exit 1 fi -BRIDGE_NAME="xx_vmbrmgt" -BRIDGE_IP="10.60.10.1/24" -INTERFACES_FILE="/etc/network/interfaces" +# ---- Header ---- +echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" +echo -e "${CYAN}${BOLD}${INDENT} Linux Bridge erstellen ${RESET}" +echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}" -echo "==> Backup der interfaces-Datei..." +# ---- 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}" -echo "==> Bridge $BRIDGE_NAME in $INTERFACES_FILE eintragen..." - +# ---- Bridge in interfaces eintragen ---- +echo -e "${INDENT}==> Bridge $BRIDGE_NAME in $INTERFACES_FILE eintragen..." cat <> "$INTERFACES_FILE" # -------------------------------------------------- @@ -31,14 +73,13 @@ iface $BRIDGE_NAME inet static bridge-stp off bridge-fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward - post-up iptables -t nat -A POSTROUTING -s '10.60.10.0/24' -o vmbr0 -j MASQUERADE + post-up iptables -t nat -A POSTROUTING -s '$NAT_SUBNET' -o $OUT_IF -j MASQUERADE post-down iptables -t nat -F EOF -echo "==> Bridge $BRIDGE_NAME konfiguriert." - -# Bridge direkt aktivieren -echo "==> Bridge $BRIDGE_NAME aktivieren..." +# ---- Bridge aktivieren ---- +echo -e "${INDENT}==> Bridge $BRIDGE_NAME aktivieren..." ifup $BRIDGE_NAME -echo "✔ Bridge $BRIDGE_NAME ist jetzt aktiv!" \ No newline at end of file +# ---- Fertig ---- +echo -e "${GREEN}${BOLD}${INDENT}✔ Bridge $BRIDGE_NAME ist jetzt aktiv und konfiguriert!${RESET}\n"