找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 26106|回复: 11

[vpn] 想问个问题L2TP pptp等客户端如何能指定外网接口拨出

[复制链接]
发表于 2019-2-18 23:39:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
没找到相关设置,也没有找到教程。哪位大神能帮忙。
目的是想在多拨了pppoe后  多建立几条vpn到同一个服务器端,当有pppoe重拨了引起某条vpn客户端断开的时候,立刻切换到其他的vpn链路上。以保证vpn网络总是连通。
routeros
发表于 2019-11-26 14:16:36 | 显示全部楼层
本帖最后由 cspm333 于 2019-11-26 22:52 编辑

若是pptp|sstp|ovpn的話,只要用負載均衡就能控制。以sstp client為例:

/interface sstp-client
add authentication=mschap2 connect-to=vpn123.org name=sstp-out1 \
  profile=default-encryption user=123 password=123
add authentication=mschap2 connect-to=vpn123.org name=sstp-out2 \
  profile=default-encryption user=123 password=123
add authentication=mschap2 connect-to=vpn123.org name=sstp-out3 \
  profile=default-encryption user=123 password=123

/ip firewall address-list
add list=vpn123 address=vpn123.org

/ip firewall mangle
add action=mark-routing chain=output dst-address-list=vpn123 dst-port=443 \
  protocol=tcp new-routing-mark=pppoe1 per-connection-classifier=src-port:3/0
add action=mark-routing chain=output dst-address-list=vpn123 dst-port=443 \
  protocol=tcp new-routing-mark=pppoe2 per-connection-classifier=src-port:3/1
add action=mark-routing chain=output dst-address-list=vpn123 dst-port=443 \
  protocol=tcp new-routing-mark=pppoe3 per-connection-classifier=src-port:3/2

/ip route
add distance=1 gateway=pppoe-out1 routing-mark=pppoe1
add distance=1 gateway=pppoe-out2 routing-mark=pppoe2
add distance=1 gateway=pppoe-out3 routing-mark=pppoe3

/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe-out1
add action=masquerade chain=srcnat out-interface=pppoe-out2
add action=masquerade chain=srcnat out-interface=pppoe-out3
---------------------------------
難搞的是l2tp,
原因是本地與對端的port號都不會因重新撥號變換,無法透過負載均衡的方式,
需要透過script修改策略標記才行。

/interface l2tp-client
add connect-to=vpn123.org ipsec-secret=123 name=l2tp-out1 \
  profile=default-encryption use-ipsec=yes user=123 password=123
add connect-to=vpn123.org ipsec-secret=123 name=l2tp-out2 \
  profile=default-encryption use-ipsec=yes user=123 password=123
add connect-to=vpn123.org ipsec-secret=123 name=l2tp-out3 \
  profile=default-encryption use-ipsec=yes user=123 password=123

/ip firewall address-list
add list=vpn123 address=vpn123.org

/ip firewall mangle
add action=mark-routing chain=output dst-address-list=vpn123 \
  protocol=udp dst-port=1701,500,4500 new-routing-mark=pppoe1

/ip route
add distance=1 gateway=pppoe-out1 routing-mark=pppoe1
add distance=1 gateway=pppoe-out2 routing-mark=pppoe2
add distance=1 gateway=pppoe-out3 routing-mark=pppoe3

/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe-out1
add action=masquerade chain=srcnat out-interface=pppoe-out2
add action=masquerade chain=srcnat out-interface=pppoe-out3

/system scheduler
add interval=20s name=vpn123 start-date=nov/26/2019 start-time=00:00:00 \
  policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
  on-event=":local sec [:pick [/system clock get time] 6 8]\r\
    \n\r\
    \n:local sw1 (![/interface get l2tp-out1 disabled])\r\
    \n:local sw2 (![/interface get l2tp-out2 disabled])\r\
    \n:local sw3 (![/interface get l2tp-out3 disabled])\r\
    \n\r\
    \n:local sw1r [/interface get l2tp-out1 running]\r\
    \n:local sw2r [/interface get l2tp-out2 running]\r\
    \n:local sw3r [/interface get l2tp-out3 running]\r\
    \n\r\
    \n:local id [/ip firewall mangle find chain=output dst-address-list=vpn123]\r\
    \n\r\
    \n:if (!\$sw1r && \$sec<20) do={\r\
    \n :if (!\$sw1) do={/interface enable l2tp-out1}\r\
    \n :if (!\$sw2r && \$sw2) do={/interface disable l2tp-out2}\r\
    \n :if (!\$sw3r && \$sw3) do={/interface disable l2tp-out3}\r\
    \n /ip firewall mangle set \$id new-routing-mark=\"pppoe1\"\r\
    \n}\r\
    \n\r\
    \n:if (!\$sw2r && \$sec>19 && \$sec<40) do={\r\
    \n :if (!\$sw1r && \$sw1) do={/interface disable l2tp-out1}\r\
    \n :if (!\$sw2) do={/interface enable l2tp-out2}\r\
    \n :if (!\$sw3r && \$sw3) do={/interface disable l2tp-out3}\r\
    \n /ip firewall mangle set \$id new-routing-mark=\"pppoe2\"\r\
    \n}\r\
    \n\r\
    \n:if (!\$sw3r && \$sec>39) do={\r\
    \n :if (!\$sw1r && \$sw1) do={/interface disable l2tp-out1}\r\
    \n :if (!\$sw2r && \$sw2) do={/interface disable l2tp-out2}\r\
    \n :if (!\$sw3) do={/interface enable l2tp-out3}\r\
    \n /ip firewall mangle set \$id new-routing-mark=\"pppoe3\"\r\
    \n}\r\
    \n"

