Você definitivamente não quer o maximum-paths
. Isso limitará o tamanho da sua tabela de roteamento e não terá nada a ver com o ECMP.
Então, com apenas:
routing-options {
static {
route 0.0.0.0/0 {
next-hop [ 1.1.1.1 1.1.1.2 ];
metric 10;
}
}
}
Você verá:
lab@router> show route 0.0.0.0/0
...
0.0.0.0/0 *[Static/5] 00:01:28, metric 10
> to 1.1.1.1 via ge-0/0/0.0
to 1.1.1.2 via ge-0/0/0.0
Ambos os próximos saltos aparecem na tabela de roteamento, MAS para ver o que realmente está acontecendo na tabela de encaminhamento, você precisa ir mais fundo:
lab@router> show route forwarding-table destination 0.0.0.0/0
...
Destination Type RtRef Next hop Type Index NhRef Netif
0.0.0.0/0 user 0 1.1.1.1 ucst 558 3 ge-0/0/0.0
Por padrão, quando o roteador empurra a tabela de roteamento para a tabela de encaminhamento, ele seleciona aleatoriamente UM próximo salto. Para alterar esse comportamento, você pode definir uma política de "exportação de tabela de encaminhamento" que controla o que acontece quando a tabela de encaminhamento é criada a partir da tabela de roteamento:
routing-options {
static {
route 0.0.0.0/0 {
next-hop [ 1.1.1.1 1.1.1.2 ];
metric 10;
}
}
forwarding-table {
export LOAD-BALANCE;
}
}
policy-options {
policy-statement LOAD-BALANCE {
then {
load-balance per-packet;
}
}
}
Agora, a tabela de roteamento ainda parece a mesma:
lab@router> show route 0.0.0.0/0
...
0.0.0.0/0 *[Static/5] 00:07:28, metric 10
> to 1.1.1.1 via ge-0/0/0.0
to 1.1.1.2 via ge-0/0/0.0
Mas a tabela de encaminhamento (onde conta) tem as duas rotas:
lab@router> show route forwarding-table destination 0.0.0.0/0
...
Destination Type RtRef Next hop Type Index NhRef Netif
0.0.0.0/0 user 0 ulst 262142 2
1.1.1.1 ucst 558 3 ge-0/0/0.0
1.1.1.2 ucst 540 3 ge-0/0/0.0
Agora você está balanceando a carga!
No entanto, uma coisa a lembrar é que, apesar da declaração incrivelmente enganosa load-balance per-packet
, todos os roteadores da Juniper com essa configuração realmente fazem por fluxo balanceamento de carga. Cada pacote é baseado em hash (src-ip, dst-ip e número de protocolo). Então, se você tiver apenas alguns fluxos de tráfego, eles podem muito bem usar o mesmo próximo salto. Depois de aumentar o número de fluxos, você verá um carregamento mais uniforme.
(Na verdade, o primeiro hardware fez balanceamento de carga por pacote, mas você provavelmente nunca encontrará um)