Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- _nhrp_config="/etc/opennhrp/opennhrp.conf"
- _nhrp_ipsec="/etc/opennhrp/opennhrp.ipsec"
- _strongswan_pid="/var/run/charon.pid"
- _type="hub"
- if ! grep "$NHRP_INTERFACE" $_nhrp_config | grep "hub"> /dev/null 2>&1; then
- _type="spoke"
- fi
- case $1 in
- interface-up)
- ip route flush proto 42 dev $NHRP_INTERFACE
- ip neigh flush dev $NHRP_INTERFACE
- ;;
- peer-register)
- ;;
- peer-up)
- if [ -n "$NHRP_DESTMTU" ]; then
- ARGS=`ip route get $NHRP_DESTNBMA from $NHRP_SRCNBMA | head -1`
- ip route add $ARGS proto 42 mtu $NHRP_DESTMTU
- fi
- echo "Create link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)" | tee -a /tmp/opennhrp
- if [[ ( ${_type} == "spoke" ) && ( -e ${_strongswan_pid} ) ]]; then
- if grep "${NHRP_SRCADDR}" "${_nhrp_ipsec}"; then
- echo "swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA" >> /tmp/opennhrp
- swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA >>/tmp/opennhrp 2>&1
- echo "swanctl -i -c dmvpn -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA" >> /tmp/opennhrp
- swanctl -i -c dmvpn -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA >>/tmp/opennhrp 2>&1
- rc=$?
- if [[ $rc -gt 0 ]]; then
- echo "Exited with returncode: $rc, adding peer aborted" >> /tmp/opennhrp
- exit 1;
- fi
- echo "done" >> /tmp/opennhrp
- fi
- fi
- ;;
- peer-down)
- echo "Delete link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)"
- if [[ ( ${_type} == "spoke" ) && ( -e ${_strongswan_pid} ) ]]; then
- swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA || exit 1
- fi
- ip route del $NHRP_DESTNBMA src $NHRP_SRCNBMA proto 42
- ;;
- route-up)
- echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is up"
- ip route replace $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42 via $NHRP_NEXTHOP dev $NHRP_INTERFACE
- ip route flush cache
- ;;
- route-down)
- echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is down"
- ip route del $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42
- ip route flush cache
- ;;
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement