配置按数据包负载均衡
在 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;
}
如果同时包含 layer 3 和 layer 4 语句,设备将使用以下第 3 层和第 4 层信息来实现负载平衡:
源 IP 地址
目标 IP 地址
协议
源端口号
目标端口号
传入接口索引
IP 服务类型
当所有 第 3 层 和 第 4 层 参数都相同时,设备将通过同一接口在流中发送数据包,这反过来有助于防止 TCP 和 UDP 流无序交付。
互联网控制信息协议 (ICMP) 数据包的处理方式不同,因为字段位置偏移量是校验和字段,这使得每个 ping 数据包成为一个单独的“流”。还有其他可以封装在 IP 中的协议,这些协议在 32 位偏移量中可能具有不同的值。这也可能带来问题,因为这些协议被视为单独的流程。
默认情况下,或者如果仅包含 layer 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;
}
}
要配置每个数据包的随机喷负载平衡,请在层次结构级别包含[edit policy-options policy-statement policy-name term term-name then]该load-balance random语句:
[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 ];