Best regards
Michal
script:
# --------------------- Configuration -----------------
# Interfaces
ETH0_IP="83.168.156.ab"
ETH0_NETMASK="255.255.255.0 "
ETH0_SUBINTERFACES=""
ETH0_PROXY_ARP=""
ETH1_IP="192.168.156.1"
ETH1_NETMASK="255.255.255.0 "
ETH1_SUBINTERFACES=""
ETH1_PROXY_ARP=""
ETH2_IP=""
ETH2_NETMASK=""
ETH2_SUBINTERFACES=""
ETH2_PROXY_ARP=""
# Proxy arp forwarding
PROXY_ARP_LAN=""
PROXY_ARP_WAN_IP=""
PROXY_ARP_WAN_NET=""
PROXY_ARP_ADDRESS=""
# Default gateway:
GATEWAY="83.168.156.1 "
# ------------------ Set up interfaces ----------------
function interfaces() {
if [ ! "$ETH0_IP" == "" ]; then
# Set up the ethernet card:
echo "Configuring eth0:"
BROADCAST=`/bin/ipmask $ETH0_NETMASK $ETH0_IP | cut -f 1 -d ' '`
echo "ifconfig eth0 $ETH0_IP broadcast $BROADCAST netmask $ETH0_NETMASK"
ifconfig eth0 $ETH0_IP broadcast $BROADCAST netmask $ETH0_NETMASK
for i in $ETH0_SUBINTERFACES
do
IF=`echo $i | cut -d':' -f1`
IP=`echo $i | cut -d':' -f2`
BROADCAST=`/bin/ipmask $ETH0_NETMASK $IP | cut -f 1 -d ' '`
echo "ifconfig eth0:${IF} $IP broadcast $BROADCAST netmask $ETH0_NETMASK"
ifconfig eth0:${IF} $IP broadcast $BROADCAST netmask $ETH0_NETMASK
done
# Enable proxy arp
if [ ! "$ETH0_PROXY_ARP" == "" ]; then
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
fi
# If that didn't succeed, give some hints:
if [ ! $? = 0 ]; then
echo "Your eth0 card was not initialized properly."
fi
fi
if [ ! "$ETH1_IP" == "" ]; then
# Set up the ethernet card:
echo "Configuring eth1:"
BROADCAST=`/bin/ipmask $ETH1_NETMASK $ETH1_IP | cut -f 1 -d ' '`
echo "ifconfig eth1 $ETH1_IP broadcast $BROADCAST netmask $ETH1_NETMASK"
ifconfig eth1 $ETH1_IP broadcast $BROADCAST netmask $ETH1_NETMASK
for i in $ETH1_SUBINTERFACES
do
IF=`echo $i | cut -d':' -f1`
IP=`echo $i | cut -d':' -f2`
BROADCAST=`/bin/ipmask $ETH1_NETMASK $IP | cut -f 1 -d ' '`
echo "ifconfig eth1:${IF} $IP broadcast $BROADCAST netmask $ETH1_NETMASK"
ifconfig eth1:${IF} $IP broadcast $BROADCAST netmask $ETH1_NETMASK
done
# Enable proxy arp
if [ ! "$ETH1_PROXY_ARP" == "" ]; then
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
fi
# If that didn't succeed, give some hints:
if [ ! $? = 0 ]; then
echo "Your eth1 card was not initialized properly."
fi
fi
if [ ! "$ETH2_IP" == "" ]; then
# Set up the ethernet card:
echo "Configuring eth2:"
BROADCAST=`/bin/ipmask $ETH2_NETMASK $ETH2_IP | cut -f 1 -d ' '`
echo "ifconfig eth2 $ETH2_IP broadcast $BROADCAST netmask $ETH2_NETMASK"
ifconfig eth2 $ETH2_IP broadcast $BROADCAST netmask $ETH2_NETMASK
for i in $ETH2_SUBINTERFACES
do
IF=`echo $i | cut -d':' -f1`
IP=`echo $i | cut -d':' -f2`
BROADCAST=`/bin/ipmask $ETH2_NETMASK $IP | cut -f 1 -d ' '`
echo "ifconfig eth2:${IF} $IP broadcast $BROADCAST netmask $ETH2_NETMASK"
ifconfig eth2:${IF} $IP broadcast $BROADCAST netmask $ETH2_NETMASK
done
# Enable proxy arp
if [ ! "$ETH2_PROXY_ARP" == "" ]; then
echo 1 > /proc/sys/net/ipv4/conf/eth2/proxy_arp
fi
# If that didn't succeed, give some hints:
if [ ! $? = 0 ]; then
echo "Your eth2 card was not initialized properly."
fi
fi
}
# ------------- Proxy arp configuration ---------------
function proxy_arp() {
echo "Configuring proxy arp:"
if [ ! "$PROXY_ARP_LAN" == "" ]; then
# Add router ip address on internal interface
echo "ip a a $PROXY_ARP_WAN_IP dev $PROXY_ARP_LAN"
ip a a $PROXY_ARP_WAN_IP dev $PROXY_ARP_LAN
# Delete route on internel interface
echo "ip route delete $PROXY_ARP_WAN_NET dev $PROXY_ARP_LAN"
ip route delete $PROXY_ARP_WAN_NET dev $PROXY_ARP_LAN
for i in $PROXY_ARP_ADDRESS
do
echo "ip route add $i dev $PROXY_ARP_LAN"
ip route add $i dev $PROXY_ARP_LAN
done
fi
}
# ------------ Set up the loopback interface --------------
function loopback() {
echo "Configuring loopback interface:"
echo "ifconfig lo 127.0.0.1"
ifconfig lo 127.0.0.1
echo "route add -net 127.0.0.0 netmask 255.0.0.0 lo"
route add -net 127.0.0.0 netmask 255.0.0.0 lo
}
# ----------------- Set up the gateway --------------------
function gateway() {
echo "Configuring gateway:"
if [ ! "$GATEWAY" = "127.0.0.1" -a ! "$GATEWAY" = "" ]; then
for i in $GATEWAY
do
echo "route add default gw ${i} metric 1"
route add default gw ${i} metric 1
done
fi
}
# --------------------- Stop interfaces --------------------
function stop() {
echo "Stop interfaces ..."
if [ ! "$ETH0_IP" == "" ]; then
ifconfig eth0 down
fi
if [ ! "$ETH1_IP" == "" ]; then
ifconfig eth1 down
fi
if [ ! "$ETH2_IP" == "" ]; then
ifconfig eth2 down
fi
}
# ------------- { start | stop | temp } ---------------
case "$1" in
'start')
echo "Interfaces configuration: "
interfaces
proxy_arp
loopback
gateway
;;
'stop')
echo "Interfaces configuration: "
stop
;;
'restart')
echo "Interfaces configuration: "
interfaces
loopback
gateway
;;
*)
echo "\n Usage: ./rc.inet1 {start | stop | restart}"
;;
esac

