rendered paste body#!/bin/bash
#
# Startup script for the virt-network
#
# chkconfig: - 97 01
# description: Local private network for xen guests
PATH=/usr/bin:/sbin:/bin:/usr:/sbin
export PATH
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
if [ "$NETWORKING" = "no" ]; then
logger -s -p daemon.warning "virt-network: Networking disabled"
exit 0
fi
# Discover default interface
GATEWAYDEV=`/sbin/ip route | grep default | awk {'print $5'}`
if [ "$GATEWAYDEV" = "link" ]; then
GATEWAYDEV=`/sbin/ip route | grep default | awk {'print $3'}`
fi
start() {
# Clear any existing NAT rules
/sbin/iptables -F -t nat
/sbin/iptables -F
if test -z "$GATEWAYDEV"; then
echo "No gateway device found"
logger -s -p daemon.warning "virt-network: No gateway device found"
else
echo "Masquerading using $GATEWAYDEV"
logger p daemon.warning "virt-network: Masquerading using $GATEWAYDEV "
/sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
fi
return 0
}
stop() {
# Clear any existing NAT rules
/sbin/iptables -F -t nat
echo "Stop masquerading"
logger p daemon.warning "virt-network: Stopping masquerading"
echo 0 > /proc/sys/net/ipv4/ip_forward
return 0
}
status() {
MASQDEV=`/sbin/iptables -L -t nat -v | grep MASQUERADE | awk {'print $7'}`
IPFORWARD=`cat /proc/sys/net/ipv4/ip_forward`
RETCODE=0
if [ "$IPFORWARD" = "1" ]; then
IPSTATUS="enabled"
else
IPSTATUS="disabled"
RETCODE=1
fi
if test -z "$MASQDEV"; then
MASQDEV="Not found"
RETCODE=1
fi
echo "NAT device : $MASQDEV"
echo "IP Forwarding : $IPSTATUS"
return $RETCODE
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start | stop | restart | status}"
;;
esac