查看: 492|回复: 0

[Mikrotik Ros] ROS pppoe-client拨号失败的时候,同时ip-pool要更新相应的地址池给用户pptp使用

[复制链接]

124

主题

0

回帖

508

积分

管理员

积分
508
发表于 2026-8-31 00:10:20 | 显示全部楼层 |阅读模式
pppoe-client拨号失败的时候,同时ip-pool要更新相应的地址池给用户pptp使用
保证用户下次拨号进来的时候,能有网络可用。

#定义一个局部变量ippool
:local ippool
#进入到pppoe拨号接口下
/interface pppoe-client
#查找当前接口下,拨号是成功running的接口,同时把这个接口编号取出来,取第9位到第11位,拼成IP地址172.22.22.*,并复制给变量ippool,注意这个变量是数组,我用tostr转换数组为字符串失败。我也不知道为啥
:foreach i in [find] do={:if [get $i running ] do={:set ippool {$ippool . "172.22.22." . [:pick [get $i name] 9 11] . ","}}}
#进入到/ip pool拨号接口下
/ip pool
#设置范围为ippool,注意ippool是数组,所以这边取数组的第一个值
set pptp ranges=[:pick $ippool 0]
#打印变量ippool
:log error [:pick $ippool 0]
:log error "ip pool set ok!!!"

路由器完整的配置如下
  1. <font face="Tahoma">/interface bridge
  2. add name=bridge1-lan
  3. add name=bridge2-wan
  4. /interface vlan
  5. add interface=bridge2-wan name=vlan821 vlan-id=821
  6. add interface=bridge2-wan name=vlan822 vlan-id=822
  7. add interface=bridge2-wan name=vlan823 vlan-id=823
  8. add interface=bridge2-wan name=vlan824 vlan-id=824
  9. add interface=bridge2-wan name=vlan825 vlan-id=825
  10. /interface vrrp
  11. add interface=vlan821 name=vrrp35 vrid=35
  12. add interface=vlan821 name=vrrp36 vrid=36
  13. add interface=vlan821 name=vrrp37 vrid=37
  14. add interface=vlan821 name=vrrp38 vrid=38
  15. add interface=vlan822 name=vrrp39 vrid=39
  16. add interface=vlan822 name=vrrp40 vrid=40
  17. add interface=vlan822 name=vrrp41 vrid=41
  18. add interface=vlan822 name=vrrp42 vrid=42
  19. add interface=vlan823 name=vrrp43 vrid=43
  20. add interface=vlan823 name=vrrp44 vrid=44
  21. add interface=vlan823 name=vrrp45 vrid=45
  22. add interface=vlan823 name=vrrp46 vrid=46
  23. add interface=vlan824 name=vrrp47 vrid=47
  24. add interface=vlan824 name=vrrp48 vrid=48
  25. add interface=vlan824 name=vrrp49 vrid=49
  26. add interface=vlan824 name=vrrp50 vrid=50
  27. add interface=vlan825 name=vrrp51 vrid=51
  28. add interface=vlan825 name=vrrp52 vrid=52
  29. add interface=vlan825 name=vrrp53 vrid=53
  30. add interface=vlan825 name=vrrp54 vrid=54
  31. /interface pppoe-client
  32. ......................<br>20个拨号
  33. /ip pool
  34. add name=pptp ranges="172.22.22.1,172.22.22.2,172.22.22.3,172.22.22.4,172.22.2\
  35.     2.5,172.22.22.6,172.22.22.7,172.22.22.8,172.22.22.9,172.22.22.10,172.22.22\
  36.     .12,172.22.22.13,172.22.22.14,172.22.22.15,172.22.22.16,172.22.22.17,172.2\
  37.     2.22.18,172.22.22.19,172.22.22.20"
  38. /ppp profile
  39. set *FFFFFFFE dns-server=223.5.5.5,223.6.6.6 idle-timeout=1h local-address=\
  40.     172.22.22.254 on-up=":log error (\$"user"."/".\$"local-address"."/\
  41.     ".\$"remote-address"."/".\$"caller-id"."/".\$"called-id"."/".\
  42.     \$"interface")\r\
  43.     \n:log error (\$"remote-address")\r\
  44.     \n:global aaa [:pick \$"remote-address" 10 13]\r\
  45.     \n:log error \$aaa\r\
  46.     \n/interface pppoe-client enable ("pppoe-out".\$aaa)" only-one=no \
  47.     remote-address=pptp
  48. /interface bridge port
  49. add bridge=bridge1-lan interface=ether12
  50. add bridge=bridge1-lan interface=ether11
  51. add bridge=bridge1-lan interface=ether10
  52. add bridge=bridge1-lan interface=ether9
  53. add bridge=bridge2-wan interface=ether1
  54. add bridge=bridge2-wan interface=ether2
  55. add bridge=bridge2-wan interface=ether3
  56. add bridge=bridge2-wan interface=ether4
  57. add bridge=bridge2-wan interface=ether5
  58. add bridge=bridge2-wan interface=ether6
  59. add bridge=bridge2-wan interface=ether7
  60. add bridge=bridge2-wan interface=ether8
  61. /interface pptp-server server
  62. set enabled=yes
  63. /ip address
  64. add address=192.168.64.201/24 interface=bridge1-lan network=192.168.64.0
  65. add address=12.12.1.1 interface=vlan821 network=12.12.1.1
  66. add address=12.12.1.2 interface=vlan822 network=12.12.1.2
  67. add address=12.12.1.3 interface=vlan823 network=12.12.1.3
  68. add address=12.12.1.4 interface=vlan824 network=12.12.1.4
  69. add address=12.12.1.5 interface=vlan825 network=12.12.1.5
  70. add address=12.12.2.5 interface=vrrp35 network=12.12.2.5
  71. add address=12.12.2.6 interface=vrrp36 network=12.12.2.6
  72. add address=12.12.2.7 interface=vrrp37 network=12.12.2.7
  73. add address=12.12.2.8 interface=vrrp38 network=12.12.2.8
  74. add address=12.12.2.9 interface=vrrp39 network=12.12.2.9
  75. add address=12.12.2.10 interface=vrrp40 network=12.12.2.10
  76. add address=12.12.2.11 interface=vrrp41 network=12.12.2.11
  77. add address=12.12.2.12 interface=vrrp42 network=12.12.2.12
  78. add address=12.12.2.13 interface=vrrp43 network=12.12.2.13
  79. add address=12.12.2.14 interface=vrrp44 network=12.12.2.14
  80. add address=12.12.2.15 interface=vrrp45 network=12.12.2.15
  81. add address=12.12.2.16 interface=vrrp46 network=12.12.2.16
  82. add address=12.12.2.17 interface=vrrp47 network=12.12.2.17
  83. add address=12.12.2.18 interface=vrrp48 network=12.12.2.18
  84. add address=12.12.2.19 interface=vrrp49 network=12.12.2.19
  85. add address=12.12.2.20 interface=vrrp50 network=12.12.2.20
  86. add address=12.12.2.21 interface=vrrp51 network=12.12.2.21
  87. add address=12.12.2.22 interface=vrrp52 network=12.12.2.22
  88. add address=12.12.2.23 interface=vrrp53 network=12.12.2.23
  89. add address=12.12.2.24 interface=vrrp54 network=12.12.2.24
  90. /ip dns
  91. set servers=223.5.5.5
  92. /ip firewall address-list
  93. add address=192.168.0.0/16 list=lanip
  94. add address=172.16.0.0/16 list=lanip
  95. add address=10.0.0.0/8 list=lanip
  96. /ip firewall mangle
  97. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  98.     new-routing-mark=pptp1 passthrough=no src-address=172.22.22.1
  99. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  100.     new-routing-mark=pptp2 passthrough=no src-address=172.22.22.2
  101. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  102.     new-routing-mark=pptp3 passthrough=no src-address=172.22.22.3
  103. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  104.     new-routing-mark=pptp4 passthrough=no src-address=172.22.22.4
  105. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  106.     new-routing-mark=pptp5 passthrough=no src-address=172.22.22.5
  107. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  108.     new-routing-mark=pptp6 passthrough=no src-address=172.22.22.6
  109. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  110.     new-routing-mark=pptp7 passthrough=no src-address=172.22.22.7
  111. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  112.     new-routing-mark=pptp8 passthrough=no src-address=172.22.22.8
  113. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  114.     new-routing-mark=pptp9 passthrough=no src-address=172.22.22.9
  115. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  116.     new-routing-mark=pptp10 passthrough=no src-address=172.22.22.10
  117. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  118.     new-routing-mark=pptp11 passthrough=no src-address=172.22.22.11
  119. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  120.     new-routing-mark=pptp12 passthrough=no src-address=172.22.22.12
  121. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  122.     new-routing-mark=pptp13 passthrough=no src-address=172.22.22.13
  123. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  124.     new-routing-mark=pptp14 passthrough=no src-address=172.22.22.14
  125. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  126.     new-routing-mark=pptp15 passthrough=no src-address=172.22.22.15
  127. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  128.     new-routing-mark=pptp16 passthrough=no src-address=172.22.22.16
  129. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  130.     new-routing-mark=pptp17 passthrough=no src-address=172.22.22.17
  131. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  132.     new-routing-mark=pptp18 passthrough=no src-address=172.22.22.18
  133. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  134.     new-routing-mark=pptp19 passthrough=no src-address=172.22.22.19
  135. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  136.     new-routing-mark=pptp20 passthrough=no src-address=172.22.22.20
  137. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  138.     new-routing-mark=pptp21 passthrough=no src-address=172.22.22.21
  139. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  140.     new-routing-mark=pptp22 passthrough=no src-address=172.22.22.22
  141. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  142.     new-routing-mark=pptp23 passthrough=no src-address=172.22.22.23
  143. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  144.     new-routing-mark=pptp24 passthrough=no src-address=172.22.22.24
  145. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  146.     new-routing-mark=pptp25 passthrough=no src-address=172.22.22.25
  147. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  148.     new-routing-mark=pptp26 passthrough=no src-address=172.22.22.26
  149. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  150.     new-routing-mark=pptp27 passthrough=no src-address=172.22.22.27
  151. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  152.     new-routing-mark=pptp28 passthrough=no src-address=172.22.22.28
  153. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  154.     new-routing-mark=pptp29 passthrough=no src-address=172.22.22.29
  155. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  156.     new-routing-mark=pptp30 passthrough=no src-address=172.22.22.30
  157. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  158.     new-routing-mark=pptp31 passthrough=no src-address=172.22.22.31
  159. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  160.     new-routing-mark=pptp32 passthrough=no src-address=172.22.22.32
  161. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  162.     new-routing-mark=pptp33 passthrough=no src-address=172.22.22.33
  163. add action=mark-routing chain=prerouting dst-address-list=!lanip \
  164.     new-routing-mark=pptp34 passthrough=no src-address=172.22.22.34
  165. /ip firewall nat
  166. add action=masquerade chain=srcnat out-interface=all-ppp
  167. add action=masquerade chain=srcnat out-interface=bridge1-lan
  168. /ip route
  169. add distance=1 gateway=pppoe-out1 routing-mark=pptp1
  170. add distance=1 gateway=pppoe-out2 routing-mark=pptp2
  171. add distance=1 gateway=pppoe-out3 routing-mark=pptp3
  172. add distance=1 gateway=pppoe-out4 routing-mark=pptp4
  173. add distance=1 gateway=pppoe-out5 routing-mark=pptp5
  174. add distance=1 gateway=pppoe-out6 routing-mark=pptp6
  175. add distance=1 gateway=pppoe-out7 routing-mark=pptp7
  176. add distance=1 gateway=pppoe-out8 routing-mark=pptp8
  177. add distance=1 gateway=pppoe-out9 routing-mark=pptp9
  178. add distance=1 gateway=pppoe-out10 routing-mark=pptp10
  179. add distance=1 gateway=pppoe-out11 routing-mark=pptp11
  180. add distance=1 gateway=pppoe-out12 routing-mark=pptp12
  181. add distance=1 gateway=pppoe-out13 routing-mark=pptp13
  182. add distance=1 gateway=pppoe-out14 routing-mark=pptp14
  183. add distance=1 gateway=pppoe-out15 routing-mark=pptp15
  184. add distance=1 gateway=pppoe-out16 routing-mark=pptp16
  185. add distance=1 gateway=pppoe-out17 routing-mark=pptp17
  186. add distance=1 gateway=pppoe-out18 routing-mark=pptp18
  187. add distance=1 gateway=pppoe-out19 routing-mark=pptp19
  188. add distance=1 gateway=pppoe-out20 routing-mark=pptp20
  189. add distance=1 dst-address=10.0.0.0/8 gateway=192.168.64.254
  190. add distance=1 dst-address=172.16.0.0/16 gateway=192.168.64.254
  191. add distance=1 dst-address=192.168.0.0/16 gateway=192.168.64.254
  192. /ppp secret
  193. add name=xxxxxx password=xxxxx profile=default-encryption service=pptp
  194. /system clock
  195. set time-zone-name=Asia/Shanghai
  196. /system clock manual
  197. set dst-delta=+08:00 time-zone=+08:00
  198. /system scheduler
  199. add interval=1m name=pppoe-ip-pool on-event=ippool policy=\
  200.     ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
  201.     start-date=jul/21/2022 start-time=13:19:15
  202. /system script
  203. add dont-require-permissions=no name=ippool owner=admin policy=\
  204.     ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\
  205.     \B6\A8\D2\E5\D2\BB\B8\F6\BE\D6\B2\BF\B1\E4\C1\BFippool\r\
  206.     \n:local ippool\r\
  207.     \n#\BD\F8\C8\EB\B5\BDpppoe\B2\A6\BA\C5\BD\D3\BF\DA\CF\C2\r\
  208.     \n/interface pppoe-client\r\
  209.     \n#\B2\E9\D5\D2\B5\B1\C7\B0\BD\D3\BF\DA\CF\C2\A3\AC\B2\A6\BA\C5\CA\C7\B3\
  210.     \C9\B9\A6running\B5\C4\BD\D3\BF\DA\A3\AC\CD\AC\CA\B1\B0\D1\D5\E2\B8\F6\BD\
  211.     \D3\BF\DA\B1\E0\BA\C5\C8\A1\B3\F6\C0\B4\A3\AC\C8\A1\B5\DA9\CE\BB\B5\BD\B5\
  212.     \DA11\CE\BB\A3\AC\C6\B4\B3\C9IP\B5\D8\D6\B7172.22.22.*\A3\AC\B2\A2\B8\B4\
  213.     \D6\C6\B8\F8\B1\E4\C1\BFippool\A3\AC\D7\A2\D2\E2\D5\E2\B8\F6\B1\E4\C1\BF\
  214.     \CA\C7\CA\FD\D7\E9\r\
  215.     \n:foreach i in [find] do={:if [get \$i  running ] do={:set ippool {\$ippo\
  216.     ol . "172.22.22." . [:pick [get \$i name] 9 11] . ","}}}\r\
  217.     \n#\BD\F8\C8\EB\B5\BD/ip pool\B2\A6\BA\C5\BD\D3\BF\DA\CF\C2\r\
  218.     \n/ip pool\r\
  219.     \n#\C9\E8\D6\C3\B7\B6\CE\A7\CE\AAippool\A3\AC\D7\A2\D2\E2ippool\CA\C7\CA\
  220.     \FD\D7\E9\A3\AC\CB\F9\D2\D4\D5\E2\B1\DF\C8\A1\CA\FD\D7\E9\B5\C4\B5\DA\D2\
  221.     \BB\B8\F6\D6\B5\r\
  222.     \nset pptp ranges=[:pick \$ippool 0]\r\
  223.     \n#\B4\F2\D3\A1\B1\E4\C1\BFippool\r\
  224.     \n:log error [:pick \$ippool 0]\r\
  225.     \n:log error "ip pool set ok!!!""</font>
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|蜀ICP备17024538号-6

在本版发帖
关注公众号
QQ客服返回顶部