RouterOS 负载均衡
PCC负载均衡
http://www.mikrotik.com.cn/newshow.aspx?ID=125
PCC匹配器允许分离传输流做到平衡流量的功能(能指定这个属性选择src-address, src-port, dst-address,dst-port)
PCC原理
PCC从一定范围内分析选择IP数据包头,通过哈西散列算法的帮助下,将选定的区域转换为32bit值。这个值除以指定Denominator(分母),余数将比较一个指定的余数(Remainder),如果相等这时数据包将会被捕获,你可以选择src-address, dst-address, src-port, dst-port等使用此操作。
per-connection-classifier= PerConnectionClassifier ::= [!]ValuesToHash:Denominator/Remainder Remainder ::= 0..4294967295 (integer number) Denominator ::= 1..4294967295 (integer number) ValuesToHash ::= src-address|dst-address|src-port|dst-port[,ValuesToHash*]
per-connection-classifier分类器,通过判断源地址、目标地址、源端口和目标端口,对数据进行分类,如
事例:这个配置将所有连接基于源地址和端口分类的3个组:
/ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=1st_conn per-connection-classifier=both-addresses:3/0 /ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=2nd_conn per-connection-classifier=both-addresses:3/1 /ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=3rd_conn per-connection-classifier=both-addresses:3/2
per-connection-classifier=both-addresses:3/0,这条规则的含义为我们对原地址的端口进行分类,3/0为一共有3条出口,定义第一条,3/1则是第二条,以此类推。
注意:PCC从RouterOS v3.24开始支持,这个功能解决了多网关的负载均衡问题。
PCC的负载均衡事例
一、 双向地址负载均衡
通分组源地址和源端口实现负载平衡,这里我们建立2个WAN出口分别是wan1和wan2,网络环境如下:
- ISP1地址10.200.15.99/24,网关:10.200.15.1;
- ISP2地址10.200.100.99/24,网关:10.200.100.2;
- 内网IP地址192.168.100.1/24;
- 启用DNS缓存功能,用192.168.100.1作内网DNS解析;
基本配置
首先进入ip address配置IP地址:
在ip dns setting中配置好DNS缓存,DNS为:61.139.2.69
Mangle标记配置
接下来我们进入ip firewall mangle标记连接和路由,我们使用per-connection-classifier双向地址进行分类做连接分类标记。
首先我们需要将进入路由的的链接进行标记
如下图,我们进入一条mangle规则,中的advanced标签内容可以看到per-connection-classifier分类器,选择both-addresses的分类:
然后选择dst-address-type=!local,即除了目标地址是本地以前的地址:
注:2条线的分类代码定义是第一条线为2/0,第二条为2/1
同样选择一下地址类型:
下面命令是提取走第一条线路的连接标记取名位1st_conn,并从连接里提取路由标记名位1st_route,设置:per-connection-classifier=both-addresses:2/0, 设置in-interface=lan
/ip firewall mangle add action=mark-connection chain=prerouting comment="" disabled=no \ in-interface=lan new-connection-mark=1st_conn passthrough=yes \ per-connection-classifier=both-addresses:2/0 add action=mark-routing chain=prerouting comment="" connection-mark=1st_conn \ disabled=no in-interface=lan new-routing-mark=1st_route passthrough=yes
提取走第二条线路的连接标记取名位2nd_conn,并从连接里提取路由标记名位2nd_route,设置:per-connection-classifier=both-addresses:2/1,设置in-interface=lan:
/ip firewall mangle add action=mark-connection chain=prerouting comment="" disabled=no \ in-interface=lan new-connection-mark=2nd_conn passthrough=yes \ per-connection-classifier=both-addresses:2/1 add action=mark-routing chain=prerouting comment="" connection-mark=2nd_conn \ disabled=no in-interface=lan new-routing-mark=2nd_route passthrough=yes
在winbox在mangle中设置完成后如下:
回程路由设置
我们需要将从那个口进入就从相应的口回去,即保证每个外网口的数据能得到正确的路由
/ip firewall mangle add chain=input in-interface=wan1 action=mark-connection new-connection-mark=1st_conn add chain=input in-interface=wan2 action=mark-connection new-connection-mark=2nd_conn
winbox设置
标记完进入接口的链接后,将这些链接指定到相应的路由标记上:
add chain=output connection-mark=1st_conn action=mark-routing new-routing-mark=1st_route add chain=output connection-mark=2nd_conn action=mark-routing new-routing-mark=2nd_route
winbox设置
路由配置
配置完标记后路由后,我们进入ip route配置路由,首先设置负载均衡的标记路由,首先设置第一条线路的路由标记,设置routing-mark=1st_route:
设置第二条线路的路由标记,设置routing-mark=2nd_route:
配置默认网关和备份网关,默认网关的distance设置为1,并设置check-gateway=ping,通过ping监测网关状态:
备份网关的distance设置为2,并设置check-gateway=ping,通过ping监测网关状态:
配置完成后的路由标如下图:
配置nat
最后配置nat转换规则,进入ip firewall nat中配置action=masquerade,分别对2条线路做伪装:
/ip firewall nat add action=masquerade chain=srcnat out-interface=wan1 add action=masquerade chain=srcnat out-interface=wan2
标签: ros pcc
Sort
Archive
- 2023年1月(1)
- 2019年4月(1)
- 2018年12月(2)
- 2014年9月(1)
- 2014年7月(1)
- 2014年5月(4)
- 2013年4月(10)
- 2013年3月(2)
- 2012年11月(10)
- 2012年10月(2)
- 2012年9月(2)
- 2012年8月(9)
- 2012年7月(1)
- 2012年6月(4)
- 2012年5月(4)
- 2012年4月(11)
- 2012年3月(11)
- 2012年1月(16)
- 2011年12月(6)
- 2011年11月(8)
- 2011年10月(8)
- 2011年9月(3)
- 2011年8月(6)
- 2011年7月(3)
- 2011年6月(5)
- 2011年5月(10)
- 2011年4月(4)
- 2011年3月(4)
- 2011年2月(7)
- 2011年1月(16)
- 2010年12月(9)
- 2010年11月(29)
- 2010年10月(14)
- 2010年9月(15)
- 2010年8月(16)
- 2010年7月(22)
- 2010年6月(19)
- 2010年5月(27)
- 2010年4月(21)
- 2010年3月(24)
- 2010年2月(9)
Comment
- Lightning_bear
失效了 - admin
在哪下载? - 王健宇
@红河:CMD命令里... - 红河
台式机安装了蓝牙。但... - M2nT1ger
@LiveOnLov... - LiveOnLove
可以将Tablet ... - 阿生
表示支持了 - M2nT1ger
@无:每种都学啊。 - 无
向您这么厉害,得学习... - M2nT1ger
@被屏蔽的昵称:谢谢...
发表评论: