Skip to content

Instantly share code, notes, and snippets.

@fcicq
Created December 8, 2012 13:13
Show Gist options
  • Save fcicq/4240234 to your computer and use it in GitHub Desktop.
Save fcicq/4240234 to your computer and use it in GitHub Desktop.
/etc/libvirt/hooks/qemu backup, kvm+libvirt port range forwarding (iptables hooks)
#!/bin/sh
# this is /etc/libvirt/hooks/qemu
# see also http://wiki.libvirt.org/page/Networking#Forwarding_Incoming_Connections
HOST_PORT="17000:17030"
GUEST_IP="192.168.122.2"
COMMAND_1="iptables -t nat -D PREROUTING -p tcp --dport ${HOST_PORT} -j DNAT --to ${GUEST_IP}"
COMMAND_2="`echo \"${COMMAND_1}\" | sed -e \"s/tcp/udp/\"`"
COMMAND_3="iptables -D FORWARD -p tcp -d ${GUEST_IP}/32 -m state --state NEW -m tcp --dport ${HOST_PORT} -j ACCEPT"
COMMAND_4="iptables -D FORWARD -p udp -d ${GUEST_IP}/32 -m udp --dport ${HOST_PORT} -j ACCEPT"
COMMAND_1_START="`echo \"${COMMAND_1}\" | sed -e \"s/-D/-A/\"`"
COMMAND_2_START="`echo \"${COMMAND_2}\" | sed -e \"s/-D/-A/\"`"
COMMAND_3_START="`echo \"${COMMAND_3}\" | sed -e \"s/-D/-I/\"`"
COMMAND_4_START="`echo \"${COMMAND_4}\" | sed -e \"s/-D/-I/\"`"
if [ "${1}" = "MACHINE_NAME" ]; then
if [ "${2}" = "stopped" -o "${2}" = "reconnect" ]; then
${COMMAND_1}
${COMMAND_2}
${COMMAND_3}
${COMMAND_4}
fi
if [ "${2}" = "start" -o "${2}" = "reconnect" ]; then
${COMMAND_1_START}
${COMMAND_2_START}
${COMMAND_3_START}
${COMMAND_4_START}
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment