Primeiro, estou adicionando esta pergunta e respondendo a mim mesma, porque esse tipo de comportamento não era absolutamente onde encontrar, espero que ajude alguém.
Problema:
Usamos largura de banda automática para lidar com as assinaturas de largura de banda de nossos LSPs. Os LSPs são de custo igual e aparecem em nossas tabelas de encaminhamento / roteamento de forma adequada, como disponíveis nos próximos saltos para cada destino.
No entanto, para um único destino, os 4 LSPs de custo igual não são balanceados por carga de maneira igual (ou mesmo quase igual). Entendemos que o JUNOS usa um algoritmo de balanceamento de carga por fluxo, apesar da declaração "por pacote" na política para habilitar o balanceamento de carga. Mas isso não explica a principal diferença entre cada assinatura do LSP (esse desequilíbrio ocorre várias vezes por dia, não é uma ocorrência única), como:
jhead@R1> show route protocol rsvp 1.1.1.1 detail
1.1.1.1/32 (2 entries, 1 announced)
State: <FlashAll>
*RSVP Preference: 7/1
Next hop: 192.168.1.1 via xe-0/0/0.0 weight 0x1 balance 35%, selected
Label-switched-path LSP1
Next hop: 192.168.1.2 via xe-1/0/0.0 weight 0x1 balance 35%
Label-switched-path LSP2
Next hop: 192.168.1.3 via xe-0/0/1.0 weight 0x1 balance 26%
Label-switched-path LSP3
Next hop: 192.168.1.4 via xe-0/0/0.0 weight 0x1 balance 5%
Label-switched-path LSP4
R1-R4 são MX480 e CORE-R1-R4 são MX960.
Abaixo estão gráficos comparando a assinatura do RSVP e a utilização do LSP. Vermelho é assinatura, verde é utilização. Você pode ver que a utilização segue a reserva quase exatamente ao longo do dia. Nós deve ver assinaturas ser muito próximos uns dos outros entre os LSPs para o mesmo destino.
Topologia:
R1 - R4 são roteadores de entrada para todos os LSPs, possuem 2 ou 4 LSPs para cada roteador principal.
Configuração:
A configuração LSP é um único destino do R1, apenas como exemplo. Todos os LSPs são configurados exatamente da mesma maneira (novamente, com 2 ou 4).
[edit protocols mpls]
statistics {
file mpls-stats;
interval 300;
auto-bandwidth;
}
traffic-engineering bgp;
label-switched-path LSP1 {
to 1.1.1.1;
optimize-timer 300;
auto-bandwidth {
adjust-interval 7200;
adjust-threshold 10;
minimum-bandwidth 100m;
maximum-bandwidth 4g;
adjust-threshold-overflow-limit 2;
adjust-threshold-underflow-limit 4;
}
primary primary-loose;
}
label-switched-path LSP2 {
to 1.1.1.1;
optimize-timer 300;
auto-bandwidth {
adjust-interval 7200;
adjust-threshold 10;
minimum-bandwidth 100m;
maximum-bandwidth 4g;
adjust-threshold-overflow-limit 2;
adjust-threshold-underflow-limit 4;
}
primary primary-loose;
}
label-switched-path LSP3 {
to 1.1.1.1;
optimize-timer 300;
auto-bandwidth {
adjust-interval 7200;
adjust-threshold 10;
minimum-bandwidth 100m;
maximum-bandwidth 4g;
adjust-threshold-overflow-limit 2;
adjust-threshold-underflow-limit 4;
}
primary primary-loose;
}
label-switched-path LSP4 {
to 1.1.1.1;
optimize-timer 300;
auto-bandwidth {
adjust-interval 7200;
adjust-threshold 10;
minimum-bandwidth 100m;
maximum-bandwidth 4g;
adjust-threshold-overflow-limit 2;
adjust-threshold-underflow-limit 4;
}
primary primary-loose;
}
[edit protocols rsvp]
load-balance bandwidth
interface xe-0/0/0.0 {
bandwidth 9g;
}
interface xe-0/0/1.0 {
bandwidth 9g;
}
interface xe-1/0/0.0 {
bandwidth 9g;
}
[edit routing-options forwarding-table]
export load-balance;
fonte
Respostas:
O problema é o:
Se você consultar a documentação da Juniper para LSPs de RSVP com balanceamento de carga de custo desigual , ela declara:
Isso implica que, independentemente do recurso ser configurado, nenhum balanceamento de carga de custo igual ocorrerá se você não definir estaticamente um valor de largura de banda em um LSP individual, como:
No entanto, a largura de banda automática conta como definir um valor de largura de banda, apesar de não estar presente na configuração.
Quando a largura de banda automática está ativada, o RPD começará a monitorar o consumo da largura de banda. Ele atribuirá valores de largura de banda com base na utilização e, em seguida, a instrução "load-balance bandwidth" no RSVP começará imediatamente a tentar manter as taxas de tráfego nessas assinaturas (35, 35, 26, 5, respectivamente). O problema disso é que ele nunca oferece a largura de banda automática a chance de se ajustar uniformemente, porque o objetivo da "largura de banda do equilíbrio de carga" é manter o tráfego o mais próximo possível dessas proporções. Isso faz sentido quando são definidos algo como 10, 30, 20, 40.
É essencialmente uma condição de corrida entre "largura de banda de balanceamento de carga" e "largura de banda automática"
Após remover:
[editar protocolos rsvp] largura de banda de balanceamento de carga
Tráfego ajustado (com um ligeiro soluço, visto abaixo):
NOTA: Este é um exemplo de um roteador diferente que foi afetado pelo mesmo problema.
Como você remove a capacidade de balancear a carga (para RSVP), o PFE será reprogramado para apenas um único caminho até que um ajuste automático da largura de banda ocorra automaticamente ou você pode forçar um ajuste:
E abaixo, se a largura de banda é ajustada para 2 LSPs com os mesmos sintomas, as configurações mudam e os ajustes ocorreram no meio da sexta-feira, você pode ver as diferenças nas assinaturas quase que imediatamente.
fonte
"Entendemos que o JUNOS usa um algoritmo de balanceamento de carga por fluxo, apesar da declaração" por pacote "na política para habilitar o balanceamento de carga"
Considerou essa afirmação bastante verdadeira ao usar o iperf para testar alguns cenários de balanceamento de carga. Com uma única sessão iperf, o tráfego não é balanceado de carga, mas, ao ativar sessões paralell iperf, o tráfego é balanceado.
Embora a documentação da Juniper sugira o contrário! http://www.juniper.net/documentation/en_US/junos13.2/topics/usage-guidelines/mpls-configuring-load-balancing-across-rsvp-lsps.html
Gostaria de saber se o acima é aplicável a partir de JUNOS13.2
fonte