日本电子维修技术 网络RouterOS多拨,限速及其它答疑




  CHH上越来越多的兄弟开始使用RouterOS路由器了,由于我之前回了几个关于RouterOS问题的帖子,很多兄弟都PM我一些问题,正好这段时间比较闲,就大家问得比较多的两个问题通过Step by Step的方式写出来,希望帮助ROS入门的兄弟,在各位老鸟面前献丑了!


  一、多拨带宽叠加负载均衡


  ROS的多拨负载均衡有两种方式,NTH和PCC,一般来说PCC的稳定性要好一些,下面是双线PCC的操作步骤,多线同理:

  1.配置Wan连接
  不管你是静态IP还是动态IP抑或是PPPOE拨号连接,请先设置Wan连接,下面以PPPOE为例,建立2个PPPOE连接,分别命名为pppoe-out1和pppoe-out2:

002.PNG (206.31 KB, 下载次数: 0)

2015-11-16 17:35 上传



  2.设置NAT
  WAN连接建立好后,如果设置正确,对应的连接名称前会有一个“R”的标识。下面设置NAT,由于示例中内网只有一个网段,所以只需要一条规则即可,如下图。

003.PNG (21.15 KB, 下载次数: 0)

2015-11-16 17:35 上传

004.PNG (201.1 KB, 下载次数: 0)

2015-11-16 17:35 上传



  其中Src.Address表示你内网的网段,10.0.0.0/24代表10.0.0.0到10.0.0.255之间所有的地址(实际可用254个),子网掩码为255.255.255.0,学过Linux的兄弟应该不会对这种表示方式陌生,如果你的内网有多个网段,可以通过建立多条NAT规则或者通过计算子网掩码来实现。如果对子网掩码不熟悉,网上有很多子网掩码计算工具,或者直接指定24,即255.255.255.0,即与普通家用路由器的设置方法类似。
  如果你已经设置好DHCP,现在客户机应该已经可以通过这台路由器上网了。

  3.包标记

  我认为Ros的精华部分就是包标记,同时也是难点,初学者很容易在学习这一块时放弃,但如果你之前用过iptables或Cisco或华为的设备,则很好理解。
  配置PCC负载均衡同样也需要进行标记,这样最终Ros就能通过我们标记的包来确认数据流向,从而完成带宽的叠加和负载均衡,虽然比起普通家用路由器设置进来要复杂很多,但Ros的灵活性是普通其它普通路由器无法比拟的。
  由于我们演示的即使是最简单的双线,通过winbox操作的步骤也比较多,就直接将脚本帖出来。

/ip firewall mangle
add action=mark-connection chain=prerouting dst-address-type=!local \
    new-connection-mark=pcc1 per-connection-classifier=both-addresses:2/0 \
    src-address=10.0.0.0/24
add action=mark-connection chain=prerouting dst-address-type=!local \
    new-connection-mark=pcc2 per-connection-classifier=both-addresses:2/1 \
    src-address=10.0.0.0/24
add action=mark-routing chain=prerouting connection-mark=pcc1 \
    new-routing-mark=r1 src-address=10.0.0.0/24
add action=mark-routing chain=prerouting connection-mark=pcc2 \
    new-routing-mark=r2 src-address=10.0.0.0/24
add action=mark-connection chain=input in-interface=pppoe-out1 \
    new-connection-mark=pcc1
add action=mark-connection chain=input in-interface=pppoe-out2 \
    new-connection-mark=pcc2
add action=mark-routing chain=output connection-mark=pcc1 new-routing-mark=r1
add action=mark-routing chain=output connection-mark=pcc2 new-routing-mark=r2复制代码  执行以上脚本后会创建如下图中所示的前8条规则。

005.PNG (90.17 KB, 下载次数: 0)

2015-11-16 17:39 上传


  先说前面两条命令,需要特别说明的是,如果你的双线速率不同,比如一条50Mb,另一条100Mb,这里就应该将PCC分类器分为三份了,这样每份为50Mb,多线同理。这里由于是最简单的双线同速率的负载均衡,所以设置为2/0即可。这样标识了名为PCC1和PCC2的连接。
  第3、4条命令是创建名为R1和R2的路由标识。
  第5、6条命令是创建回程路由标识,为后面第7、8条命令作准备。
  第7、8条命令是通过前面两条命令创建的连接标识创建名为R1和R2的路由标识。

  4.添加路由
  以上第3步所有的标识都是为这一步服务的,这里我们只需要将两条WAN链接对应的路由标识添加到路由表即可,下面同时贴出winbox界面和脚本:

/ip route
add check-gateway=ping distance=1gateway=pppoe-out1 routing-mark=r1
add check-gateway=ping distance=1gateway=pppoe-out2 routing-mark=r2复制代码

001.PNG (122.87 KB, 下载次数: 0)

2015-11-16 17:28 上传



  这样就完成了双线叠加或负载均衡的配置。下图是一个接入电信双100Mb的Ros路由器做的带宽叠加和均衡负载,大家可以看到,虽然在一定时间内双线的负载并不能保证是绝对的均衡,但总上下行流量基本保持一致,在客户机上全速下载也基本能够得到两条wan带宽的总和。

007.PNG (189.46 KB, 下载次数: 0)

2015-11-16 17:39 上传




  以上介绍的普通的双线双拨(多线多拨同理),如果你当地的网络提供商没有限制单线多拨,那么通过Ros的vrrp则可很方便地完成,然后再通过PCC叠加带宽,而不用增加任何硬件。网上相关教程很多,而且也不具备普遍性,这里就不再赘述了。
未完待续....




评论
收藏学习,以后备用吗,谢谢!

评论
请问ros如何mac地址白名单允许上网

评论
谢谢,太好了,收藏了

评论

通过防火墙过滤规则很容易实现啊,具体思路是先允许规则中已存在的MAC地址,拒绝规则中所有的请求:
/ip firewall filter
add chain=forward src-mac-address=00:14:85:D6:60:03
add action=drop chain=forward复制代码以上脚本即可允许MAC地址为00:14:85:D6:60:03的网卡上网,而拒绝其它所有MAC地址。如果需要往白名单中添加MAC地址,只需要在drop规则前按第2行的方法重复添加规则即可。



评论
写的很好,非常不错,公司用ROS几年了,碰到个问题一直没有很好解决,多线分流后,外网V P N始终无法配置成功,无论是WAN1还是WAN2都无法拨进来,内网倒是能拨网关的V P N,但这毫无意义。。。不知楼主是否能帮忙分析一下原因。

评论
楼主好棒!

评论

你所说的问题我至今还没有遇到过,因为我没有在多WAN的Ros上做过V P N,单WAN上做过没问题,双WAN的ROS做V P N客户端也没问题,但每次服务端得到的客户端IP都是WAN1的,具体原因不明。

不过从你描述的问题来看,我猜测应该是从外面拨进来V P N的连接被分流了,你可以先试试禁用一个WAN,然后禁用所有PCC规则,再逐个开启,用排除法来确认问题的来源,如果问题真的出现在PCC分流上,那么可以尝试在分流规则时添加基于协议和端口号的选项,用来判断该连接是否来自V P N连接。
ROS默认的V P N端口我整理如下,你可以试试:
L2TP udp 1701
PPTP tcp  1723
SSTP tcp 443
OpenV P N tcp 1194


评论

应该是回流的问题 ,标记一下路由,从pppoe-out1进就要从pppoe-out1出
#进口连接-->出口路由标记
:for m from=1 to=4 do={
/ip firewall mangle add action=mark-connection chain=input in-interface=("pppoe-out" . $m)  new-connection-mark=$m passthrough=yes comment=($m . " - in conn") disabled=yes###disable=yes 规则未启用,请手动启用或者改成no
/ip firewall mangle add action=mark-routing chain=output connection-mark=$m new-routing-mark=($m . "r") passthrough=no comment=($m . " - in conn --> route") disabled=yes
}
###标记路由,与上面的路由标记对应

:for m from=1 to=4 do={
/ip route add distance=1 gateway=("pppoe-out" .$m) routing-mark=($m . "r")
}
###备份路由
:for m from=1 to=4 do={
/ip route add distance=$m gateway=("pppoe-out" .$m)
}

####以上to=4 ,4条宽带,据实际情况修改几个参数/变量###另外如果还有别的规则 可能会干扰到上面标记,那个只能具体情况具体分析

14.jpg (52.04 KB, 下载次数: 0)

2015-11-17 14:36 上传

12.jpg (38.54 KB, 下载次数: 0)

2015-11-17 14:32 上传

如果还有其他标记,建议你贴出图来







评论

非常感谢,正在根据你回复的内容分析中。。

评论

非常感谢,目前情况是外网就无法连通WAN1或者WAN2的***端口,不知楼主是否有空,可否加个QQ详细请教下。。

评论

已PM QQ

评论
留个名,
不过我那951貌似多了个bridge

评论

调试时注意查看作为服务端的ros日志,更好地确定问题所在。

评论

那是因为ROS默认设置是eth1为WAN端口,其它端口做了桥接。

评论

谢谢兄台,已找LZ解决问题了,LZ是货真价实的高手。。。

评论
LS在说什么?我表示看不懂

评论

哈哈,没注意回复的就是LZ

评论
技术帖子!

评论
跪谢,看来随着宽带的提高,落后功能的家用路由器是满足不了大家的需求,继而寻求小企业级,ROS确实不错,就是入门起点高,还有就是一些人打着幌子要钱。
rosjb.com推出的软件不错

评论
非常感谢楼主分享,ROS还是玩不来。

评论
ROS能在Hyper-V下用吗?

评论
不同运营商叠加,会稳定吗?我是电信50M加移动100M的,可以实现网页稳定,迅雷叠加吗?

评论
我用PCC的方式做过,可是每次都有些问题,没法叠加成功,有时候UPNP不行。ROS的配置确实有点复杂,目前用OpenWrt方便一些。等有空再折腾ROS

评论

ros新版本应该已经不支持Hyper-V了,但可以在ESXI上工作良好。

评论

