• Welcome to LiuJason's Blog!

MikroTik RouterOS CHR设置PCC多线分流

Linux笔记 Jason 4 years ago (2021-01-16) 679 Views 0 Comments QR code of this page
文章目录[隐藏]

前言

目前芬兰的万兆交换机上联还是1G的公网,所以下载需求高的时候有点吃紧。如果要换到上联10G的话机房那边说要按流量计费,对于我们目前每月几百T的流量来说价格较高并不划算。
而每台物理机本身就附赠了1G的上联带宽,同时不计流量,所以考虑通过万兆内网将每台机器的千兆公网进行负载均衡。
之前尝试了爱快的方案,配置很简单,多WAN配置后开启多线负载即可,根据流量负载情况进行分流。但是爱快这边并不支持建立IPIP/GRE通道,考虑到后续的机房直接互联需求,这里决定购买RouterOS的CHR P10版实现多线分流+IPIP通道建立。

配置详情

网络构架

CHR软路由:

  • 千兆公网eth0 IP 95.217.x.100
  • 万兆内网eth1 IP 10.0.0.1
  • 公网主网关 95.217.x.1 @ eth0 distance=1
  • 公网副网关 10.1.1.1~5 @ eth1 distance=2

物理机1~5:

  • 千兆公网eth0 IP 95.217.x.101~105
  • 万兆内网eth1 IP 10.1.2.1~5
  • 开启NAT转发:iptables -t nat -A POSTROUTING -s '10.0.0.0/8' -o vmbr1 -j MASQUERADE

开始配置

先配置路由器的公网和内网IP,然后去IP>Firewall>Mangle,设置分流标记,具体方法如下:

  1. 在Mangle下点击新建规则
  2. 在General下选择Chain为prerouting,src-address=10.0.0.0/8
  3. 在Advance下配置Per Connection Classifier,推荐选both addresses and ports,后面的参数写5和0,其中5为拟使用的WAN数量,0是标志排序(从0开始,0~4,这两个数字搞得人比较难受,从1开始多好....)
  4. 在Extra下配置Dst-address-type的address-type为Local,勾选Invert(代表排除路由器本地IP地址)
  5. 在Action下配置action=mark-connection标记连接,new-connection-mark取名c101

然后设置分流规则,具体方法如下:

  1. 在Mangle下点击新建规则
  2. 在General下选择Chain为prerouting,src-address=10.0.0.0/8,Connection Mark设为c101
  3. 在Action中选择Action为mark-routing,new-routing-mark取名route-c101

再去IP>Routes里添加副路由,gateway设为10.1.2.1,Routing Mark选择route-c101,distance选2(因为主路由还是走上联公网)

最后去IP>Firewall>NAT中新增一个srcnat,src-address=10.0.0.0/8,Out Interface选eth0,Connection Mark设为c101,Action选masquerade
这样一个节点就配置好了,其他的节点一样的步骤重复即可。也可以通过terminal设置:

/ip firewall mangle
add action=mark-connection chain=prerouting \
comment=c102 dst-address-type=!local new-connection-mark=c102 \
per-connection-classifier=both-addresses:4/0 \
src-address=10.0.0.0/8

add action=mark-routing chain=prerouting connection-mark=c102 \
new-routing-mark=route-c102 src-address=10.0.0.0/8

/ip firewall nat 
add chain=srcnat connection-mark=c102 action=masquerade

效果

完成后测试多线程下载,10G的文件使用40秒完成下载,平均速率245MB/s,平均带宽1.96Gbps;最高速率437MB/s,带宽约3.5Gbps:

[root@lxc-test ~]# axel -n 100 https://speed.hetzner.de/10GB.bin
-------
Connection 0 finished
Downloaded 10000.0 megabytes in 40 seconds. (251086.72 KB/s)

速度虽然超过了单线带宽,可能受限于下载源的带宽所以没有达到理论的5Gbps。

查看connection可以看到分流到了不同的网关:


This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/1131.html
Like (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址