返回列表 發帖

[VPN] 黑貓VPN pptp-client的pcc,並搭配Script修正!

本帖最後由 gfx86674 於 2015-1-13 19:01 編輯

小弟試做二個黑貓VPN pptp-client的pcc,並搭配Script做修正!
有興趣可以參考:


二個黑貓VPN帳號 pptp-client /route /nat /mangle設定:


二條pptp-client做pcc ,怕的是其中一個斷線,均分會出問題.
斷線的流量會分到default route ,而非另一個pptp-client遞補..

且斷線的pptp-client會不斷的重新連線 ,若伺服器掛點
必造成log不斷的被pptp-client重新連線資訊給洗版.

所以搭配腳本修正,
若其中一條pptp-client斷線便自動修正成單線負載.
斷線的pptp-client會自動關閉,定時透過ping來測試伺服器反應.
等伺服器有回應時再重新嘗試連接.
等pptp-client上線後,待腳本恢復原本的pcc負載即可.

目前黑貓是屬於斷網的狀態,所有的VPN設定將被腳本干預全部關閉.
就算您手動enable部份功能,下一秒也會被腳本disable

本帖最後由 gfx86674 於 2015-1-4 12:48 編輯

v6.24
要在new terminal視窗宣告:local 前,
第一行要先執行 "{"這個符號代表開始,最後一行輸入 "}"代表結束.

所以在terminal視窗run腳本要這麼做:


若是將Script存到排程,腳本開始的"{" 與尾端的"}"可以忽略.
但請依官網指示在尾端加2行空白行.

TOP

本帖最後由 gfx86674 於 2015-1-2 22:13 編輯

把Script貼到排程去,設定每次循環的時間就可以上工了


如前所述Script頭尾不用再補上"{"與"}" ,但最後要加兩行空白行.

TOP

本帖最後由 gfx86674 於 2015-1-4 01:48 編輯

與一樓同,但改用迴圈編譯.
參數是從address-list抓取衍生.

因不像一樓名稱與地址是手動直接給的,
所以每次循環都要重新搜尋值,導致路由器執行腳本時CPU負載偏高.

從另一面來看,或許是Mikrotik RB450G該汰換升級了

TOP

本帖最後由 gfx86674 於 2015-1-13 18:09 編輯
有没有其他VPN 例如SSTP的自动更新Script.
yiucsw 發表於 2015-1-13 17:25

自動從address-list挑選筑波大學的SSTP-Server, 若是伺服器無法使用休息2小時後再重新連接.

TOP

回復  gfx86674

在中国移动宽带,PPTP 被block. 所有只能用其他。SSTP/openvpn 等。现在试SSTP。 ...
yiucsw 發表於 2015-1-13 19:06

若要引用我編輯的腳本,先注意名稱與Script對應的內容!!



圈起來的24 28 代表抓取address-list註解內的24~28符號 ,
也就是sstp-vpn port號.

若您的環境不同 ,部份內容也要跟著做修正!!

TOP

回復 12# yiucsw
前幾天小弟用兩台Rb450g的GRE功能建site to site,很讚

只要設定interface/address/route/nat就好,很容易。
不會像pptp/l2tp/sstp/ovpn 這些site to sito建立後,除route/nat外,
sever to client還得需編寫script自動修改nat腳本。

免得vpn斷線重接的過程,server這邊nat的out-interface會從原本設定的名稱,變為unknow發生錯誤。

TOP

本帖最後由 gfx86674 於 2015-2-2 01:04 編輯
回復  gfx86674

我发现SSTP Dynamic interface 常常自动启动。所有的Firewall Rule 变得有问题。


想自 ...
yiucsw 發表於 2015-1-31 17:18

您這何需用到Script ?
會出現<sstp-hksstp> 代表遠端連進您本地的hksstp帳號 ,
您把hksstp帳號給關了遠端自然連不進來,自然不會有<sstp-hksstp>

另外srcipt的:if ()是判斷true 才會run do={}
像running的真/否 本身即true/false.
所以:if ([/interface sstp-server get [find name="<sstp-hksstp>"] running]=true) \
do=(/interface sstp-server disable [find name="<sstp-hksstp>"])
語法是正確的,但您可以省略 running]=true ,直接
:if ([/interface sstp-server get [find name="<sstp-hksstp>"] running]) \
do=(........)
即可.

假如是希望running]=false
:if (![/interface sstp-server get [find name="<sstp-hksstp>"] running]) \
do=(........)

前面加個"!"就可以了

TOP

本帖最後由 gfx86674 於 2015-2-2 11:57 編輯
回復  gfx86674

hksstp 是Static/Dynamic sstp 帐号。 不知道如何只删掉动态的帐号? ...
yiucsw 發表於 2015-2-2 08:55

那有所謂的固定/浮動帳號?
出現<名稱>這是別人透過你開放的sstp帳號進入Route主機的,
只要你關閉帳號或變更密碼,對方進得了主機嗎?

TOP

本帖最後由 gfx86674 於 2015-6-29 10:42 編輯
刚上多一条Broadband (中国电信)线。现在是一条中国移动宽带(ADSL)加一条中国电信(ADSL)。在RB如何Set ...
yiucsw 發表於 2015-6-29 06:41

在設定之前您要思考中國移動寬帶 與中國電信 這兩個通道,
只允許一個從外面進入,還是兩個都開放?
如VPN連入,是開放中國移動寬帶 當入口;還是中國電信 ? 還是兩者皆可?

連接ADSL所設置PPPoE,算是PPP工具的一份子.
所以等於Router內有三個連線隧道,分別是 中國移動寬帶/中國電信/sstp
不曉得您做LoadBalance時 ,是只考慮 中國移動寬帶/中國電信 ;還是把sstp也納進去?

另外您有開放web-proxy給外地用戶使用嗎?
若沒開放,您只需做內部DHCP用戶的LoadBalance即可;

若有使用web-proxy ,則LoadBalance還必需考量Router ,
這樣web-proxy用戶連接時 ,Router才會做LoadBalance .

或許您會問為何LoadBalance需區分DHCP用戶與Router ??
這與路由判斷有關:


您從圖表中看到封包進入,從第一次路由判斷後被區分成路徑A 與路徑B.
DHCP用戶即路徑B ,Router即路徑A ...所以這兩個規劃是不同的.

平常用戶只需做路徑B即可看到LoadBalance的效果 ;

但使用web-proxy時,因為是Router先連接處理,再將封包轉送代理用戶.
所以這時您就必須思考除DHCP用戶外 ,路徑A (Router)是否也得做LoadBalance.
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

本帖最後由 gfx86674 於 2015-6-30 02:23 編輯
回復  yiucsw
1)DNS/HTTP - 中國移動Block太多DNS,HTTP 地址。
2)不穩定,在本地都常常斷線。
3)中國移動,PPOE連到RB
4)SSTP 是打出
yiucsw 發表於 2015-6-29 17:35



1)firewall filter過濾:
udp port:53
/ip firewall filter
add action=drop chain=input  dst-port=53 protocol=udp  src-address-list=!All-Lan

tcp port:80
/ip firewall filter
add action=drop chain=input  dst-port=80 protocol=tcp src-address-list=!All-Lan
add action=drop chain=forward  dst-port=80 protocol=tcp src-address-list=!All-Lan

2)透過1 ,問題即迎刃而解.

3 )
PPPoE:

中國移動全不勾選 ;中國電信 "只勾選Use Peer DNS"

/ip dhcp-server network


/ip route 新增:


/ip dns

完成後將是以中國移動為主的路由 ;DNS則是使用中國電信

4)若3是使用中國移動為第一路由 ,SSTP則當然是用中國移動撥出 ;
若是用中國電信 ,則自然由中國電信撥出
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

回復  gfx86674

主要是用Netwatch 看看SSTP的Server 是不是能Ping到。要是不能Ping到,而SSTP-Client 是r ...
yiucsw 發表於 2016-4-11 23:46
修正:
  1. ## reset sstp client down
  2. :if (![/interface sstp-client get [find name=hksstp-out1] running] \
  3.          && ![/interface sstp-client get [find name=nowsstp-out1] running]) \
  4.     do={
  5.            :delay 1m
  6.            :if (![/interface sstp-client get [find name=hksstp-out1] running] \
  7.                     && ![/interface sstp-client get [find name=nowsstp-out1] running]) \
  8.                do={
  9.                       /system reboot
  10.                      } \
  11.                else={
  12.                         /interface sstp-client disable [find running=no]
  13.                         /interface sstp-client enable [find running=no]
  14.                        }
  15.           }\
  16.     else={
  17.              /interface sstp-client disable [find running=no]
  18.              /interface sstp-client enable [find running=no]
  19.             }
複製代碼

TOP

本帖最後由 gfx86674 於 2016-4-14 09:52 編輯
回復  gfx86674

有点逻辑的问题。在中国PPPOE启动慢,SSTP 没有办法Resolve name. 有什么办法解决?
01:2 ...
yiucsw 發表於 2016-4-13 08:49
外圍再加一層pppoe-out1判斷,等pppoe-out1上線後,script才開始.
  1. :if ([/interface pppoe-client get [find name=pppoe-out1] running]) \
  2.     do={
  3.         ## reset sstp client down
  4.         :if (![/interface sstp-client get [find name=hksstp-out1] running] \
  5.              && ![/interface sstp-client get [find name=nowsstp-out1] running]) \
  6.             do={
  7.                 :delay 1m
  8.                 :if (![/interface sstp-client get [find name=hksstp-out1] running] \
  9.                       && ![/interface sstp-client get [find name=nowsstp-out1] running]) \
  10.                     do={
  11.                         /system reboot
  12.                        } \
  13.                     else={
  14.                           /interface sstp-client disable [find running=no]
  15.                           /interface sstp-client enable [find running=no]
  16.                          }
  17.                }\
  18.             else={
  19.                   /interface sstp-client disable [find running=no]
  20.                   /interface sstp-client enable [find running=no]
  21.                  }
  22.        }
複製代碼

TOP

pptp-client 是 pppoe-client ?
yiucsw 發表於 2016-4-14 09:36
打錯字了,是pppoe-client
已更正~

TOP

返回列表