Acho que esta questão diz respeito à interação entre o algoritmo de seleção de endereço padrão configurável definido pelo RFC-3484 e o endereços temporários definidos pelo RFC-4941 , embora a solução possa exigir algum terceiro tipo de funcionalidade. Meu ambiente é Linux (versão do kernel 3.2.0 no Ubuntu 12.04) com o utilitário iproute2 (versão ss111117).
Como posso configurar meu computador para usar um endereço regular não otimizado para privacidade para conectar-me a outros nós com o mesmo prefixo, mas usar um endereço temporário para conexões com nós fora desse prefixo?
Por exemplo, digamos que meu computador seja fuzzy
e meu servidor de arquivos seja bunny
. Em algum lugar na Internet IPv6 é um site que eu quero visitar, nosey.example.com
. Aqui estão os endereços atribuídos em fuzzy
:
neirbowj@fuzzy:~$ ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:db8:d00d:babe:6d3b:96d0:f584:beb3/64 scope global temporary dynamic
valid_lft 599342sec preferred_lft 80342sec
inet6 2001:db8:d00d:babe:22fc:11ff:fe53:b2e7/64 scope global dynamic
valid_lft 2591986sec preferred_lft 604786sec
inet6 fe80::22fc:11ff:fe53:b2e7/64 scope link
valid_lft forever preferred_lft forever
bunny
tem um endereço configurado estaticamente no mesmo prefixo.
neirbowj@fuzzy:~$ grep bunny /etc/hosts
2001:db8:d00d:babe::1 bunny
nosey.example.com
não está neste prefixo.
neirbowj@fuzzy:~$ host -t aaaa nosey.example.com
nosey.example.com has IPv6 address 2001:db8:b00b:1e5::1
Os rótulos de endereço em fuzzy
estão definidos para seus padrões.
neirbowj@fuzzy:~$ ip addrlabel
prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 2002::/16 label 2
prefix fc00::/7 label 5
prefix ::/0 label 1
Quando me conecto a bunny
, quero usar 2001:db8:d00d:babe:22fc:11ff:fe53:b2e7
, porque não está marcado como " temporary
". Quando me conecto a nosey.example.com
, quero usar 2001:db8:d00d:babe:6d3b:96d0:f584:beb3
porque está marcado como " temporary
". Isso é possível e, em caso afirmativo, como?
Eu já li Como funciona o trabalho de seleção de endereços de origem IPv6? no Linux , mas não vejo como qualquer uma das regras afetaria essa escolha, nem mesmo como o temporary
flag informa a seleção de endereços.
A razão pela qual eu acho que deveria ser capaz de fazer isso é por causa desse trecho.
RFC-4941
Section 3.1 Assumptions
[...]
Finally, this document assumes that when a node initiates outgoing
communication, temporary addresses can be given preference over
public addresses when the device is configured to do so.
[ADDR_SELECT] mandates implementations to provide a mechanism, which
allows an application to configure its preference for temporary
addresses over public addresses. It also allows for an
implementation to prefer temporary addresses by default, so that the
connections initiated by the node can use temporary addresses without
requiring application-specific enablement. This document also
assumes that an API will exist that allows individual applications to
indicate whether they prefer to use temporary or public addresses and
override the system defaults.