配置按流负载均衡
在 Junos OS 中,您可以通过在路由策略配置中设置每流负载均衡选项来启用 每流负载均衡 。请注意,Junos OS 和 Junos OS 演化版软件也支持现有的 按数据包进行负载平衡 选项。
当活动路由有多个等价路径通向同一目标时,Junos OS 默认使用哈希算法来选择要安装在转表中的下一跃点地址之一。使用按流负载均衡时,目标目标的所有下一跃点地址都将安装到转发表。因此,负载得到平衡,以将流量分散到路由之间的多个路径上。
要配置按流负载均衡,请在层次结构级别将 [edit policy-options policy-statement policy-name term term-name from]
or load-balance per-flow
语句作为load-balance per-packet
语句的一个route-filter
选项包含在内:
您可以使用 load-balance per-packet
或 load-balance per-flow
选项,并且两者具有相同的功能。
[edit policy-options policy-statement policy-name term term-name from] route-filter destination-prefix match-type { load-balance per-flow; }
或在层次结构级别:[edit policy-options policy-statement policy-name term term-name then]
[edit policy-options policy-statement policy-name term term-name then] load-balance per-flow;
要完成配置,必须将路由策略应用于从路由表导出到转发表的路由,方法是在语句指定的 export
列表中包含策略名称:
export [ policy-names ];
您可以在以下层次结构级别包含此语句:
-
[edit routing-options forwarding-table]
-
[edit logical-systems logical-system-name routing-options forwarding-table]
默认情况下,Junos 在确定流量时会忽略端口数据。要在流确定中包含端口数据,请在层次结构级别包含 family inet
语句 [edit forwarding-options hash-key]
:
[edit forwarding-options hash-key] family inet { layer-3; layer-4; }
如果同时包含第 3 层和第 4 层语句,设备将使用以下 第 3 层 和第 4 层 信息进行负载平衡:
-
源 IP 地址
-
目标 IP 地址
-
协议
-
源端口号
-
目标端口号
-
传入接口索引
-
IP 类型的服务
当第 3 层和第 4 层 的所有参数都相同时,设备通过同一接口发送流中的数据包,这反过来又有助于防止 TCP 和 UDP 流的无序传递。
互联网控制消息协议 (ICMP) 数据包的处理方式不同,因为字段位置偏移量是校验和字段,这使得每个 ping 数据包成为单独的“流”。还有其他可以封装在 IP 中的协议,这些协议在 32 位偏移量中可能具有不同的值。这也可能有问题,因为这些协议被视为一个单独的流程。
对于 M 系列(M120 路由器除外)和 T 系列路由器,第一个分段映射到与未分段数据包相同的负载平衡目标。其他片段可以映射到其他负载平衡目标。
仅对于 M120 路由器,所有分段都映射到同一负载平衡目标。此目标不一定与未分段数据包的目标相同。
默认情况下,或者如果仅包含第 3 层语句,路由器将使用传入接口索引以及数据包头中的以下 第 3 层 信息来对流量进行负载均衡:
-
PTX-1000
-
PTX-10002-60
-
QFX-10001-I-20C
-
QFX-10002-60C
-
QFX-10003-160C
-
QFX-10003-80C
-
Junos Evo PTX 默认配置文件
-
Junos PTX 默认配置文件
-
源 IP 地址
-
目标 IP 地址
-
协议
默认情况下,IP 版本 6 (IPv6) 数据包会根据以下第 3 层和第 4 层 信息自动进行负载平衡:
-
源 IP 地址
-
目标 IP 地址
-
协议
-
源端口号
-
目标端口号
-
传入接口索引
-
流量类
按数据包负载均衡示例
对所有路由执行按数据包负载均衡:
[edit] policy-options { policy-statement load-balancing-policy { then { load-balance per-flow; } } } routing-options { forwarding-table { export load-balancing-policy; } }
仅对一组有限的路由执行按数据包负载均衡:
[edit] policy-options { policy-statement load-balancing-polic { from { route-filter 192.168.10/24 orlonger; route-filter 10.114/16 orlonger; } then { load-balance per-flow; } } } routing-options { forwarding-table { export load-balancing-policy; } }
要配置按数据包随机喷射负载均衡,请在层次结构级别包含 load-balance random
语句 [edit policy-options policy-statement policy-name term term-name then]
:
[edit policy-options policy-statement policy-name term term-name then] load-balance random;
要完成配置,必须将路由策略应用于从路由表导出到转发表的路由,方法是将策略名称包含在语句在 export
层次结构级别指定的 [edit routing-options forwarding-table]
列表中
[edit routing-options forwarding-table] export [ policy-names ];