#!/bin/bash # Set up the fireclaw bridge and NAT rules # Run with sudo set -euo pipefail BRIDGE="fcbr0" BRIDGE_IP="172.16.0.1/24" SUBNET="172.16.0.0/24" EXT_IFACE=$(ip route show default | awk '{print $5; exit}') echo "Creating bridge ${BRIDGE}..." ip link add "${BRIDGE}" type bridge 2>/dev/null || echo "Bridge already exists" ip addr add "${BRIDGE_IP}" dev "${BRIDGE}" 2>/dev/null || echo "Address already set" ip link set "${BRIDGE}" up echo "Enabling IP forwarding..." sysctl -w net.ipv4.ip_forward=1 echo "Setting up NAT via ${EXT_IFACE}..." iptables -t nat -C POSTROUTING -s "${SUBNET}" -o "${EXT_IFACE}" -j MASQUERADE 2>/dev/null || \ iptables -t nat -A POSTROUTING -s "${SUBNET}" -o "${EXT_IFACE}" -j MASQUERADE iptables -C FORWARD -i "${BRIDGE}" -o "${EXT_IFACE}" -j ACCEPT 2>/dev/null || \ iptables -A FORWARD -i "${BRIDGE}" -o "${EXT_IFACE}" -j ACCEPT iptables -C FORWARD -i "${EXT_IFACE}" -o "${BRIDGE}" -m state --state RELATED,ESTABLISHED -j ACCEPT 2>/dev/null || \ iptables -A FORWARD -i "${EXT_IFACE}" -o "${BRIDGE}" -m state --state RELATED,ESTABLISHED -j ACCEPT echo "Done. Bridge ${BRIDGE} ready."