建立PPP拨号,把其中一条拨号名命名为ADSL1,另一个命明为ADSL2,首先等待拨号成功。
设置参考图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
做到这里基本算是结束了,限速,绑ARP之类的脚本,网上大把,这里就不说了!