http://www.txwb.com/Article/serverHelp/wljs/200812/27163.html
ROS雙線ADSL不同網關按網段分流
設置參考圖1:
撥號成功後,PPPOE會自動添加IP地址和網關,我們要做的就是,手動再添加一次這些地址,以配合腳本。
手動添加2個和PPP自動添加出來一樣的IP,並標記爲1和2,1爲ADSL1的IP,2爲ADSL2的IP:
綠色代表我們添加時取的數字,紅框代表的是我們添加的內容,說簡單點,就是複製一份自動分配得來的IP地址,然後做個標記
位置winbox-ip-addresses
設置如圖2
下面是手動添加2個和PPP自動添加出來一樣的router(稱作外網網關),並標記爲1和2,1爲ADSL1的外網網關,2爲ADSL2的外網網關:
黑色代表我們添加時取的數字,紅框代表的是我們添加的內容,說簡單點,就是複製一份自動分配得來的外網網關,然後做個標記
位置winbox-ip-routes
設置如圖3
添加完畢後,打開winbox-new terminal,複製下面的腳本,在終端上點右鍵,選paste
1.添加IP地址僞裝
/ ip firewall nat
add chain=srcnat action=masquerade comment="" disabled=no
2.添加網段分流腳本,請手動修改紅色部分
紅色部分代表了192.168.1.1-192.168.1.120用ADSL1,192.168.1.121-192.168.1.240用ADSL1
修改完畢後,複製修改後的內容,在終端上paste
/ ip firewall mangle
add chain=prerouting src-address=192.168.1.1-192.168.1.120 action=mark-routing new-routing-mark=1 passthrough=yes /
comment="" disabled=no
add chain=prerouting src-address=192.168.1.121-192.168.1.240 action=mark-routing new-routing-mark=2 passthrough=yes /
comment="" disabled=no
add chain=postrouting protocol=tcp tcp-flags=syn action=change-mss new-mss=1400 comment="" disabled=no
3.添加ADSL掉線後自動添加新IP和網關腳本
位置winbox-system-script 點“+ ”號,改name爲script,然後複製下面的腳本到source裏,添加完畢後效果如圖4
:local assign-address
:local new-address
:local status
:local x
:set x 2
:for i from=1 to=$x do={
:set status [/interface get [/interface find name=("ADSL" . $i)] running]
:if ($status=true) do={
:set new-address [/ip address get [/ip address find dynamic=yes interface=("ADSL" . $i)] address]
:set new-address [:pick $new-address 0 ([:len $new-address] -3)]
:set assign-address [/ip address get [/ip address find dynamic=no interface=("ADSL" . $i)] address]
:set assign-address [:pick $assign-address 0 ([:len $assign-address] -3)]
:if ($assign-address != $new-address) do={ /ip address set [/ip address find comment=$i] address=$new-address network=$new-address broadcast=$new-address
/ip route set [/ip route find comment=$i] gateway=$new-address
/ip route set [/ip route find comment=$i] gateway=$new-address
}
}
}
4.添加腳本計劃任務
10秒鐘運行一次script腳本,就是上面那個,來防掉線!!
/ system scheduler
add name="task" on-EVEnt=script start-date=jan/01/1970 start-time=00:00:00 interval=10s comment="" /
disabled=no