Advertisement
gOnt

Untitled

Sep 17th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. #!/bin/bash
  2. server_ip=''
  3. # Set parameter server_ip='i.p.ad.dr' if you have more than 1 IP on the server.
  4.  
  5. if [[ ! $server_ip ]]
  6. then
  7. server_ip=`ip addr list | grep "inet " | grep -v 127.0.0. | head -n 1 | awk '{print $2}' | awk -F/ '{print $1}'`
  8. fi
  9. wget -q -O pmtmp.html --bind-address=$server_ip http://tunnelnl.pro-m.org
  10. if [[ `grep 1 pmtmp.html` ]]
  11. then
  12. network=`grep 1 pmtmp.html | awk '{print $2}'`
  13. filter_ip=`grep 1 pmtmp.html | awk '{print $3}'`
  14. sec_network=`grep 1 pmtmp.html | awk '{print $4}'`
  15. sec_filter_ip=`grep 1 pmtmp.html | awk '{print $5}'`
  16. thi_network=`grep 1 pmtmp.html | awk '{print $6}'`
  17. thi_filter_ip=`grep 1 pmtmp.html | awk '{print $7}'`
  18. else
  19. echo "Tunnel disabled"
  20. exit
  21. fi
  22. rm -f pmtmp.html
  23.  
  24. case "$1" in
  25. start)
  26. modprobe ipip
  27. ip tunnel add ipip$((700 + $network)) mode gre remote $filter_ip local $server_ip ttl 250
  28. ip link set ipip$((700 + $network)) up
  29. ip addr add 10.7.$network.2/32 peer 10.7.$network.1 dev ipip$((700 + $network))
  30. ip route add default via 10.7.$network.1 dev ipip$((700 + $network)) tab $((700 + $network))
  31. ip rule add from 10.7.$network.2/32 tab $((700 + $network)) prio 5
  32. if [[ ! $sec_network -eq 0 ]]
  33. then
  34. ip tunnel add ipip$((700 + $sec_network)) mode gre remote $sec_filter_ip local $server_ip ttl 250
  35. ip link set ipip$((700 + $sec_network)) up
  36. ip addr add 10.7.$sec_network.2/32 peer 10.7.$sec_network.1 dev ipip$((700 + $sec_network))
  37. ip route add default via 10.7.$sec_network.1 dev ipip$((700 + $sec_network)) tab $((700 + $sec_network))
  38. ip rule add from 10.7.$sec_network.2/32 tab $((700 + $sec_network)) prio 5
  39. fi
  40. if [[ ! $thi_network -eq 0 ]]
  41. then
  42. ip tunnel add ipip$((700 + $thi_network)) mode gre remote $thi_filter_ip local $server_ip ttl 250
  43. ip link set ipip$((700 + $thi_network)) up
  44. ip addr add 10.7.$thi_network.2/32 peer 10.7.$thi_network.1 dev ipip$((700 + $thi_network))
  45. ip route add default via 10.7.$thi_network.1 dev ipip$((700 + $thi_network)) tab $((700 + $thi_network))
  46. ip rule add from 10.7.$thi_network.2/32 tab $((700 + $thi_network)) prio 5
  47. fi
  48. ;;
  49.  
  50. stop)
  51. ip route del default via 10.7.$network.1 dev ipip$((700 + $network)) tab $((700 + $network))
  52. ip link set ipip$((700 + $network)) down
  53. ip rule del from 10.7.$network.2/32 tab $((700 + $network))
  54. ip tunnel del ipip$((700 + $network))
  55. if [[ ! $sec_network -eq 0 ]]
  56. then
  57. ip route del default via 10.7.$sec_network.1 dev ipip$((700 + $sec_network)) tab $((700 + $sec_network))
  58. ip link set ipip$((700 + $sec_network)) down
  59. ip rule del from 10.7.$sec_network.2/32 tab $((700 + $sec_network))
  60. ip tunnel del ipip$((700 + $sec_network))
  61. fi
  62. if [[ ! $thi_network -eq 0 ]]
  63. then
  64. ip route del default via 10.7.$thi_network.1 dev ipip$((700 + $thi_network)) tab $((700 + $thi_network))
  65. ip link set ipip$((700 + $thi_network)) down
  66. ip rule del from 10.7.$thi_network.2/32 tab $((700 + $thi_network))
  67. ip tunnel del ipip$((700 + $thi_network))
  68. fi
  69. ;;
  70.  
  71. start1)
  72. modprobe ipip
  73. ip tunnel add ipip$((700 + $network)) mode gre remote $filter_ip local $server_ip ttl 250
  74. ip link set ipip$((700 + $network)) up
  75. ip addr add 10.7.$network.2/32 peer 10.7.$network.1 dev ipip$((700 + $network))
  76. ip route add default via 10.7.$network.1 dev ipip$((700 + $network)) tab $((700 + $network))
  77. ip rule add from 10.7.$network.2/32 tab $((700 + $network)) prio 5
  78. ;;
  79.  
  80. stop1)
  81. ip route del default via 10.7.$network.1 dev ipip$((700 + $network)) tab $((700 + $network))
  82. ip link set ipip$((700 + $network)) down
  83. ip rule del from 10.7.$network.2/32 tab $((700 + $network))
  84. ip tunnel del ipip$((700 + $network))
  85. ;;
  86.  
  87. start2)
  88. if [[ ! $sec_network -eq 0 ]]
  89. then
  90. ip tunnel add ipip$((700 + $sec_network)) mode gre remote $sec_filter_ip local $server_ip ttl 250
  91. ip link set ipip$((700 + $sec_network)) up
  92. ip addr add 10.7.$sec_network.2/32 peer 10.7.$sec_network.1 dev ipip$((700 + $sec_network))
  93. ip route add default via 10.7.$sec_network.1 dev ipip$((700 + $sec_network)) tab $((700 + $sec_network))
  94. ip rule add from 10.7.$sec_network.2/32 tab $((700 + $sec_network)) prio 5
  95. else
  96. echo "Secondary Tunnel disabled"
  97. fi
  98.  
  99. ;;
  100.  
  101. stop2)
  102. if [[ ! $sec_network -eq 0 ]]
  103. then
  104. ip route del default via 10.7.$sec_network.1 dev ipip$((700 + $sec_network)) tab $((700 + $sec_network))
  105. ip link set ipip$((700 + $sec_network)) down
  106. ip rule del from 10.7.$sec_network.2/32 tab $((700 + $sec_network))
  107. ip tunnel del ipip$((700 + $sec_network))
  108. else
  109. echo "Secondary Tunnel disabled"
  110. fi
  111. ;;
  112.  
  113. start3)
  114. if [[ ! $thi_network -eq 0 ]]
  115. then
  116. ip tunnel add ipip$((700 + $thi_network)) mode gre remote $thi_filter_ip local $server_ip ttl 250
  117. ip link set ipip$((700 + $thi_network)) up
  118. ip addr add 10.7.$thi_network.2/32 peer 10.7.$thi_network.1 dev ipip$((700 + $thi_network))
  119. ip route add default via 10.7.$thi_network.1 dev ipip$((700 + $thi_network)) tab $((700 + $thi_network))
  120. ip rule add from 10.7.$thi_network.2/32 tab $((700 + $thi_network)) prio 5
  121. else
  122. echo "Third Tunnel disabled"
  123. fi
  124.  
  125. ;;
  126.  
  127. stop3)
  128. if [[ ! $thi_network -eq 0 ]]
  129. then
  130. ip route del default via 10.7.$thi_network.1 dev ipip$((700 + $thi_network)) tab $((700 + $thi_network))
  131. ip link set ipip$((700 + $thi_network)) down
  132. ip rule del from 10.7.$thi_network.2/32 tab $((700 + $thi_network))
  133. ip tunnel del ipip$((700 + $thi_network))
  134. else
  135. echo "Third Tunnel disabled"
  136. fi
  137. ;;
  138.  
  139. *)
  140. echo "Usage: $0 {start|stop|star1|stop1|start2|stop2|start3|stop3}"
  141. ;;
  142. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement