|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
这些天炒得很热,去官方WIKI也能查到资料,原理是在建立新连接时随机走某条线路,如果是这样,跟ECMP在应用上碰到的问题一样,部分网游掉线,原因估计是因为某些条件下需要连接验证服务器或者其他类似原因,新的连接走的路线不一样就断了,不知道商业化的朋友们的解决办法,不过设想如果能尽量搜集全网游的端口,走这些端口的连接保证只走一条线,估计可以解决这个问题吧
另,自己随便翻的官方负载均衡做法
Mangle
- / ip address
- add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local comment="" \
- disabled=no
- add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=wlan2 \
- comment="" disabled=no
- add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=wlan1 \
- comment="" disabled=no
复制代码
这个是给网口添加IP,有两块外网网口,一个内网网口
- / ip firewall mangle
- add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 \
- action=mark-connection new-connection-mark=odd passthrough=yes comment="" \
- disabled=no
复制代码
这是重点了,我们把遇到的第二个并且数据包连接标记为新连接的数据包所请求的连接打上标记"odd"(connection-state=new), 然后该会话建立后这条连接就会被标记为 "odd". 然后我们就能在这条连接继续做ROUTING MARK,继续看下面
- add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing \
- new-routing-mark=odd passthrough=no comment="" disabled=no
复制代码
这条规则就会把上面规则进行标记的"odd"的连接进行MARK ROUTING,注意passthrough为NO,数据包的处理到这条规则为止了
- add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 \
- action=mark-connection new-connection-mark=even passthrough=yes comment="" \
- disabled=no
- add chain=prerouting in-interface=Local connection-mark=even action=mark-routing \
- new-routing-mark=even passthrough=no comment="" disabled=no
复制代码
同理,两条规则也是做了类似的标记,不同的是匹配的数据包是每遇到的第三个包含新连接标记的数据包
以上的规则使每条新连接都被打上了"odd"或者"even"的标记
NAT
- / ip firewall nat
- add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.111.0.2 \
- to-ports=0-65535 comment="" disabled=no
- add chain=srcnat connection-mark=even action=src-nat to-addresses=10.112.0.2 \
- to-ports=0-65535 comment="" disabled=no
复制代码
给不同的线路的连接做不同的NAT规则~~对应上面的标记
Routing
- / ip route
- add dst-address=0.0.0.0/0 gateway=10.111.0.1 scope=255 target-scope=10 routing-mark=odd \
- comment="" disabled=no
- add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 routing-mark=even \
- comment="" disabled=no
- add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 comment="" \
- disabled=no comment="gateway for the router itself"
复制代码
这段就是给两个线路上对应上ROUTING MARK,是标记为ODD的连接就走10.111.0.1,是标记为10.112.0.1的连接就走10.112.0.1,最后添多一个默认的,让没有标记到的连接自己都走那(一般大家都加捏)
收工……
参考在 "http://wiki.mikrotik.com/wiki/Load_Balancing" |
|