v808comd 发表于 2019-2-18 23:39:20

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

没找到相关设置,也没有找到教程。哪位大神能帮忙。
目的是想在多拨了pppoe后多建立几条vpn到同一个服务器端,当有pppoe重拨了引起某条vpn客户端断开的时候,立刻切换到其他的vpn链路上。以保证vpn网络总是连通。

cspm333 发表于 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 6 8]\r\
    \n\r\
    \n:local sw1 (!)\r\
    \n:local sw2 (!)\r\
    \n:local sw3 (!)\r\
    \n\r\
    \n:local sw1r \r\
    \n:local sw2r \r\
    \n:local sw3r \r\
    \n\r\
    \n:local id \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"

cspm333 发表于 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)做壓軸救援,就這樣~


v808comd 发表于 2019-11-9 10:40:29

我是想让pptp1 从PPPoe1拨出去
pptp2 从pppoe2拨出去   
   

xuxi3201 发表于 2019-11-9 16:17:56

目标 策略路由

hainanmm 发表于 2019-11-26 12:22:47

各位大神有懂的说一声。。。想知道如何搞定的。

hainanmm 发表于 2020-3-30 02:49:40

cspm333 发表于 2019-11-26 14:16
若是pptp|sstp|ovpn的話,只要用負載均衡就能控制。以sstp client為例:

/interface sstp-client


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

e_zhangiso 发表于 2021-6-21 20:34:06

cspm333 发表于 2019-11-26 14:16
若是pptp|sstp|ovpn的話,只要用負載均衡就能控制。以sstp client為例:

/interface sstp-client


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

cspm333 发表于 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撥號,毋需用這麼不人性的方法控制。
把pppoe-out的地址填上去就好。

src-address只能填ip,若pppoe-ip是浮動的怎麼辦?
如:pppoe-out1,為他新增一個profile1。拷貝default即可,然後修改profile1的on-up欄:


然後pppoe-out1的profile就套用剛新增的profile1:


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

e_zhangiso 发表于 2021-6-28 22:41:38

cspm333 发表于 2021-6-28 21:42
之前的script是l2tp撥號搭時間控制,限制循環內前幾秒是用pppoe-out1撥l2tp-out1,
再來是pppoe-out2撥l2tp ...

太好了,精彩!!

小白充大神 发表于 2023-1-17 07:02:35

为之经典经久不衰 ????????
页: [1]
查看完整版本: 想问个问题L2TP pptp等客户端如何能指定外网接口拨出