Advertisement
Guest User

Untitled

a guest
Mar 9th, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. if [ "$script_type" == "up" -o "$script_type" == "down" ]
  4. then
  5. /rom/openvpn/updown.sh
  6. fi
  7.  
  8. echo "VPN Client 2 Log" >> /root/vpn_2_log.txt
  9. echo " " >> /root/vpn_2_log.txt
  10. echo "Script type: " >> /root/vpn_2_log.txt
  11. echo " " >> /root/vpn_2_log.txt
  12. echo "VPN Client 1 IP list" $(nvram get vpn_client1_ip_list) >> /root/vpn_2_log.txt
  13. echo "VPN Client 2 IP list" $(nvram get vpn_client2_ip_list) >> /root/vpn_2_log.txt
  14. echo "Arg1:" $1 >> /root/vpn_2_log.txt
  15. echo "Arg2:" $2 >> /root/vpn_2_log.txt
  16. echo "Arg3:" $3 >> /root/vpn_2_log.txt
  17. echo "Arg4:" $4 >> /root/vpn_2_log.txt
  18. echo "Arg5:" $5 >> /root/vpn_2_log.txt
  19. echo " " >> /root/vpn_2_log.txt
  20. echo "Route Gateway 1:" $route_gateway_1 >> /root/vpn_2_log.txt
  21. echo "Route Gateway 2:" $route_gateway_2 >> /root/vpn_2_log.txt
  22. echo "Route VPN Gateway:" $route_vpn_gateway >> /root/vpn_2_log.txt
  23. echo "Route WAN Gateway 1:" $route_net_gateway >> /root/vpn_2_log.txt
  24. echo " " >> /root/vpn_2_log.txt
  25. echo "Starting IP rules:" >> /root/vpn_2_log.txt
  26. ip rule >> /root/vpn_2_log.txt
  27. echo " " >> /root/vpn_2_log.txt
  28. echo "Starting IP routes:" >> /root/vpn_2_log.txt
  29. echo "Starting table table main:" >> /root/vpn_2_log.txt
  30. ip route show table main >> /root/vpn_2_log.txt
  31. echo "-----" >> /root/vpn_2_log.txt
  32. echo "Starting table 101:" >> /root/vpn_2_log.txt
  33. ip route show table 101 >> /root/vpn_2_log.txt
  34. echo "-----" >> /root/vpn_2_log.txt
  35. echo "Starting main 102:" >> /root/vpn_2_log.txt
  36. ip route show table 102 >> /root/vpn_2_log.txt
  37. echo " " >> /root/vpn_2_log.txt
  38.  
  39. VPN_IP_LIST=$(nvram get vpn_client2_ip_list)
  40. VPN_TBL=$(nvram get vpn_tbl_2)
  41. if [ "$VPN_TBL" == "" ]
  42. then
  43. VPN_TBL=101
  44. fi
  45.  
  46. export VPN_GW VPN_IP VPN_TBL
  47.  
  48. # delete rules for IPs not on list
  49. IP_LIST=`ip rule show|awk '$2 == "from" && $4=="lookup" && $5==ENVIRON["VPN_TBL"] {print $3}'`
  50.  
  51. for IP in $IP_LIST
  52. do
  53. DEL_IP="y"
  54. for VPN_IP in $VPN_IP_LIST
  55. do
  56. if [ "$IP" == "$VPN_IP" ]
  57. then
  58. DEL_IP=
  59. fi
  60. done
  61.  
  62. if [ "$DEL_IP" == "y" ]
  63. then
  64. ip rule del from $IP table $VPN_TBL
  65. fi
  66. done
  67.  
  68. echo "Post delete IP rules:" >> /root/vpn_2_log.txt
  69. ip rule >> /root/vpn_2_log.txt
  70. echo " " >> /root/vpn_2_log.txt
  71.  
  72. # add rules for any new IPs
  73. for VPN_IP in $VPN_IP_LIST
  74. do
  75. IP_LIST=`ip rule show|awk '$2=="from" && $3==ENVIRON["VPN_IP"] && $4=="lookup" && $5==ENVIRON["VPN_TBL"] {print $3}'`
  76. if [ "$IP_LIST" == "" ]
  77. then
  78. ip rule add from $VPN_IP table $VPN_TBL
  79. fi
  80. done
  81.  
  82. if [ "$script_type" == "route-up" ]
  83. then
  84. VPN_GW=$route_vpn_gateway
  85. else
  86. VPN_GW=$route_net_gateway
  87. fi
  88.  
  89. echo "Post adding VPN IP rules:" >> /root/vpn_2_log.txt
  90. ip rule >> /root/vpn_2_log.txt
  91. echo " " >> /root/vpn_2_log.txt
  92.  
  93. # delete VPN routes
  94. NET_LIST=`ip route show|awk '$2=="via" && $3==ENVIRON["VPN_GW"] && $4=="dev" && $5==ENVIRON["dev"] {print $1}'`
  95. for NET in $NET_LIST
  96. do
  97. ip route del $NET dev $dev
  98. done
  99.  
  100. echo "Post deletion IP routes:" >> /root/vpn_2_log.txt
  101. echo "Post deletion table table main:" >> /root/vpn_2_log.txt
  102. ip route show table main >> /root/vpn_2_log.txt
  103. echo "-----" >> /root/vpn_2_log.txt
  104. echo "Post deletion table 101:" >> /root/vpn_2_log.txt
  105. ip route show table 101 >> /root/vpn_2_log.txt
  106. echo "-----" >> /root/vpn_2_log.txt
  107. echo "Post deletion main 102:" >> /root/vpn_2_log.txt
  108. ip route show table 102 >> /root/vpn_2_log.txt
  109. echo " " >> /root/vpn_2_log.txt
  110.  
  111. # route VPN IPs thru VPN gateway
  112. if [ "$VPN_IP_LIST" != "" ]
  113. then
  114. ip route del default table $VPN_TBL
  115. ip route add default via $VPN_GW table $VPN_TBL
  116. logger "Routing $VPN_IP_LIST via VPN gateway $VPN_GW"
  117. fi
  118.  
  119. echo "Post addition IP routes:" >> /root/vpn_2_log.txt
  120. echo "Post addition table table main:" >> /root/vpn_2_log.txt
  121. ip route show table main >> /root/vpn_2_log.txt
  122. echo "-----" >> /root/vpn_2_log.txt
  123. echo "Post addition table 101:" >> /root/vpn_2_log.txt
  124. ip route show table 101 >> /root/vpn_2_log.txt
  125. echo "-----" >> /root/vpn_2_log.txt
  126. echo "Post addition main 102:" >> /root/vpn_2_log.txt
  127. ip route show table 102 >> /root/vpn_2_log.txt
  128. echo " " >> /root/vpn_2_log.txt
  129.  
  130. # route other IPs thru WAN gateway
  131. if [ "$route_net_gateway" != "" ]
  132. then
  133. ip route del default
  134. ip route add default via $route_net_gateway
  135. fi
  136.  
  137. echo "Post WAN IP routes:" >> /root/vpn_2_log.txt
  138. echo "Post WAN table table main:" >> /root/vpn_2_log.txt
  139. ip route show table main >> /root/vpn_2_log.txt
  140. echo "-----" >> /root/vpn_2_log.txt
  141. echo "Post WAN table 101:" >> /root/vpn_2_log.txt
  142. ip route show table 101 >> /root/vpn_2_log.txt
  143. echo "-----" >> /root/vpn_2_log.txt
  144. echo "Post WAN main 102:" >> /root/vpn_2_log.txt
  145. ip route show table 102 >> /root/vpn_2_log.txt
  146. echo " " >> /root/vpn_2_log.txt
  147.  
  148. ip route flush cache
  149.  
  150. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement