NESTA PÁGINA
enhanced-hash-key
Sintaxe
enhanced-hash-key { family any { incoming-interface-index; no-tunnel-payload; } family inet { gtp-tunnel-endpoint-identifier; l2tp-tunnel-session-identifier; incoming-interface-index; no-destination-port; no-source-port; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; incoming-interface-index; no-destination-port; no-source-port; traffic-class; } family mpls { ether-pseudowire { zero-control-word; } incoming-interface-index; label-1-exp; no-ether-pseudowire; no-labels; no-payload; } family multiservice { incoming-interface-index; no-mac-addresses; no-payload; outer-priority; source-mac; no-destination-mac; } services-loadbalancing { family inet { layer-3-services { destination-address; incoming-interface-index; source-address; } } family inet6 { layer-3-services { destination-address; incoming-interface-index; source-address; src-prefix-len; } } } symmetric; }
Sintaxe (Série EX)
enhanced-hash-key { ecmp-dlb { assigned-flow; per-packet; flowlet inactivity-interval; ether-type (ipv4|ipv6|mpls); } ecmp-resilient-hash; fabric-load-balance { flowlet { inactivity-interval interval; } per-packet; } hash-mode { layer2-header; layer2-payload; } family inet { no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-next-header; vlan-id; } layer2 { no-destination-mac-address; no-ether-type; no-source-mac-address; vlan-id; } }
Sintaxe (switches da Série QFX5000)
enhanced-hash-key { conditional-match name { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata1 matchdata1; matchdata1-mask matchdata1-mask; offset1-value offset1-value; } offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata2 matchdata2; matchdata2-mask matchdata2-mask; offset2-value offset2-value; } offset3 { base-offset3 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata3 matchdata3; matchdata3-mask matchdata3-mask; offset3-value offset3-value; } offset4 { base-offset4 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata4 matchdata4; matchdata4-mask matchdata4-mask; offset4-value offset4-value; } } ecmp-dlb { assigned-flow; per-packet; flowlet inactivity-interval; ether-type (ipv4|ipv6|mpls); } ecmp-resilient-hash; fabric-load-balance { flowlet { inactivity-interval interval; } per-packet; } flex-hashing name { ethtype { inet { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; } inet6 { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; } mpls { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; num-labels num-labels; } } } hash-mode { layer2-header; layer2-payload; gtp-header-offset offset-value; } hash-parameters { ecmp { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } lag { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } } family inet { gtp-tunnel-endpoint-identifier; no-incoming-port; no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-next-header; vlan-id; } layer2 { no-destination-mac-address; no-ether-type; no-source-mac-address; vlan-id; } symmetric-hash { inet; inet6; } } vxlan { no-inner-payload; }
Sintaxe (switches da Série QFX10000)
enhanced-hash-key { hash-seed seed-value; family inet { gtp-tunnel-endpoint-identifier; no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-incoming-port; } family inet6 { gtp-tunnel-endpoint-identifier; ipv6-flow-label; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-incoming-port; } layer2 { destination-mac-address inner-vlan-id; no-ether-type; no-vlan-id; source-mac-address; } no-mpls; gre { key; protocol; } vxlan-vnid } }
Sintaxe (roteadores da Série SRX5000))
enhanced-hash-key { family inet { gtp-tunnel-endpoint-identifier; incoming-interface-index; l2tp-tunnel-session-identifier; session-id; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; incoming-interface-index; no-flow-label; session-id; traffic-class; } layer2 { destination-mac-address inner-vlan-id; no-ether-type; no-vlan-id; source-mac-address; } no-mpls; gre { key; protocol; } vxlan-vnid } }
Sintaxe (Junos OS Evolved)
enhanced-hash-key { family any { incoming-interface-index; no-tunnel-payload; } family inet { gtp-tunnel-endpoint-identifier; no-destination-port; no-source-port; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; no-destination-port; no-flow-label; no-source-port; traffic-class; } family mpls { label-1-exp; no-labels; no-payload; } family multiservice { no-payload; } hash-seed; } resilient-hash-seed; } }
Sintaxe Junos OS Evolved (QFX5220 e QFX5130)
enhanced-hash-key { ecmp-resilient-hash; family inet { no-incoming-device; no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-incoming-device; no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-nxt-hdr; vlan-id; } hash-mode { layer2-header; layer2-payload; } layer2 { no-destination-mac-address; no-ether-type; no-incoming-device; no-incoming-device; no-smac-address; vlan-id; } hash-parameters { ecmp { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } lag { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } } }
Sintaxe Junos OS Evolved (QFX5240)
enhanced-hash-key { ecmp-dlb { flowlet { reassignment prob-threshold <value>; reassignment quality-delta <value>; } } }
Nível de hierarquia
[edit forwarding-options], [edit logical-systems logical-system-name routing-instances instance-name forwarding-options], [edit routing-instances instance-name forwarding-options]
O Junos OS Evolved usa o set
comando em vez de edit
.
Descrição
Configure a chave de hash usada para o tráfego de grupo de agregação de enlaces de hash (LAG) e multicaminho de igual custo (ECMP), ou habilite o balanceamento de carga adaptativo (ALB) em uma malha virtual de chassi (VCF). Em QFX5240 dispositivos, configure apenas a chave de hash usada para o tráfego de grupo de agregação de enlaces de hash (LAG) e multicaminho de igual custo (ECMP).
A partir do Junos OS Release 14.1X53-D46, 15.1R7, 16.1R6, 17.1R3, 17.2R2, 17.3R2 e 17.4R1, o recurso ALB está preterido. Se fabric-load-balance
estiver habilitado na configuração para um VCF, exclua o item de configuração ao atualizar o Junos OS.
O algoritmo de hashing é usado para tomar decisões de encaminhamento de tráfego para o tráfego entrando em um pacote LAG ou para a saída de tráfego de um switch quando o ECMP é habilitado.
Para pacotes LAG, o algoritmo de hashing determina como o tráfego que entra em um pacote LAG é colocado nos links de membro do pacote. O algoritmo de hashing tenta gerenciar a largura de banda equilibrando uniformemente todo o tráfego de entrada nos links de membros do pacote.
Quando o ECMP é habilitado, o algoritmo de hashing determina como o tráfego de entrada é encaminhado para o dispositivo de próximo salto.
O hash computado não é usado apenas na seleção de um caminho ECMP, mas também é usado para balanceamento de carga. A partir do Junos OS Release 18.3R1, ele flow-label field
é incluído por padrão na computação de hash para pacotes IPv6, GRE e PPPoE. Isso pode ser benéfico, por exemplo, quando você tem roteadores MX operando como roteador designado (DR) ou ponto de encontro (RP) e deseja carregar o tráfego de equilíbrio com base em um único fluxo de Camada 3 ou Camada 4. Você pode reverter para o método anterior de computação de hash definindo a opção no-flow-label
.
-
Para pacotes GRE, se o pacote IP externo não for pacote de opção e o pacote interno for IPv4 ou IPv6, então os endereços IP de origem e destino do pacote interno serão incluídos na computação de hash.
As portas de Camada 4 também serão incluídas na computação de hash se o protocolo do pacote IP interno for TCP ou UDP, e se o pacote IP interno não for um pacote de opções.
Se o pacote IP externo não for um pacote sem opções, e o pacote interno for MPLS, o rótulo interno superior será incluído na computação de hash.
-
Para o pacote PPPoE, se o pacote interno for IPv4 ou IPv6, então os endereços IP de origem e destino do pacote interno serão incluídos na computação de hash.
As portas de Camada 4 estão incluídas na computação de hash se o protocolo do pacote IP interno for TCP ou UDP, e o pacote IP interno não for um pacote sem opções.
Para roteadores da Série MX com MPCs, roteadores T4000 com FPCs Tipo 5, switches EX9200 e roteadores PTX10008, selecione dados usados na chave de hash para mecanismos de encaminhamento IP aprimorados.
Por padrão, os MPCs usam os seguintes parâmetros para hashing:
-
Endereço IP de origem
-
Endereço IP de destino
-
Protocolo de camada 3
-
Porta de origem
-
Porta de destino
-
Encapsulamento de roteamento genérico (GRE) apenas para pacotes GRE.
Você pode modificar o mecanismo de hashing padrão em MPCs e FPCs Tipo 5 configurando declarações no nível de [edit forwarding-options enhanced-hash-key]
hierarquia.
-
Nos switches da Série QFX10000, você pode configurar a semente de hash para balanceamento de carga. Por padrão, os switches da Série QFX10000 usam o endereço MAC do sistema para gerar um valor de semente de hash. Você pode configurar o valor da semente de hash usando a hash-seed declaração no nível [
edit forwarding-options enhanced-hash-key
] de hierarquia. Definir um valor entre 0 e 4294967295. Se você não configurar um valor de semente de hash, o sistema gera um valor de semente de hash com base no endereço MAC do sistema. -
A partir do Junos OS Release 18.4R1, o hashing simétrico é suportado nos switches da Série QFX10000. Você configura a opção
no-incoming-port
na hierarquia [editar opções de encaminhamento aprimoradas-hash-key]. Por padrão, o IP de destino (DIP), o SIP, as portas de origem e destino da Camada 4 e a porta de entrada são usados para hashing. Você só pode configurar o hashing simétrico em nível global.
Nos switches da Série QFX5000, os pacotes multicast são duplicados ou descartados quando vlan-id
estão incluídos na enhanced-hash-key
configuração. Assim, ao configurar enhanced-hash-key
, você deve configurar layer2-payload
e layer2-header
opções sem configurar vlan-id
. Esse comportamento só é visto em tráfego multicast.
-
A partir do Junos OS Release 19.4R1, o balanceamento dinâmico de carga (DLB) no ECMP é suportado em switches QFX5120-32C e QFX5120-48Y. Você pode configurar a opção
ecmp-dlb
na hierarquia [editar opções de encaminhamento aprimoradas-hash-key]. Consulte o balanceamento dinâmico de carga para obter mais detalhes. -
Para habilitar o hashing simétrico na linha QFX5000 de switches, configure a opção
symmetric-hash
.
A chave de hash aprimorada é suportada em roteadores SRX5000 implementando um caminho de controle para que a configuração configurada chegue à placa de processamento de serviços (SPC2) e SPC3. Você configura a opção session-id
de habilitar o caminho de controle para que a configuração configurada chegue à unidade de processamento de serviços (SPU).
Para obter mais detalhes, veja CLI Explorer.
Padrão
No PTX, em comparação com o MX (que é semelhante ao QFX), as opções de endereço mac de origem e destino para computação de hash são diferentes. Embora o QFX exclua os campos de endereço MAC padrão para computação de hash, o PTX inclui o MAC de destino, excluindo o source-mac.
Opções
services-loadbalancing
— Distribui tráfego entre PICs com base em endereço IP de origem quando uma rota que aponta para mais de um serviço PICs é instalada.
symmetric
— Habilite o balanceamento de carga simétrico em interfaces Ethernet agregadas. Essa opção é necessária apenas para MPCs baseados em trio.
Seleções de dados para services-loadbalancing
:
-
inet
— protocolo de endereçamento IPv4. -
inet6
— protocolo de endereçamento IPv6. -
layer-3-services
— Inclua dados IP de camada 3 na chave de hash. -
incoming-interface-index
— Inclua o índice de interface de entrada na chave de hash. -
source-address
— Inclua o endereço-fonte na chave de hash. -
destination-address
— Inclua o endereço de destino na chave de hash. -
src-prefix-len
— Inclua o comprimento do prefixo de origem na chave de hash.
Seleções de dados para a família any
:
-
incoming-interface-index
—(apenas PTX10008) Incluir o índice de interface de entrada na chave de hash. -
no-tunnel-payload
— ((apenas PTX10001-36MR, PTX10004, PTX10008 e apenas PTX10016) Omite os dados de carga do túnel a partir da chave de hash.
Seleções de dados para a família inet
:
-
gtp-tunnel-endpoint-identifer— Inclua o campo de identificador de endpoint de túnel (TEID) na chave de hash para tráfego de protocolo de tunelamento GPRS (GTP).
Nota:Essa opção é suportada apenas em roteadores da Série MX com MPCs e no roteador MX80.
-
incoming-interface-index
— Inclua o índice de interface de entrada na chave de hash. -
no-destination-port
— Omite a porta de destino IP na chave de hash. -
no-source-port
— Omite a porta de origem IP na chave de hash. -
type-of-service
— Inclua byte de tipo de serviço (TOS) na chave de hash.
Seleções de dados para a família inet6
:
-
gtp-tunnel-endpoint-identifer— Inclua o campo de identificador de endpoint de túnel (TEID) na chave de hash para tráfego de protocolo de tunelamento GPRS (GTP).
Nota:Essa opção é suportada apenas em roteadores da Série MX com MPCs e no roteador MX80.
-
incoming-interface-index
— Inclua o índice de interface de entrada na chave de hash. -
no-destination-port
— Omite a porta de destino IP na chave de hash. -
no-source-port
— Omite a porta de origem IP na chave de hash. -
traffic-class
— Inclua o byte da classe de tráfego na chave de hash.
Seleções de dados para a família mpls
:
-
ether-pseudowire
— IP de equilíbrio de carga sobre pseudowire Ethernet. A presença de palavra de controle zero na carga indica um quadro Ethernet. -
incoming-interface-index
— Inclua o índice de interface de entrada na chave de hash. -
label-1-exp
— O bit EXP do primeiro rótulo é usado no cálculo de hash. -
no-ether-pseudowire
— Omite os dados de carga de pseudowire da Ethernet da chave hash (roteadores da Série MX apenas com MPCs). -
no-labels
— Omite rótulos MPLS da chave de hash (apenas PTX10008). -
no-payload
— Omite os dados de carga MPLS da chave de hash.
Seleções de dados para a família multiservice
:
-
incoming-interface-index
— Inclua o índice de interface de entrada na chave de hash. -
no-mac-addresses
— Omite endereços MAC de origem e destino a partir da chave de hash. -
no-payload
— Omite os dados de carga da chave de hash. -
outer-priority
— Inclua os bits prioritários externos do 802.1 na chave de hash. -
source-mac
— Inclui endereço MAC de origem na chave de hash -
no-destination-mac
— Exclui o endereço MAC de destino na chave de hash.
Nível de privilégio exigido
interface — Para visualizar essa declaração na configuração.
controle de interface — para adicionar essa declaração à configuração.
Informações de versão
Declaração introduzida no Junos OS Release 10.1.
services-loadbalancing
declaração introduzida no Junos OS Release 11.2.
gtp-tunnel-endpoint-identifier
declaração introduzida no Junos OS Release 13.2
A fabric-load-balance
declaração introduzida no Junos OS Release 14.1X53-D10.
A fabric-load-balance
declaração depreciou a partir das versões Junos OS 14.1X53-D46, 15.1R7, 16.1R6, 17.1R3, 17.2R2, 17.3R2 e 17.4R1.
A hash-seed
declaração introduzida no Junos OS Release 15.1X53-D30.
ether-pseudowire
declaração introduzida no Junos OS Release 16.1 para a Série M, Série MX e Série PTX.
l2tp-tunnel-session-identifier
declaração introduzida no Junos OS Release 17.2
A partir do Junos OS Release 18.3R1, o comportamento padrão para a computação de hash de pacotes IPv6, GRE e PPPoE é incluir o campo de rótulo de fluxo para um melhor balanceamento de carga em certos casos. Use a opção no-payload
de reverter para o método anterior para computação de hash.
A ecmp-dlb
declaração introduzida no Junos OS Release 19.4R1 para switches QFX5120-32C e QFX5120-48Y.
Opção symmetric-hash
introduzida no Junos OS Release 20.4R1.
Declaração introduzida no Junos OS Evolved Release 21.3R1.
A ecmp-dlb
declaração é introduzida no Junos OS Release 23.2R1 para switches EX4400-24T, EX4400-24X e EX-4400-48F.
A ecmp-dlb
declaração para reequilíbrio de caminho reativo introduzida no Junos Evolved Release 22.2X100-D20 para switches QFX5240.