Parece estar seguindo as regras corretamente.
Quando você faz ping de 2620:0:ccc::2
, nenhuma das regras se aplica:
- Regra 1 (prefira o mesmo endereço) não aplicável
- Regra 2 (Preferir escopo apropriado) os dois endereços de origem candidatos têm o mesmo escopo
- Regra 3 (Evitar endereços obsoletos), nem o endereço de origem candidato foi preterido
- Regra 4 (Prefiro endereço residencial) não aplicável
- Regra 5 (interface de saída) os dois endereços de origem candidatos são atribuídos à mesma interface
- Regra 6 (Preferir etiqueta de correspondência), provavelmente você não configurou nenhum marcador
- Regra 7 (Preferir endereço público) ambos os endereços são públicos
- Regra 8 (Usar o prefixo correspondente mais longo) o prefixo comum é o mesmo em ambos os casos: pode ser 2000: / 4 ou talvez mais, dependendo de quais são os seus endereços IP reais.
Por isso, escolhe arbitrariamente.
No seu próximo teste, você define um dos endereços a ser preterido. Então, pela Regra 3, sempre vai evitar isso.
Uma solução é reconsiderar por que seu prefixo somente local se assemelha muito ao seu prefixo global. Talvez seu prefixo somente local esteja abaixo de fc00 :: / 7 ( ULA ).
Outra solução seria garantir que seus endereços locais sejam rotulados de forma diferente, para que a Regra 6 possa escolher o endereço correto. A desvantagem dessa solução é que você terá que modificar manualmente a tabela de rótulos em todos os hosts da sua rede local. De qualquer forma, algo assim pode funcionar:
ip addrlabel add 2XX2:Y:4001:c00::30/56 label 42