转帖 RouterOS 2.9x根据源地址分配网关,以及断线再连
[原创]转载请说明。本文收到了软件路由论坛RouterOS的版主bow的帮助,在此致谢
根据源地址分配网关,以及断线再连
先设定好内网IP lan,两个网外IP wan1 和 wan2
在这个例子里面,wan1=61.32.72.x,wan2=61.32.70.x
ip-firewall ,打开snat的msquate.
先给两个网段的包打上 mark-routing
ip firewall mangle> add src-address=192.168.0.0/25 action=mark-routing new-routing-mark=net1 chain=prerouting
ip firewall mangle> add src-address=192.168.0.128/25 action=mark-routing new-routing-mark=net2 chain=prerouting
然后添加网关
#符合net1则走61.32.72.x
ip route> add gateway=61.32.72.x(电信网关,不是自己的外网IP) routing-mark=net1 check-gateway=ping comment '1'
#符合net2则走61.32.70.x
ip route> add gateway=61.32.70.x(电信网关,不是自己的外网IP) routing-mark=net2 check-gateway=ping comment '2'
#符合net1则走61.32.70.x(备用)
ip route> add gateway=61.32.70.x routing-mark=net1 check-gateway=ping comment '3'
#符合net2则走61.32.72.x(备用)
ip route> add gateway=61.32.72.x routing-mark=net2 check-gateway=ping comment '4'
#否则走61.32.72.x
ip route> add gateway=61.32.70.x comment '5'
#否则走61.32.70.x(备用)
ip route> add gateway=61.32.72.x comment '6'
ip-route里面禁用'3' '4' '6' 这三条规则
此时网络应该完全工作正常
system-script 建四个脚本
wan1down内容是:
ip route disable '1'
ip route enable '3'
ip route disable '5'
ip route enable '6'
wan1up
ip route disable '3'
ip route enable '1'
ip route disable '6'
ip route enable '5'
wan2down
ip route disable '2'
ip route enable '4'
wan1up
ip route disable '4'
ip route enable '2'
在tools-netwatch,建一条ping 61.32.72.x,
up里面输入wan1up
down里面输入wan1down
在tools-netwatch,建一条ping 61.32.70.x,
up里面输入wan2up
down里面输入wan2down
为了防止偶尔的掉包导致频繁的更换线路,可以将timeout设置的大一些
测试的频率可以调为每30秒扫描一次 做的过于复杂了.根本用不着脚本. 是不是2.9以后的版本都能自动检测,不需要脚本? 原帖由 大锅头 于 2006-9-14 10:29 发表
是不是2.9以后的版本都能自动检测,不需要脚本?
可以这样做:先根据源地址做routemark 然后在网关里添加跟你的1,2步一样,用ping检测
然后只需要做你的5,6步,但是要加上一个distance,主线用0 .备线用1,用ping检测
这样如果两条线都是对的.就根据源地址各走各的..如果一条线出问题了.就会用另一条好的线路走~ 谢谢 原帖由 大锅头 于 2006-9-14 10:38 发表
谢谢
现在难得有几个人出来交流了..你明白我说的意思没有?? 原帖由 casper2000 于 2006-9-14 10:35 发表
可以这样做:先根据源地址做routemark 然后在网关里添加跟你的1,2步一样,用ping检测
然后只需要做你的5,6步,但是要加上一个distance,主线用0 .备线用1,用ping检测
这样如果两条线都是对的.就根据源地址各走 ...
想问一下distance是什么意思,具体的使用含义是什么?谢谢 原帖由 专卖精品 于 2006-9-14 10:44 发表
想问一下distance是什么意思,具体的使用含义是什么?谢谢
从字面翻译是距离.. 对 原帖由 casper2000 于 2006-9-14 10:47 发表
从字面翻译是距离..
字面翻译是知道的,但是0和1到底有什么区别?你说必须主的是0,备份的是1,那是否表示0的近,1的远呢?就象TTL一样 原帖由 专卖精品 于 2006-9-14 10:52 发表
字面翻译是知道的,但是0和1到底有什么区别?你说必须主的是0,备份的是1,那是否表示0的近,1的远呢?就象TTL一样
不是必须..随意了.反正是让一条线路优先.. 原帖由 casper2000 于 2006-9-14 10:53 发表
不是必须..随意了.反正是让一条线路优先..
数字代表优先?那我查查说明书,看看这个参数的含义,谢谢了 distance (integer: 0..255) - administrative distance of the route. When forwarding a packet, the router will use the route with the lowest administrative distance and reachable gateway
直译的意思是:路由的管理距离。当转发1个数据包时,路由器将用用最低的管理距离和可获得的网关进行路由!
页:
[1]