42 lines
1.4 KiB
Bash
42 lines
1.4 KiB
Bash
#!/bin/bash
|
|
# Setup TAP/Bridge networking for QEMU VM
|
|
# Bridge: 100.100.0.1/24
|
|
# VM will be: 100.100.0.2/24
|
|
|
|
set -e
|
|
|
|
# Create bridge if not exists
|
|
if ! ip link show br0 &>/dev/null; then
|
|
ip link add br0 type bridge
|
|
ip addr add 100.100.0.1/24 dev br0
|
|
ip link set br0 up
|
|
echo "Bridge br0 created with IP 100.100.0.1/24"
|
|
fi
|
|
|
|
# Create TAP device if not exists
|
|
if ! ip link show tap0 &>/dev/null; then
|
|
ip tuntap add tap0 mode tap
|
|
ip link set tap0 master br0
|
|
ip link set tap0 up
|
|
echo "TAP device tap0 created and attached to br0"
|
|
fi
|
|
|
|
# Enable IP forwarding
|
|
echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
|
|
# Setup NAT/masquerade for outbound traffic from VM
|
|
iptables -t nat -C POSTROUTING -s 100.100.0.0/24 -o eth0 -j MASQUERADE 2>/dev/null || iptables -t nat -A POSTROUTING -s 100.100.0.0/24 -o eth0 -j MASQUERADE
|
|
|
|
# Forward traffic destined for VPN networks to VM (10.35.33.230 = IBM i)
|
|
# The VM will route this through its VPN tunnel
|
|
iptables -C FORWARD -d 10.35.33.230 -j ACCEPT 2>/dev/null || iptables -A FORWARD -d 10.35.33.230 -j ACCEPT
|
|
iptables -C FORWARD -s 10.35.33.230 -j ACCEPT 2>/dev/null || iptables -A FORWARD -s 10.35.33.230 -j ACCEPT
|
|
|
|
# Route to IBM i through VM
|
|
ip route add 10.35.33.230 via 100.100.0.2 2>/dev/null || true
|
|
|
|
echo "Network setup complete"
|
|
echo "Bridge: br0 = 100.100.0.1/24"
|
|
echo "TAP: tap0 attached to br0"
|
|
echo "Route: 10.35.33.230 via 100.100.0.2 (VM)"
|