此苹果非彼苹果
« »
2011 年 09 月 01 日LA/NMP

RouterOS v5.6下采用NTH模式配置ADSL双线负载均衡

在写这篇文章之前,我想强烈BS一下网络信息的胡乱采集COPY,因为这个制造了大量的字节垃圾,信息不是过时,而是根本原帖就是有问题的,而各个小网站就不负责任的COPY一份,揩百度的油,占点流量的小便宜,实在太没意义了。

好了,牢骚发完,正文开始。

前两天公司买了两台MikroTik的ROS路由器,这两天尝试配置了一下,不算很顺利。现在网能通了,双线负载平衡了,本篇就算这一段落的一点经验总结吧。

其实在采取买ROS路由硬件设备之前,我们尝试过两种方案了,一种是使用BUFFALO无线路由 Air Station刷了Tomato DualWan做双线捆绑,但是用了没几天,偶尔会死机,难道是用的人太多了(大概用网高峰时20人左右),扛不住?反正机身是挺热的,后来发现其中一条线偶尔会出现“线路故障”状态,没办法又换了另一个方案,在虚拟机上装了pfsense系统来做三线捆绑(2AD+1海泰小区宽带),用了大概有一个多月无任何问题,但是前两天发现用来监控网络连接情况的monitor突然出现offline情况,以前也是偶尔会有,重新换个IP监控就会好,这次怎么也不行了,换完,好没有两分钟就down掉了,这让我很是挠头,网络干脆罢工了,怎么得了。正在考虑其它硬件设备的时候,也真是碰巧在v2ex上看到了有网友玩了个强大的路由,然后就搞了两台RB450G来。

接下来就是遇到的问题了,最开始将LAN口安排在WAN1口上了,配置完发现这口接上分配不到IP。开始的时候用winbox通过WAN1口连接,是查找不到可用的MAC和IP的,后来发现里面fire wall里对1口有个规则给drop了。后来调整了一个安排,将WAN5做LAN,WAN2连ADSL1,WAN3连ADSL2,1、4暂时空闲,后面再配置让它连海泰小区宽带吧。

开始前准备的工具:winbox,笔记本+一根网线,直连WAN5口,启动winbox

连接好之后,就能看到所有想要改的东西了。
首先看interface里,我对各个网口重新规则了一下,加上了注释标记。

将原来的ether1-local形式的名称改了一下,以方便后面配置的时候清楚的知道选的是干什么用的网口。
现在要加两个用来拨号的客户端

第二条宽带也这样加,选ADSL2网口,user填第二条宽带的电话号码和密码,加完之后在interface里能看到

下面开始去给fire wall加一些规则,采用命令来操作吧,比较方便快捷。
注:这里ADSL双线采用的NTH模式实现负载平衡,还有一种是PCC的负载均衡,如果环境允许,你可以考虑尝试一下

提前了解一下命令行操作方法,在winbox里左侧找到“New Terminal”点开,熟悉linux操作的应该都懂得。
然后开始运行下面的命令吧。一行一行的操作哦~~~

注:192.168.8.0是我用的网段,你可以改成你想用的。/ 相当于linux里的cd

/ip firewall mangle
add action=mark-connection chain=prerouting comment=nth_1 connection-state=new disabled=no new-connection-mark=nth_1 nth=2,1 passthrough=yes src-address=192.168.8.0/24
add action=mark-routing chain=prerouting comment=”” connection-mark=nth_1 disabled=no new-routing-mark=routing_1 passthrough=no src-address=192.168.8.0/24

add action=mark-connection chain=prerouting comment=nth_2 connection-state=new disabled=no new-connection-mark=nth_2 passthrough=yes src-address=192.168.8.0/24
add action=mark-routing chain=prerouting comment=”” connection-mark=nth_2 disabled=no new-routing-mark=routing_2 passthrough=no src-address=192.168.8.0/24

/ip firewall nat
add action=masquerade chain=srcnat comment=1 connection-mark=nth_1 disabled=no out-interface=pppoe-out1
add action=masquerade chain=srcnat comment=2 connection-mark=nth_2 disabled=no out-interface=pppoe-out2
add action=masquerade chain=srcnat comment=nat disabled=no

/ip route
add comment=”1″ disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1 routing-mark=routing_1
add comment=”2″ disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out2 routing-mark=routing_2

注意上面route里的comment的设置,在后面运行监控脚本时要用到
运行完可以看到fire wall里的几项发生了变化,如图。

在Mangle里增加3条change MSS规则

General

chain:forward

src.address:192.168.8.0/24

protocol:6(tcp)

Advanced

tcp mss:1441-65535

tcp flags:syn

Action

action:change MSS

new tcp mss:1440

其余两条与上一致,在in.interface里分别选择pppoe-out1和pppoe-out2

在route list里能看到刚才命令行加的

再手动加一条给内网用的Route LAN

如果以上NAT加完不正常的,可以参考一下,我下面这几张配置好的图。

Action项设置同ppoe-out1里

在DHCP Server中增加一个自动分配IP的服务,这个直接点击+号,手动加一个即可,或者点击DHCP Set up,会以向导形式告诉你怎么加。这个加和你上面配置的同一个IP段哦~ dhcp_pool是你允许自动分配的IP段范围。

加好之后,重启一下路由吧,到时候你笔记本应该会自动获取到一个你刚才设置的IP段的IP。正常的话,两条线应该是能拨上号了,可以去log项里看一下。

Connected表示已拨号成功。
在Address list里也能看到分配给你的外网IP。

下面你可以下载点东西,看看两条流量是否均衡。在Fire wall里的mangle里能看到两条线的连接速度。
如果OK的话,下面你可以加一些脚本来监测线路是不是有问题,有问题的话,好及时切换,这样用户不会感觉到QQ什么的掉线。
在system->scripts里添加一个名为balance的脚本,代码如下:

: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
}
}
}

在system->scheduler里添加一个计划任务,来执行这个脚本

增加NTP服务,定时

基本上我就刚研究到这里,后面的什么VPN啊,限速啊之类的功能还有很多可以折腾,还没有尝试。先写这么多吧。

使用感受:
我的是在淘宝上淘的,店铺地址就不帖了,避免广告嫌疑。想买的,自己受累去搜吧。顺便截了一张买家评价:

我的使用上感觉,这路由开了一天,温度感觉基本不怎么热,其它两个modem热的烫手了,呵呵。

与其它型号对比:(引用的zxp同学的发言

450与450G的差别不只是100M和1G端口的差别,450的CPU是300MHz,内存32M没有存储卡接口,450G的CPU是680MHz,内存256M,带TF卡接口,最重要的是450的端口吞吐率比450G的低很多。750系列与450系列的差别在于750的OS是Level4的,450系列的是Level5,750G的CPU是400M,内存64M。

好了,就写到这了。希望本篇经验总结能对你有些帮助。

原文:http://ipple.net/lanmp/routeros-nth-adsl-load-balancing.html
转载请保留出处,谢谢。

日志信息 »

该日志于2011-09-01 17:10由 Apple 发表在LA/NMP分类下, 评论已关闭。 如果觉得这篇文章不错,可以分享给你的朋友们~ :)
  1. Huang Zenghao说道:

    看来我们的RB450G是在同一家买的。

返回顶部