Advertisement
load-net

balansing_provaider

Apr 2nd, 2024 (edited)
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. #comment Prov1 ip route add 0.0.0.0/0 gw default internet Vmeste
  2. #comment Prov2 ip route add 0.0.0.0/0 gw reserv internet RTK
  3. /log error "1"
  4.  
  5. /log warning "StartScript uralmicro recovery";
  6. #Main interface name ether1
  7. :local MainIf ether1
  8.  
  9. #Reserve interface name ether4-Reserv
  10. :local RsrvIf ether2
  11.  
  12. :local PingCount 3
  13. :local PingTarget1 8.8.8.8
  14. :local PingTarget2 8.8.4.4
  15. :local PingTarget3 77.88.8.8
  16. :local PingTarget1R 91.2.210.2
  17. :local PingTarget2R 77.88.8.1
  18. :local PingTarget3R 1.1.1.1
  19.  
  20.  
  21. /log error "Check main default internet connection"
  22.  
  23. :local MainIfInetOk false;
  24. :local PingResult1 [/ping $PingTarget1 count=$PingCount interface=$MainIf]
  25. :local PingResult2 [/ping $PingTarget2 count=$PingCount interface=$MainIf]
  26. :local PingResult3 [/ping $PingTarget3 count=$PingCount interface=$MainIf]
  27.  
  28. /log warning "ping $PingTarget1=$PingResult1 p, $PingTarget2=$PingResult2 p, $PingTarget3=$PingResult3 p"
  29.  
  30. :set MainIfInetOk (($PingResult1 + $PingResult2 + $PingResult3) >= (2 * $PingCount))
  31.  
  32. #Check reserved citto internet connection
  33. :local RsrvIfInetOk false;
  34. :local PingResultR1 [/ping $PingTarget1R count=$PingCount interface=$RsrvIf]
  35. :local PingResultR2 [/ping $PingTarget2R count=$PingCount interface=$RsrvIf]
  36. :local PingResultR3 [/ping $PingTarget3R count=$PingCount interface=$RsrvIf]
  37.  
  38. /log warning "ping $PingTarget1R=$PingResultR1 p, $PingTarget2R=$PingResultR2 p, $PingTarget3R=$PingResultR3 p"
  39.  
  40. :set RsrvIfInetOk (($PingResultR1 + $PingResultR2 + $PingResultR3) >= (2 * $PingCount))
  41.  
  42. if (!$MainIfInetOk) do={
  43. /log error "Main internet connection error"
  44. }
  45.  
  46. /log warning "Reserv MainIfInetOk $MainIfInetOk";
  47.  
  48.  
  49. if (!$RsrvIfInetOk) do={
  50. /log error "Reserve internet connection error"
  51. }
  52.  
  53. /log warning "Reserv RsrvIfInetOk $RsrvIfInetOk";
  54.  
  55. :local MainGWDistance [/ip route get [find comment="Prov1"] distance]
  56. :local RsrvGWDistance [/ip route get [find comment="Prov2"] distance]
  57.  
  58. /log warning "main d $MainGWDistance"
  59. /log warning "res d $RsrvGWDistance"
  60.  
  61. #SetUp gateways
  62. if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={
  63. /log error "Switch to main internet connection"
  64. /ip route set [find comment="Prov1"] distance=1
  65. /ip route set [find comment="Prov2"] distance=2
  66. /ip firewall connection remove [find]
  67. /log error "Switch to main internet connection end"
  68. }
  69. #SetUp Gateways to Reserv
  70. if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={
  71. /log error "Switch to Reserv connection"
  72. /ip route set [find comment="Prov1"] distance=2
  73. /ip route set [find comment="Prov2"] distance=1
  74. /ip firewall connection remove [find]
  75. /log error "Switch to Reserv connection end"
  76. }
  77.  
  78.  
  79.  
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement