配置按数据包负载均衡
在 Junos OS 中,您可以通过在路由策略配置中设置 按数据包的负载均衡 操作来启用每流负载平衡。这种命名可能违反直觉,因为在 Junos 中,按 数据包的 负载均衡在功能上等同于其他供应商所说的 按流 负载均衡。
要配置按数据包的负载均衡,请将load-balance per-packet
语句作为语句[edit policy-options policy-statement policy-name term term-name from]
的一个route-filter
选项包含在层次结构级别:
[edit policy-options policy-statement policy-name term term-name from] route-filter destination-prefix match-type { load-balance per-packet; }
或在层次结构级别:[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-packet;
要完成配置,必须将路由策略应用于从路由表导出到转发表的路由,方法是在语句指定的 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 层 信息来对流量进行负载均衡:
源 IP 地址
目标 IP 地址
协议
默认情况下,IP 版本 6 (IPv6) 数据包会根据以下第 3 层和第 4 层信息自动进行负载平衡:
源 IP 地址
目标 IP 地址
协议
源端口号
目标端口号
传入接口索引
流量类
按数据包负载均衡示例
对所有路由执行按数据包负载均衡:
[edit] policy-options { policy-statement load-balancing-policy { then { load-balance per-packet; } } } 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-packet; } } } 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 ];