用routeros做双PPPoE的源策略路由教程
首先添加PPPoE拨号
添加时要注意,要将Add Default Route 前面的√去掉,然后手动添加网关到路由表。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
如果补√上那里,我怎么知道网关是多少呢??
打开IP→Address
screen.width*0.7)
{this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
Network的值就是网关了
把两个都加到路由表,加入后会发现有一个是工作的,这个后面再解决,现在先设置好能让内网可以上网。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
加地址伪装
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0 resized=\"true\">
改MSS值
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0 resized=\"true\">
设置DNS代理(可设可不设,不设时客户机的DNS设置为外网的DNS,如果设了就也可用ROS的内网地址)
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或
缩小';}\" border=0>
重点来了
再Firewall下的Mangle加相应的规则,让指定的端口或IP或端口跟IP走特定的网关出外网
也就时本帖的重点:分流(源策略)
先添加一个IP,限定从Routing Mark为AD1的网关出外网
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
这里有点要注意的:规则的顺序要对。凡是Mark Routing 的要放再上面
这里还将路由表中对应的网关也修改一下,增加Routing Mark值(跟上面一一对应、加了Routing Mark两个网关都工作了)
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
下面这个图时没有加Mark Routing规则和Routing Mark值的路由跟踪结果
screen.width*0.7)
{this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
下面这个是加了规则的
screen.width*0.7)
{this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
同样的目标,路由就不一样了。(主要看第二个节点的值)
那么我想对应端口呢,怎么样弄呢?
那就在Mangle下加对应端口的规则
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
后面Action跟上面的一样!
下面是脚本跟Netwatch (对应的是上面只有一个网关带Routing Mark的)
Netwatch
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
screen.width*0.7) {this.resized=true;
this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
只加一个Netwatch就可以了,为什么ADSL1不用加呢??
这是因为当带有Routing Mark的网关不工作了,所有的路由都会跑到默认路由的
反过来,默认路由Down了,但没被Mark的路由由于不带有Mark,所以不能从带
有Routing Mark的网关出去。
screen.width*0.7)
{this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\\nCTRL+鼠标滚轮放大或缩小';}\" border=0>
AD2_Down
/ip route set [/ip route find gateway=61.140.190.29] disable=yes
;将默认路由关闭
/ip route unset [/ip route find gateway=192.188.189.1] routing-mark
去掉Routing Mark,让其变为默认路由
AD2_Up
/ip route set [/ip route find gateway=192.188.189.1] routing-mark=AD1
;先添加对应网关的Routing Mark
/ip route set [/ip route find gateway=61.140.190.29] disable=no
;再将默认路由打开
最后要说说这个源策略的弊端(暂时知道的,如果你发现更多,说来大家共享)
如果使用了源端口策略,会导致从外网管理ROS时只能用默认路由的IP进去管理
还有如果内网有一些服务器,并Mangle中有些规则跟这个服务器的服务端口一样(比如:ftp服务器,20/21端口)被Mark了,这样就需要在Mangle中增加规则,避开原来的规则,走回正常的路由。
因篇幅问题不能全部显示,请点此查看更多更全内容