#!/bin/sh # ip-up <interface> <myaddr> <daemon-pid> <local> <remote> <arg> # Sample of the ip-up script. # This is called when the CIPE interface is opened. # Arguments: # $1 interface the CIPE interface # $2 myaddr our UDP address # $3 daemon-pid the daemon's process ID # $4 local IP address of our CIPE device # $5 remote IP address of the remote CIPE device # $6 arg argument supplied via options # Purposes for this script: set up routes, set up proxy-arps, etc. # start daemons, logging... umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin case `uname -r` in 2.0*) # Under Linux 2.0, a minimal route to the remote CIPE is needed. # 2.1 and later sets this one by itself. route add -host $5 dev $1 ;; esac # If this becomes our default route... #route add default gw $5 # just a logging example now=`date "+%b %d %T"` echo "$now UP $*" >> /var/log/cipe.log # Create/update PID file. Note: PKCIPE needs this. echo "$3 $1" >/var/run/cipe/${6:-$1}.pid # Trigger the key exchange procedure, useful when we're using SOCKS # This _must_ run delayed and in the background #(sleep 10; ping -c5 $5) & # If the system runs gated, tell it what has happened #gdc interface # The following are just ideas for further consideration # Interconnect two 10. subnets through the Internet! # Assuming $4 is in 10.1 and $5 in 10.2 #route add -net 10.2.0.0 netmask 255.255.0.0 gw $5 # Proxy-ARP the peer's address on eth0 #arp -i eth0 -Ds $5 eth0 pub # Evil tricks department: masquerade the CIPE peer's /24 network to our IP #NA=`expr $5 : '\([0-9]*\.[0-9]*\.[0-9]*\.\)'` #ipfwadm -F -a accept -m -b -S $NA.0/24 -D 0.0.0.0/0 # the usual way for this would be a case selection on $5 or $6, however exit 0