86 lines
3.1 KiB
Bash
86 lines
3.1 KiB
Bash
#!/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 <<EOF >> "$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"
|