Resumo

  • O Flow Label é um campo de 20 bits no cabeçalho fixo do IPv6; junto aos endereços, pode sustentar uma chave de classificação sem procurar portas de transporte.
  • A fonte deve manter um valor não nulo por fluxo e distribuir valores entre fluxos, mas colisões continuam possíveis e o campo não é autenticado.
  • A revisão da RFC 6437 abriu um modelo mais simples e sem estado; as RFCs 6438 e 7098 aplicaram esse modelo a caminhos de túnel e servidores.

O caminho de reserva começa no zero

Um pacote com Flow Label igual a zero está simplesmente sem rótulo. A RFC 7098 preserva para ele o tratamento tradicional, no qual um balanceador procura informações do transporte. Essa possibilidade evita que o uso do campo dependa de uma adoção universal e imediata.

Quando há um valor não nulo, a fonte deve colocar o mesmo número em todos os pacotes de um fluxo. Ao mesmo tempo, os valores de fluxos diferentes devem se aproximar de uma distribuição uniforme e ser difíceis de prever. Um hash de 20 bits do quíntuplo ou uma escolha pseudoaleatória com pouco estado na fonte são exemplos; não há um algoritmo único imposto. Atribuição sequencial não é recomendada.

O conceito de fluxo não corresponde obrigatoriamente a uma conexão de transporte. Ainda assim, a RFC 6437 recomenda que conexões ou correntes de aplicação sem relação normalmente recebam fluxos distintos. Como existem apenas vinte bits, duas comunicações simultâneas com os mesmos endereços podem colidir. O classificador dará a elas o mesmo tratamento baseado no rótulo, sem que isso as torne uma única comunicação.

Depois de definido, um valor não nulo deve chegar sem alteração. Um equipamento de encaminhamento pode preencher um zero em nome da fonte, porém a função precisa ser configurável e ficar desligada por padrão. A atribuição pela fonte é preferida, pois é ali que a separação entre fluxos pode ser conhecida com mais precisão.

A vantagem de saber onde olhar

Portas de transporte são entradas comuns de um hash de balanceamento, mas nem sempre estão disponíveis. Elas podem não constar de um fragmento, surgir apenas depois de cabeçalhos de extensão ou ficar inacessíveis por criptografia. O Flow Label ocupa uma posição conhecida do cabeçalho IPv6. Ele não mostra a porta escondida nem o significado da aplicação; oferece outro material para classificação.

Em um túnel IP sobre IPv6, descrito na RFC 6438, vários fluxos internos podem compartilhar os mesmos endereços externos. Um ECMP ou LAG que use apenas esse par tende a polarizar o tráfego em um só caminho. O ponto emissor do túnel pode derivar um rótulo externo do par ou do quíntuplo interno, mantê-lo constante naquele fluxo e produzir outros valores para outros fluxos. Roteadores intermediários passam a ter diversidade sem analisar a sessão interna.

Colisões ocasionais permanecem aceitáveis. Dois fluxos de usuários podem cair no mesmo tratamento e no mesmo caminho; isso não promete exclusividade, entrega ordenada ou um servidor específico.

Uma chave possível para servidores

A RFC 7098 descreve balanceadores de camada 3/4 que usam o endereço de origem e o Flow Label, ou os endereços de destino e origem mais o label, como chave de sessão. Um sistema sem estado calcula um hash para manter os pacotes de um fluxo no mesmo servidor. Um sistema com estado guarda a associação entre chave e servidor.

Guardar essa associação não transforma a chave em identidade. Se a fonte reutilizar o mesmo label, com os mesmos endereços, em uma nova sessão de transporte, o balanceador não consegue distingui-la apenas pelos campos escolhidos. O mecanismo conserva afinidade dentro de seus limites; não observa o nascimento ou o fim da sessão de aplicação.

O que mudou depois da RFC 3697

A RFC 6437 substituiu a RFC 3697 e passou a incentivar valores não nulos, distribuição uniforme e geração sem estado. Manteve a proibição de modificar valores não nulos em trânsito, ao mesmo tempo que aceitou uma atribuição controlada para pacotes ainda zerados.

Historicamente, o campo se tornou mais prático ao abandonar a expectativa de uma semântica rica. Essa é uma inferência editorial a partir das regras: a fonte fornece material estável e distribuído; o caminho o usa como parte de um hash. Não é evidência de que toda rede ou todo fabricante faça isso hoje.

As três fontes não contêm censo atual de adoção, comparação de equipamentos ou ganho medido de desempenho. Elas sustentam o mecanismo e seus limites, não uma alegação de implantação universal.

Fontes