用一根物理链路可以做心跳,关键是只有一根的话心跳本身又成了单点故障了,那做双机的意义就被降低了。建议:可以用一根网线和一根RS232串口线做双心跳冗余,或者2条网线连接。
防火墙HA原理:两个防火墙之间通过心跳线连接。心跳线的作用:检测对方、同步数据。在设置完主备防火墙之后,备份防火墙除了心跳线端口之外,其他所有端口都处于down状态。
端口配上IP后, 写两条默认路由ip route-static 0.0.0.0 0.0.0.0 X.X.X.X preference 60 主线
ip route-static 0.0.0.0 0.0.0.0 X.X.X.X preference 70 备用
1. 设定PPPOE拨号:接口——Wan1(右键)——PPPOE客户端普通的——名称——“pppoe-out1”——接口程序——wan1
拨出——填上adsl1的用户名和口令,勾选添加默认路由和使用同等dns。
最后按ok结束。然后设定第二条adsl,名称为"pppoe-out2",接口程序为wan2,只勾选添加默认路由。
2. 设定内网共享
(1)IP——防火墙——NAT,添加两条规则
第一条:普通的——链——(srcnat)——输出接口——(lan)将前面的方块点上!号
作用——(masquerade)
第二条:普通的——链——(srcnat)——源地址——“192.168.0.0/24”(这是内网的ip,按自己实际情况修改)
作用——(masquerade)
(2)IP——防火墙——Mangle,每条adsl添加两条规则
第一条:普通的——(forward)——协议——(6 (tcp))——接入接口——(pppoe-out1)
高级的——Tcp 标记——(syn)
作用——作用——(change MSS)——新的TCP MSS——“1440”
第二条:普通的——(forward)——协议——(6 (tcp))——输出接口——(pppoe-out1)
高级的——Tcp 标记——(syn)
作用——作用——(change MSS)——新的TCP MSS——“1440”
多条adsl以此类推。
到这一步已经可以共享上网了,不过要实现分流等功能还要继续。
3.设置ip地址
ip——地址增加两个新的地址
第一个是pppoe-out1拨号后得到的外网ip,地址、网络、广播都填这个ip,借口选(pppoe-out1),注释为1。
第二个同理,全部为pppoe-out2的ip,注释为2。
主要目的是让路由能够找到自动添加的路由网关。
4.添加路由网关
ip——路由 增加三个网关
第一个:制定:0.0.0.0/0 网关:(pppoe-out1的ip) 标志:1 注释:1
第二个:制定:0.0.0.0/0 网关:(pppoe-out2的ip) 标志:2 注释:2
第三个:制定:0.0.0.0/0 网关:(pppoe-out2的ip) 注释:2
第三个网上说是官方推荐增加的,具体原理现在不是太清楚。
5.双线负载规则
ip——防火墙——mangle 两条线就是增加四条规则,每两条为一对
第一组:第一条:普通的——链——(prerouting)——接入接口——(lan)——连接情形——(new)
附加——Nth——三个框分别是“1、1、0”
作用——作用——(mark connection)——新的连接标记——“1”
第二条:普通的——链——(prerouting)——接入接口——(lan)——连接标志——“1”
作用——作用——(mark routing)——新的路由标记——“1”
第二组:第一条:普通的——链——(prerouting)——接入接口——(lan)——连接情形——(new)
附加——Nth——三个框分别是“1、1、1”
作用——作用——(mark connection)——新的连接标记——“2”
第二条:普通的——链——(prerouting)——接入接口——(lan)——连接标志——“2”
作用——作用——(mark routing)——新的路由标记——“2”
这样就实现了双线平衡负载。
6.指定机器分流
如果要指定某些机器使用特定的线路访问外网,只要改造一下上面的规则就可以了,例如加上源地址。但是需要特别说明的是,这里的规则每一条的优先级都是一样的,而不是像防火墙过滤规则里那样是从上至下的,也就是说如果你设定的两个规则存在重复的部分,例如同样一个ip出现在两个规则里,那样就表明同时适用这两个规则,具体到底用哪个规则,就试验的情况看似会是交替其作用,所以应该尽量避免这种情况以避免不确定的事情发生。
7.自动更新网关的脚本
由于adsl拨号后ip会随即改变,这就需要定时监测ip的变化,在系统——脚本中添加下列脚本,名字这里设定为sadsl
: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=("pppoe-out" . $i)] running]
:if ($status=true) do={
:set new-address [/ip address get [/ip address find dynamic=yes interface=("pppoe-out" . $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=("pppoe-out" . $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 fir nat set [/ip fir nat find comment=$i] to-addresses=$new-address
/ip route set [/ip route find comment=$i] gateway=$new-address
}
}
}
这个脚本同样适用2线以上的情况,只要改一下x的值。
在系统——调度程序中增加一个调度程序,间隔里输入具体的间隔时间,可以根据实际情况设定,但不建议设的间隔过长,因为时间过长的话重新拨号后就要等很久才能重新上网。而间隔时间过短的话又会造成路由器不停的查询ip加重服务器负担。
确定后整个设定就完成了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)