create_pve-mgnt-vmbr.sh aktualisiert

This commit is contained in:
2026-01-28 00:04:21 +01:00
parent 5f46dc466e
commit 793d7ec42b

View File

@@ -1,25 +1,67 @@
#!/bin/bash #!/bin/bash
# ===================================================== # =====================================================
# Proxmox VE: Linux Bridge xx_vmbrmgt erstellen # Proxmox VE: Linux Bridge erstellen
# IP: 10.60.10.1/24 | Kein physischer Port
# NAT & IP Forwarding aktiviert
# ===================================================== # =====================================================
# 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 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 exit 1
fi fi
BRIDGE_NAME="xx_vmbrmgt" # ---- Header ----
BRIDGE_IP="10.60.10.1/24" echo -e "${CYAN}${BOLD}${INDENT}==========================================${RESET}"
INTERFACES_FILE="/etc/network/interfaces" 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)" 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 <<EOF >> "$INTERFACES_FILE" cat <<EOF >> "$INTERFACES_FILE"
# -------------------------------------------------- # --------------------------------------------------
@@ -31,14 +73,13 @@ iface $BRIDGE_NAME inet static
bridge-stp off bridge-stp off
bridge-fd 0 bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward 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 post-down iptables -t nat -F
EOF EOF
echo "==> Bridge $BRIDGE_NAME konfiguriert." # ---- Bridge aktivieren ----
echo -e "${INDENT}==> Bridge $BRIDGE_NAME aktivieren..."
# Bridge direkt aktivieren
echo "==> Bridge $BRIDGE_NAME aktivieren..."
ifup $BRIDGE_NAME ifup $BRIDGE_NAME
echo "✔ Bridge $BRIDGE_NAME ist jetzt aktiv!" # ---- Fertig ----
echo -e "${GREEN}${BOLD}${INDENT}✔ Bridge $BRIDGE_NAME ist jetzt aktiv und konfiguriert!${RESET}\n"