返回列表 發帖
我覺得script放在dhcp-client advanced欄應該會更好.
ether1不但不會閒置,還可以強制更新與上次不同的地址,並每天固定的時間定時重撥.

假設制定每日5點進行重撥:
  1. :local arm 5:0:0

  2. :local time [/system clock get time]
  3. :global past ; :local public
  4. :if ($bound=1) do={
  5. :set public [/ip dhcp-c get [find interface=ether1] address]
  6. :set public [:pick $public 0 [:find $public "/"]]

  7. :if ($public!=$past) do={
  8.    :set past $public
  9.    :if ($time>=$arm) do={:delay (1d-$time+$arm)} else={:delay ($arm-$time)}
  10. }
  11. /ip dhcp-client release [find interface=ether1] ; :delay 3s
  12. }
複製代碼
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

经过测试确实可以用,谢谢CHing。

从[1]里的信息,都有类似师兄的script来源:.

Ref:
[1]  ...
角色 發表於 2018-10-19 07:54

其實兩script邏輯差異是很大的...
小弟準備的script整個架構主在目前連線後,隨即準備下次取得新ip的動作.
但在取得下次新ip的時間,用delay這個參數做間隔.

若與上次的ip不同,就delay方式故意延遲到指定的凌晨時段再完成換ip的作業;
若與上次ip同 ,就沒有故意delay延遲的問題 ,直接讓script完成換新ip的工作.

TOP

回復  gfx86674

CHing, 从图上开的default route distance = 5,而我是 = 1,是否 = 5有别的用途呢? ...
角色 發表於 2018-10-19 11:42

若您有勾選add default route ,distance才可以輸入數字.

若您沒有勾選,您就需在/ip route新增dst-address=0.0.0.0/0 gateway=ether1
若有勾選,就無需手動新增,讓系統在/ip route自動生成.
dst-address=0.0.0.0/0代表連接任何一個ip ,都要先往ether1(gateway)查詢.

而distance代表順位,數字越大代表排續越後面.

所以今日我有兩個wan ,我不希望1.1.1.1往ether1查詢 ,我只要在/ip route設:
dst-address=1.1.1.1/32 gateway=ether2 distance=2
distance 2>5 ,所以只要在路由表控制不需做policy route ,即可讓1.1.1.1往ether2 ;

但如果dst-address=0.0.0.0/0 gateway=ether1 distance=1
distance 1>2 ,即使路由表標示1.1.1.1往ether2 ,最終也是會往ether1去.

所以通常0.0.0.0/0的distance都盡量不要設太優先,也就是不要設0或1 ,
這樣我們才有操控地址gateway的空間...
像windows的路由表,dst-address=0.0.0.0/0 metric(與distance同義)都常不會太小,都是100起跳.
而route我只用到5,這已經算很保守的操作了.

TOP

返回列表