扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
核心提示:如今ROS在网吧当中的应用普及程度非常高,原因就是用这软件做个路由太便宜了,我曾经在心里盘算过,如果还能找到全新P3的主板和CPU,那么配一台全新超稳定的路由仅需硬件成本300元之内,而加上普遍应用的多条ADSL叠加后总成本不过1千元之内,而这仅1千元的成本却能让一家小型网吧拥有10M以上的宽带网络,网费却只有光纤的1/4左右。我想,就是凭着在各方面都能省的特点,软路由风靡中国网吧行业是理所应当的事。
曾经有一个在县城里开了一家70台机器网吧的朋友问过我,他说:“现在我们县城拉一条4M光纤每月要交2千以上,现在我们这ADSL拉一条100多元,你能不能帮我做一个8条ADSL叠加的方法啊,这样算来每条ADSL有2M左右的下行和512K上行,8条加起来就有十几M下载和4M的上传,应该足够我的网吧用了,而且这样每个月费用才1千元以内,如果能做就太适合网吧了。”听了朋友说完,我发现已经有很多人在开发这种自制的8WAN口软件路由器了。当然,如果做到8条线叠加不太容易,因为一般很少有主板能插8块网卡的,但是5-6条线应该问题不大。
以下我将以实例操作为大家详解如何在ROS2.9版本当中配置多线软路由,也许城市当中的大型网吧根本用不到这些技术,但在一些乡镇当中,尤其是网管朋友自己回家开一间小网吧却用处很大,而且目前这种技术还是很值钱的,听说找人做一台这样的路由器单软件成本就要1千以上,以下以双线为例,配置整体过程然后再解释其中道理,自然就可以实现“多线均衡负载”这种路由技术了。另外讲一些题外话,目前配置多WAN软路由很流行,学会了这个可以算得上一门手艺,到哪都有饭吃了。
第一步设置PPPOE拔号:外网(WAN1,WAN2)两个网卡添加pppoe client第一个命名为ADSL1 并且加上拔号的用户名和密码,第二条命名为ADSL2 同时加上拔号的用户名和密码,这里要注意把Add Default Route 去掉. 如图,就是填好ADSL账号和密码,如下图:
以下是用命令行配置ADSL帐号和密码的过程,相对来说比较易懂:
#设置ADSL拔号
/ interface pppoe-client add name="pppoe-out1" interface=wan1 user="ADSL账号" password="ADSL密码" add-default-route=no disabled=no
/ interface pppoe-client enable pppoe-out1
/ interface pppoe-client add name="pppoe-out2" interface=wan2 user="ADSL账号" password="ADSL密码" add-default-route=no disabled=no
/ interface pppoe-client enable pppoe-out2
第二步标记连接和路由:配置MANGLE来实现为每个数据包做标记,并配置相应的路由信息,这里的路由信息指的就是“池”,然后在后面的路由表当中实现将“池”中的包分配到相应的线路当中。下图两个ADSL线路的配置过程:
以下是命令行下配置过程,详细解释第一条就是每隔一个包建立一个新的会话,并用“1”做标记,因此所有属于同一会话的连续的数据包将被放到标记为1的连接中,注意,我们将这些数据包传递给第二条和第三条规则(passthrough=yes)。第二条规则在prerouting链表将所有标记属于“1”的连接放入routing mark的“1”标记中,并将以上连接在此停止处理。而第二条规则当中则是每隔一个包建立一个新的会话,并用“1”做标记,其他相就都处理成以2为标记的连接和池中,就这样将所有包连续不断的处理并做标记为路由做好前期准备。
/ ip firewall mangle
add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 \
action=mark-connection new-connection-mark=1 passthrough=yes
add chain=prerouting in-interface=Local connection-mark=1 action=mark-routing \
new-routing-mark=1 passthrough=no
/ ip firewall mangle
add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 \
action=mark-connection new-connection-mark=2 passthrough=yes
add chain=prerouting in-interface=Local connection-mark=2 action=mark-routing \
new-routing-mark=2 passthrough=no
第三步配置网关规则:因为是2条ADSL,所以要加2条规则,分别对应两个pppoe获得的地址,如果你们自己设就要先获得地址然后在这里设好规则,特点是address=network=broadcast,这样设置的目的是让ros能够根据这里所设的网关分别路由,并且在自动修改IP和网关的脚本当中还可以实现断线重连,所以在这里规则很重要,另外此步骤不能在命令行下实现,。下图为例:
以下是以命令行模式配置网关规则:
/ ip address
add address=192.168.1.1/24 network=192.168.1.0 broadcast=192.168.1.255 interface=lan1
add address=116.21.32.241/24 network=219.135.164.1 broadcast=0.0.0.0 interface= pppoe-out1
add address=121.32.177.37/24 network=219.135.164.1 broadcast=0.0.0.0 interface= pppoe-out2
第四步配置srcnat(ip伪装):这步的意思就是将已经做完标记的数据包进行IP头修改,这样可以保证返回的数据包每个数据包可以找到自己的线路,如果不做那就是只有出没有进了,因为包回来后找不到自己的路由了。
以下为命令行模式下的配置:
/ ip firewall nat
add chain=srcnat connection-mark=1 action=src-nat to-addresses=116.21.32.241 \
to-ports=0-65535
add chain=srcnat connection-mark=2 action=src-nat to-addresses=121.32.177.37 \
to-ports=0-65535
第五步配置路由规则:经过前四步的详细配置完成后,现在就是要实现将“1”和“2”两个池中的数据包分别走不同的路线了,就是路由策略的意思,我们的策略是被标记为“1”的数据用116.21.32.241为网关,同样,被标记为“2”的数据从121.32.177.37这个网关出去,为了防止有些包没有打上标记,所以再加上一条没有标记的包从121.32.177.37这个网关出去,也就是说121.32.177.37为默认网关。配置完成后如下图:
以下为命令行模式下的配置:
/ ip route
add dst-address=0.0.0.0/0 gateway=116.21.32.241 scope=255 target-scope=10 routing-mark=1
add dst-address=0.0.0.0/0 gateway=121.32.177.37 scope=255 target-scope=10 routing-mark=2
/ ip route
add dst-address=0.0.0.0/0 gateway=121.32.177.37 scope=255 target-scope=10
第六步填加防掉线脚步:脚本是ROS官方提供的,虽然短短几行代码,但具体是怎样的工作原理我也实在没弄通,不过好在脚本是通用的,将脚本设置成自动运行就可以了,以下是配置图:
至此,所有配置工作完成,由于ROS基础配置过程较多,所以在这里只针对ADSL配置和负载平衡进行了详细的介绍,由于实际当中配置多条ADSL多为重复过程,所以在这里只以两条线为例,如果配置多条ADSL来实现叠加网速,还要注意一些细节,可以说按照以上流程,再详细掌握了以下细节后就可以应用自如了。
按照以上标准流程,三条或者多条线路的负载均衡则需要修改第二步标记连接和路由中的参数,例如三条线就要加三个标记,而重要的是NTH参数,比如是三条线路则要在规则当中加入三条,分别将NTH值修改为: nth=2,3,0. 2,3,1. 2,3,2,如果是4条线那么规就要设置为4条,NTH的值为:nth=3,4,0. 3,4,1.3,4,2 3,4,3,至于为什么要这样设置具体NTH值的意义可以查阅相关资料。其他方面就是网关、IP伪装、路由规则等,都要按多条线的模式来设置,这样就可以完成多线均衡负载了,经过实测最多可以完成8条线均衡负载,网速可以达到12M以上。
看到这里,希望大家应该明白一点,ROS命令行模式在设置复杂的路由当中要比图形界面设置简单一些,尤其是在设置多条线路的时候,只需要修改相应命令值就可以了。另外以上配置如果细细钻研完全可以研制出自己的成品路由器,目前很多业内人士并不愿意贡献出详细的配置教程原因就在于此,这个配置方案可以真正实现多条ADSL线路同时工作,即使只有一个人在上网,所以也可以解决ADSL常掉线不适合网吧的问题,在此我将详细过程加以解释,目的是为了让更多的网管朋友们学习用的,希望大家不要借此卖钱,应该抱着交流学习的态度帮助更多网管朋友提升技术水平。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者