不同运营商带宽的叠加要麻烦一些,因为要涉及到策略路由,即自动选择目标IP地址所在的运营商,以最优化网络连接。
如果不做策略路由也可以带宽叠加,至于带宽速率不同,只需要调整PCC权重即可,用最大公约数计算。

评论
虽然没多拨,收藏学习。

评论
密切留意

评论
羡慕啊,本地电信不能多拨,拨了两个就说有两台机器在线,要你关闭一个

评论
官方的教程里,下面两行入口标记,是放在prerouting链。
add action=mark-connection chain=input in-interface=pppoe-out1 \
    new-connection-mark=pcc1
add action=mark-connection chain=input in-interface=pppoe-out2 \
    new-connection-mark=pcc2

官方的:
add chain=prerouting in-interface=ISP1 connection-mark=no-mark action=mark-connection \
    new-connection-mark=ISP1_conn
add chain=prerouting in-interface=ISP2 connection-mark=no-mark action=mark-connection \
    new-connection-mark=ISP2_conn
放在prerouting和input有什么区别么?性能有差别吗?
官网链接:
http://wiki.mikrotik.com/wiki/Manual:PCC兄弟这个问题提得相当好,我一直以来也忽略了prerouting链和input链之间的性能差异。
我们知道RouterOS是基于Linux的,它的防火墙同样也是iptables,所以下面看看iptables处理数据包的流程(图片来自网络)

193925_cNWe_874335.png (44.54 KB, 下载次数: 0)

2015-12-2 17:09 上传


Mangle表的5条链:
(1)PREROUTING  链:数据包进入防火墙后,路由判断之前改变数据包。
(2)POSTROUTING链:数据包确定了目标地址后,即路由判断前改变数据包。
(3)OUTPUT链:在数据包被确定目的地址前改变数据包
(4)INPUT链:在数据包进入本机后,应用程序接受之前改变数据包。
(5)FORWARD链:第一次路由判断之后,最后一次路由判断前改变数据包。

在iptables中,数据包只要匹配了其中一条规则,过滤就会结束,否则会继续按规则链的流向走,经过一次就需要进行比较,经过的规则越多,性能损失就越大。而在多线PCC中,根本不需要进行多余的处理规则,只需要对进入的数据包进行标识即可。

所以,从理论上来讲,此处在prerouting处标识比input性能更高,即官方脚本更有效率。


评论

专业,受教了,我的ros,现在多拨成功了,不过用了ECMP,感觉PCC的效率有点低,我50Mbps多拨,下行基本到不了70Mbps,但是用ECMP可以到100Mbps。
感觉ROS确实强大,不过需要不少时间来琢磨。
我现在遇到一个端口转发的问题,感觉多拨情况下,设置的端口转发,会经常失效。
兄弟能否私信一下联系方式,想请教一下。

评论

多线的端口转发可以通过指定in interfrace和routing mark来区分数据包的入口。
入下所示:
add action=dst-nat chain=dstnat comment="port forward 880" disabled=no \
    dst-port=880 in-interface=ether1-gateway protocol=tcp routing-mark=pcc1 \
    to-addresses=192.168.1.50 to-ports=880复制代码以上这段脚本即可将入口为ether1-gateway ,并且路由标识为pcc1的TCP 880端口转发到内网的192.168.1.50的880端口上。如果有多线,就需要建立多条规则。



评论

ros 有ECMP?这个是个啥?

评论

PCC以后如何完美UPNP?

评论
ros的单线多拨是并发还是依次拨号?

评论
mark一下!学习

评论
mark..专业。

其实我一直有个没完成的配置
就是进prerouting以后打标。。。根据目的地不同,非CN的加routing标记然后路由转发去另外一个设备。

然后另外一个设备(OpenWRT)在做完他的操作以后(都懂的那种)...然后再次进入ROS LAN口。。

这时候有2个状态
1. 被操作进入代理状态的流量会因为改变了Source IP而正常路由出WAN口
2. 没做代理操作的流量会被直接forward到LAN口,这时候原来的打标似乎是仍然生效的,包上的源IP也不会变。。所以这部分包其实就完蛋了。。

所以现在我的做法是所有流量都进二级设备先做分离在进ROS...虽然没撒大问题但是这样就需要在虚拟机(OpenWRT)重启的时候手工修改DHCP的网关地址啥。

或者还有一种做法就是得在OpenWRT上启用全局模式,不过我也不是很喜欢这样。。

所以暂时就先这样半吊着用了。。。

想咨询下有啥更高明的办法不?比如在出口的时候把prerouting的标去掉??虽然设想过当时完全不知道怎么实现...擦..
电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
 ·日本留学生活 求个大阪合租
·日本留学生活 自家房招租求
·日本留学生活 东京地区出9成新lv钱包
·日本育儿教育 孩子从国内过来如何学习日语
·日本育儿教育 明年四月横滨招月嫂
·日本育儿教育 请问咋让娃突破识字关?感谢分享中文共读和学习经验的妈妈
 ·中文新闻 东区明星迈克尔·格列柯,53 岁,将在第一次出生两年后第二次
·中文新闻 《爱情岛》明星卡米拉·瑟洛和杰米·朱维特在透露即将迎来第三

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...