|
马上注册成为ROSABC会员,随时发帖回复。
您需要 登录 才可以下载或查看,没有账号?会员注册
x
NTH 在负载均衡的应用
下面我看一个实际的双线接入的 NTH 应用事例,假设我们有两条 ISP 的线路,我们通过 NTH 的方法实现负载均 衡,让 2 条同样 ISP 线路达到合并带宽的作用。
根据 NTH 的原理我们可以将来至内网的联接分为两组,即一组为奇数连接、一组为偶数连接,即奇数走一条线 路,偶数走另外一条线路。因为我们定义的是连接状态为 new,即新建立的连接,对正常的访问没有任何影响, 每个新建立所产生的后续数据都会按照原来的线路连接运行。
我们从所有的连接中,提取每次新建立的连接 connection=new,并对他们做 NTH 的标记,将这些连接中相关 的奇数(odd)包和偶数(even)包分离开,并走两个不同的网关(ISP1 与 ISP2)出去。这样就能保持每次 连接的持续性。
网络参数如下:
y wan1: ip 地址 10.11.0.2/24,网关 10.11.0.1 y wan2:ip 地址 10.12.0.2/24,网关 10.12.0.1 y lan:192.168.10.1/24
首先配置 IP
接下来在 ip firewall mangle 中标记奇数和偶数的 NTH,并配置路由标记,奇数 NTH 连接标记取名为 odd,偶 数连接标记取名为 even,将奇数的路由标记取名为 ISP1,将偶数的路由标记取名为 ISP2,如下:
命令行配置如下:
[RouterOS@ROSABC] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-connection new-connection-mark=odd passthrough=yes connection-state=new in-interface=lan nth=2,1
1 chain=prerouting action=mark-routing new-routing-mark=ISP1 passthrough=yes in-interface=lan connection-mark=odd
2 chain=prerouting action=mark-connection new-connection-mark=even passthrough=yes connection-state=new in-interface=lan nth=2,2
3 chain=prerouting action=mark-routing new-routing-mark=ISP2 passthrough=yes in-interface=lan connection-mark=even
NAT 配置
路由配置
进入 ip route 中配置路由规则,配置 10.12.0.1 对应 ISP2 的路由标记,10.11.0.1 对应 ISP1 的路由标记, 我们用 10.11.0.1 作为路由器本身的默认网关。
命令行配置如下
/ ip route
add gateway=10.11.0.1 routing-mark=ISP1 add gateway=10.12.0.1 routing-mark=ISP2
这样双线的 NTH 负载均衡就配置完成,建议这样的负载均衡使用在相同 ISP 的线路上,并且带宽接近。
注:在 NTH 时我们需要将 TCP 443 和 8443 端口指定到固定的一条线路,避免一些要求固定 IP 验证的网站,如网上银行 等。
NTH 在最多支持 16 个计数器,如果我们允许接入 12 条相同带宽的线路,并采用 passthrough=yes,即 NTH 规 则应是[every,packet]=[12,1],[12,2],[12,3],[12,4],[12,5],[12,6],[12,7],[12,8],[12,9], [12,10],[12,11],[12,12]
|
|