点评

赞  发表于 2019-11-26 17:51
routeros
回复 1 0

使用道具 举报

发表于 2019-2-19 11:09:15 | 显示全部楼层
pppoe撥號與l2tp,pptp撥號都會有add default route的勾選方框.
當勾選add default route後 ,會發覺旁邊的distance欄可以填數字...

distance即路由的優先順序,數字越小的越優先.

所以假設您有5個pptp撥號:
您只要pptp撥號distance分別填寫1,2,3,4,5 ,pppoe填寫6
系統則會以pptp(distance:1)為優先,若是它出現問題系統則會改以pptp(distance:2)次之...依序類推.
最糟的情況即5個pptp全掛了,系統以pppoe(distance:6)做壓軸救援,就這樣~


routeros
回复

使用道具 举报

 楼主| 发表于 2019-11-9 10:40:29 | 显示全部楼层
我是想让pptp1 从PPPoe1拨出去
pptp2 从pppoe2拨出去   
   
routeros
回复

使用道具 举报

发表于 2019-11-9 16:17:56 | 显示全部楼层
目标 策略路由
routeros
回复

使用道具 举报

发表于 2019-11-26 12:22:47 | 显示全部楼层
各位大神有懂的说一声。。。想知道如何搞定的。
routeros
回复

使用道具 举报

发表于 2020-3-30 02:49:40 | 显示全部楼层
cspm333 发表于 2019-11-26 14:16
若是pptp|sstp|ovpn的話,只要用負載均衡就能控制。以sstp client為例:

/interface sstp-client

太好了。。可以用了。。感谢大佬!!!
routeros
回复

使用道具 举报

发表于 2021-6-21 20:34:06 | 显示全部楼层
cspm333 发表于 2019-11-26 14:16
若是pptp|sstp|ovpn的話,只要用負載均衡就能控制。以sstp client為例:

/interface sstp-client

大神,能不能解释下对于L2TP,使用脚本切换,然后修改路由标记的原理,这样做,内网从VPN走的流量会不会出现中断?
routeros
回复

使用道具 举报

发表于 2021-6-28 21:42:31 | 显示全部楼层
本帖最后由 cspm333 于 2021-6-28 21:55 编辑
e_zhangiso 发表于 2021-6-21 20:34
大神,能不能解释下对于L2TP,使用脚本切换,然后修改路由标记的原理,这样做,内网从VPN走的流量会不会出 ...
之前的script是l2tp撥號搭時間控制,限制循環內前幾秒是用pppoe-out1撥l2tp-out1,
再來是pppoe-out2撥l2tp-out2,再來是...依序控制。

但是過去式了,現在l2tp可以指定pppoe-out撥號,毋需用這麼不人性的方法控制。
2021-06-28 21-20-12 的螢幕擷圖.png 把pppoe-out的地址填上去就好。

src-address只能填ip,若pppoe-ip是浮動的怎麼辦?
如:pppoe-out1,為他新增一個profile1。拷貝default即可,然後修改profile1的on-up欄:
2021-06-28 21-30-34 的螢幕擷圖.png

然後pppoe-out1的profile就套用剛新增的profile1:
2021-06-28 21-32-45 的螢幕擷圖.png

日後只要pppoe-out1每完成撥號,就會順便修改l2tp-out1。完美。
至於l2tp-out2套pppoe-out2,l2tp-out3套pppoe-out3...依樣畫葫蘆即可。
routeros
回复

使用道具 举报

发表于 2021-6-28 22:41:38 | 显示全部楼层
cspm333 发表于 2021-6-28 21:42
之前的script是l2tp撥號搭時間控制,限制循環內前幾秒是用pppoe-out1撥l2tp-out1,
再來是pppoe-out2撥l2tp ...

太好了,精彩!!
routeros
回复

使用道具 举报

发表于 2023-1-17 07:02:35 来自手机 | 显示全部楼层
为之经典  经久不衰 ????????
routeros
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-21 19:57 , Processed in 0.086009 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表