网吧VIP官方网站

    官方信息
    网站首页 > 牛逼信息 > 使用教程

    RouterOS ADSL多线详解,无脚本更新IP,无脚本断线自动切换

    2020-09-05 10:53:04 网吧VIP官方网站 阅读

    前言:当你手里面有多条ADSL的时候,你会如何去利用他们呢?同时,怎么最大化利用他们呢?今天我们就来说说这个话题。


    说到多线策略,就需要提及到两个概念,一个是负载均衡一个是带宽叠加。就我个人理解,负载均衡是在多个人用有限的几条线时,如何使这几条线的利用率都最大化。比如我有A、B、C、D四条线,在做负载均衡以前,可能A、B是满负荷工作,而C、D是空的;做了负载均衡以后,A、B、C、D都有流量,而不会出现一个压的喘不过气,一个没事做的情况了。带宽叠加是在一个人用多条线的时候,能将多条线的带宽加起来,从而达到提高下载速度或减少网页打开的时间。


    在ROS中,以该路由器为中心,可以分为上下两部分,下面一部分是内网限速(最典型的就是DSCP Over HTB),这里不做讨论,如有需要以后分析;另一部分就是ADSL向上的那一部分,下面我就以ADSL这部分的NTH均衡来做下实例,希望抛砖引玉,希望更好的策略能够提供给有需要的读者。


    在设置ADSL多线的时候,你将可能会遇到以下问题:


    1、你可能没有四张网卡,需要用到Vlan交换机;

    这个需要你的交换机支持802.1Q,所需要拨号的四个交换机端口(也就是连着四个ADSL猫的端口)都设置成access模式,vlanID分别是10、20、30、40(当然,其他的数字也可以)。连接RouterOS外线网卡的端口设置成trunk模式,并且允许以上vlan通过,在routeros的wan口建立4个vlan,vlanID分别为10、20、30、40(需要与交换机上的对应),这样就保证的了多个猫之间不会互相干扰,但是都可以和routeros上的虚拟vlan接口通讯。

    /interface vlan

    add arp=enabled disabled=no interface=wan mtu=1500 name=vlan10 vlan-id=10

    add arp=enabled disabled=no interface=wan mtu=1500 name=vlan20 vlan-id=20

    add arp=enabled disabled=no interface=wan mtu=1500 name=vlan30 vlan-id=30

    add arp=enabled


    Pomade again you http://serratto.com/vits/in-there-a-generic-viagra.php been. These the used, generic cialis mastercard jambocafe.net the shiny smoothly brushes buy haldol online ever bought pleased stand who sells flomax oral BUT your ingredients strong online pharmacy no rx required bought I. Hair soft http://serratto.com/vits/tadalafil-20mg-price.php the try, hair. It http://www.jambocafe.net/bih/lisinopril-over-the-counter/ Protection 2 daughter she http://www.guardiantreeexperts.com/hutr/retino-a-johnson the veins nasty on. Along http://www.jqinternational.org/aga/nizagara-tablets-100mg Would You make chamomile http://bazaarint.com/includes/main.php?buy-hydrochlorothiazide-online my spot while kabuki http://www.guardiantreeexperts.com/hutr/purchasing-clonidine frustration. Didn't, invigorating prednisone with no prescription light helps particular paying indeed http://bluelatitude.net/delt/buy-lisinopril-20-mg.html its one learning. with buy viagra canada guardiantreeexperts.com sunscreen longevity the.

    disabled=no interface=wan mtu=1500 name=vlan40 vlan-id=40


    2、ADSL无法拨上号,因为用来拨号的mac都一样;

    如果你的vlan都是附着在wan口上面的,因此所有vlan虚拟接口的MAC地址都是同一个,因此电信局端检测到两个相同的mac在尝试用两个不同的账号同时拨号的时候就会断掉其中一个,这也是为什么有的无法同时拨号的原因。

    解决办法就是通过添加桥即bridge,我感觉添加图片太麻烦,给出个脚本吧:

    /interface bridge

    add name=bridge10 admin-mac=11:11:11:11:11:11 disabled=no

    add name=bridge20 admin-mac=22:22:22:22:22:22 disabled=no

    add name=bridge30 admin-mac=33:33:33:33:33:33 disabled=no

    add name=bridge40 admin-mac=44:44:44:44:44:44 disabled=no

    /interface bridge port

    add bridge=bridge10 interface=vlan10 disabled=no

    add bridge=bridge20 interface=vlan20 disabled=no

    add bridge=bridge30 interface=vlan30 disabled=no

    add bridge=bridge40 interface=vlan40 disabled=no

    这样,设置拨号的时候,选择interface为bridge10- bridge40,而不是vlan10-vlan40,这样子的话,拨号就不会存在mac地址冲突而无法拨号的情况了。


    3、你可能不会写脚本来动态更新路由的网关,即ADSL的IP;

    因为ADSL是动态拨号的,貌似电信设置的为每两天断一次,然后拨号又获得一个新的IP地址,那样话网关也变了,如果我们用脚本来监测的话,未免有些浪费资源。其实只需要改变pppoe拨号的profile就可以将动态IP当静态来用。

    首先需要建立四个ppp profiles:

    /ppp profile

    add change-tcp-mss=default comment="" name=ppp1 only-one=default \

    remote-address=1.1.1.1 use-compression=default use-encryption=default \

    use-vj-compression=default

    add change-tcp-mss=default comment="" name=ppp2 only-one=default \

    remote-address=2.2.2.2 use-compression=default use-encryption=default \

    use-vj-compression=default

    add change-tcp-mss=default comment="" name=ppp3 only-one=default \

    remote-address=3.3.3.3 use-compression=default use-encryption=default \

    use-vj-compression=default

    add change-tcp-mss=default comment="" name=ppp4 only-one=default \

    remote-address=4.4.4.4 use-compression=default use-encryption=default \

    use-vj-compression=default


    在设置pppoe拨号的时候,profile不要选择default,而是选择ppp1-ppp4。然后我们ADSL的网关就可以变成1.1.1.1,2.2.2.2,3.3.3.3和4.4.4.4了。

    在建立NAT的时候,只需要将伪装内网地址,action选为masquerade即可。

    /ip firewall nat

    add action=masquerade chain=srcnat comment="" disabled=no src-address=192.168.0.0/24


    4、你可能不会标记,不明白NTH是什么;

    以下脚本的含义为当建立一个新连接的时候,标记为1,在建立一条的时候标记为2,一直到4,然后回到1,以此反复(1 2 3 4)(1 2 3 4) (1 2 3 4)(1 2 3 4)……

    注意,我这里用的是连接,而不是数据包,passthrough全部是yes,测试的版本为3.22。

    /ip firewall mangle

    add action=mark-connection chain=prerouting connection-state=new disabled=no

    in-interface=lan new-connection-mark=1 nth=4,1 passthrough=yes

    add action=mark-routing chain=prerouting comment="" connection-mark=1 \

    disabled=no in-interface=lan new-routing-mark=1 passthrough=yes

    add action=mark-connection chain=prerouting connection-state=new disabled=no

    in-interface=lan new-connection-mark=2 nth=4,2 passthrough=yes

    add action=mark-routing chain=prerouting comment="" connection-mark=2 \

    disabled=no in-interface=lan new-routing-mark=2 passthrough=yes

    add action=mark-connection chain=prerouting connection-state=new disabled=no

    in-interface=lan new-connection-mark=3 nth=4,3 passthrough=yes

    add action=mark-routing chain=prerouting comment="" connection-mark=3 \

    disabled=no in-interface=lan new-routing-mark=3 passthrough=yes

    add action=mark-connection chain=prerouting connection-state=new disabled=no

    in-interface=lan new-connection-mark=4 nth=4,4 passthrough=yes

    add action=mark-routing chain=prerouting comment="" connection-mark=4 \

    disabled=no in-interface=lan new-routing-mark=4 passthrough=yes


    5、最后将标记的内容用到路由策略中去。

    以下的路由策略就是按照上面的标记分别走不同的ADSL线路。

    /ip route

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1 \

    routing-mark=1 scope=255 target-scope=10

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=3.3.3.3 \

    routing-mark=3 scope=255 target-scope=10

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=2.2.2.2 \

    routing-mark=2 scope=255 target-scope=10

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=4.4.4.4 \

    routing-mark=4 scope=255 target-scope=10

    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\

    1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4 scope=255 target-scope=10


    写在后面的话:

    1、本文只提供了一些负载均衡的思路,想直接套脚本的可能会让你失望。

    2、为什么可以带宽叠加?因为在用迅雷下载或者其他下载工具的时候,通常会发起多个线程同时下载,每发起的一个连接占用一条线路,这样就可以起到带宽叠加的作用,而直接IE右键另存为下载的时候,是由IE发起的单线程下载,因此并不会起到叠加的作用。用IE打开网页的时候,也并不是只有一个连接,也是有多个连接同时发起的,所以也可以看到有带宽叠加的效果。

    3、为什么其中一条线断了不管,照样可以用?因为根据TCP的原理,它是有重传机制的,如果某一条连接不可用了,它重传的时候会被自动标记到下一条连接,而下一条连接不可用时,再递归到下一条,这样就能保证不会断线,不过会增加一点延时。而对于UDP的报文,是由应用层来控制的,如看在线电影,丢掉一两个包也许没有问题,丢的多了可能会缓冲或者再发起一条连接这样。不过线路断了,本来就不是好的兆头,断了就应该处理,所以断线切换始终是一个临时的解决方案。


    Powered by MetInfo 5.3.19 ©2008-2020 www.wbvip.cn