Advertisement
Guest User

Untitled

a guest
Aug 18th, 2018
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.08 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. _nhrp_config="/etc/opennhrp/opennhrp.conf"
  4. _nhrp_ipsec="/etc/opennhrp/opennhrp.ipsec"
  5. _strongswan_pid="/var/run/charon.pid"
  6. _type="hub"
  7.  
  8. if ! grep "$NHRP_INTERFACE" $_nhrp_config | grep "hub"> /dev/null 2>&1; then
  9.     _type="spoke"
  10. fi
  11.  
  12. case $1 in
  13. interface-up)
  14.     ip route flush proto 42 dev $NHRP_INTERFACE
  15.     ip neigh flush dev $NHRP_INTERFACE
  16.     ;;
  17. peer-register)
  18.     ;;
  19. peer-up)
  20.     if [ -n "$NHRP_DESTMTU" ]; then
  21.         ARGS=`ip route get $NHRP_DESTNBMA from $NHRP_SRCNBMA | head -1`
  22.         ip route add $ARGS proto 42 mtu $NHRP_DESTMTU
  23.     fi
  24.     echo "Create link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)" | tee -a /tmp/opennhrp
  25.     if [[ ( ${_type} == "spoke" ) && ( -e ${_strongswan_pid} ) ]]; then
  26.         if grep "${NHRP_SRCADDR}" "${_nhrp_ipsec}"; then
  27.                         echo "swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA" >> /tmp/opennhrp
  28.             swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA >>/tmp/opennhrp 2>&1
  29.                         echo "swanctl -i -c dmvpn -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA" >> /tmp/opennhrp
  30.                         swanctl -i -c dmvpn -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA  >>/tmp/opennhrp 2>&1
  31.                         rc=$?
  32.                         if [[ $rc -gt 0 ]]; then
  33.                           echo "Exited with returncode: $rc, adding peer aborted" >> /tmp/opennhrp
  34.                           exit 1;
  35.                         fi
  36.                         echo "done" >> /tmp/opennhrp
  37.         fi
  38.     fi
  39.     ;;
  40. peer-down)
  41.     echo "Delete link from $NHRP_SRCADDR ($NHRP_SRCNBMA) to $NHRP_DESTADDR ($NHRP_DESTNBMA)"
  42.     if [[ ( ${_type} == "spoke" ) && ( -e ${_strongswan_pid} ) ]]; then
  43.         swanctl -t -S $NHRP_SRCNBMA -R $NHRP_DESTNBMA || exit 1
  44.     fi
  45.     ip route del $NHRP_DESTNBMA src $NHRP_SRCNBMA proto 42
  46.     ;;
  47. route-up)
  48.     echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is up"
  49.     ip route replace $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42 via $NHRP_NEXTHOP dev $NHRP_INTERFACE
  50.     ip route flush cache
  51.     ;;
  52. route-down)
  53.     echo "Route $NHRP_DESTADDR/$NHRP_DESTPREFIX is down"
  54.     ip route del $NHRP_DESTADDR/$NHRP_DESTPREFIX proto 42
  55.     ip route flush cache
  56.     ;;
  57. esac
  58.  
  59. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement