gfx wrote:
這script我寫過,很簡單.
在路由表新增add dst-address=8.8.4.4 gateway=4g distance=1
這樣路由器只要連接8.8.4.4 就會往4g網路連接.
但注意router內設的dns不能為8.8.4.4 ,否則4g網路一離線網路就中斷了.
接下來就指定路由器每10秒ping 8.8.4.4 三下 ,若得的值大於0
則將路由表的 dst-address=0.0.0.0/0 gateway=4g distance=2 設定啟用;
若是ping值不大於0 ,
則將路由表的 dst-address=0.0.0.0/0 gateway=4g distance=2 設定關閉.
如此而已
Hi gfx,
我設定 大於 100ms 就判定 到 google 慢將 WAN2 gateway 停用
但router 內 /ip route distance=1 dst-address=8.8.8.8/32 gateway=113.XX.XX.XX 沒有停用
但是發現 8.8.8.8 回復到 20ms 後根本沒回去
netwatch 還是 down
開了虛擬機測了一下 .....
netwatch 中 timeout=100ms 改成 timeout=10ms 會down
timeout=10ms 改回 timeout=100ms 還是永遠 down
發現到 netwatch 沒有依照 路由表的 distance=1 這規則 ??
這時route內 comment=WAN2 停用的
測試 ping 8.8.8.8 只有指定 interface 時可 ping 到 (WAN1 or WAN2 都可)
不指定時會 timeout
當 route內 comment=WAN2 啟用 後 netwatch 就會 up
測試 ping 8.8.8.8 不指定 interface 可 ping 到
不知您是否遇過 ......

設定如下 :
/ip route
add check-gateway=ping comment=WAN2 distance=20 gateway=113.XX.XX.XX routing-mark=to_wan2
add check-gateway=ping comment=WAN1 distance=30 gateway=125.XX.XX.XX routing-mark=to_wan2
add check-gateway=ping comment=WAN1 distance=20 gateway=125.XX.XX.XX routing-mark=to_wan1
add check-gateway=ping comment=WAN2 distance=30 gateway=113.XX.XX.XX routing-mark=to_wan1
add check-gateway=ping comment=WAN1_MAIN distance=5 gateway=125.XX.XX.XX
add check-gateway=ping comment=WAN2_MAIN distance=7 gateway=113.XX.XX.XX
add check-gateway=ping distance=1 dst-address=8.8.8.8/32 gateway=113.XX.XX.XX
/tool netwatch
add down-script="/ip route disable [find comment=WAN2] ;" host=8.8.8.8 interval=10s timeout=100ms up-script="/ip route enable [find comment=WAN2] ;"