S několika různými adresami přiřazenými jednomu počítači vznikl problém, kterou adresu použít pro danou komunikaci. K tomuto účelu byl definován algoritmus pro volbu adres, který je popsán v RFC 3484.
Základem algoritmu jsou kandidátské adresy. Pro cílové adresy se seznam kandidátských adres nejčastěji získá prostřednictvím DNS dotazu (převod DNS jména na IPv6 adresu). Tento seznam je následně seřazen podle níže uvedených pravidel od nejvhodnější adresy po nejméně vhodnou, z něhož se vybere nejvhodnější cílová adresa. V případě, že má aplikace k dispozici cílovou IPv6 adresu, výběr cílové adresy odpadá.
K cílové adrese je třeba vybrat nejvhodnější zdrojovou adresu. Pro zdrojové adresy seznam kandidátských adres tvoří všechny individuální adresy přiřazené rozhraní, kterým budou data odeslána k danému cíli. Z toho vyplývá, že každá cílová adresa může mít různé seznamy kandidátských adres pro zdrojovou adresu. V případě směrovače, seznam kandidátských adres pro zdrojovou adresu může obsahovat i individuální adresy ostatních rozhraní, na kterých předává data. Aplikováním níže uvedených pravidel se ze seznamu kandidátských adres vybere nejvhodnější zdrojová adresa.
V případě, že se komunikace nezdaří, může se volba adres opakovat.
Tabulka politik slouží k určení místních preferencí. Jednotlivé záznamy obsahují prefix, prioritu a značku, kde priorita určuje výhodnost dané adresy jako cílové a značka určuje, zdali se zvolený pár adres k sobě hodí. V případě shodné značky obou adres, je takovému páru adres dána přednost. Hledaná priorita a značka se určí na základě nejdelšího shodného prefixu.
V případě, že není tabulka politik nakonfigurována administrátorem, použije se výchozí tabulka politik.
prefix |
priorita |
značka |
::1/128 |
50 |
0 |
::/0 |
40 |
1 |
2002::/16 |
30 |
2 |
::/96 |
20 |
3 |
::FFFF:0:0/96 |
10 |
4 |
Algoritmus má dvě sady pravidel. První se vztahuje na volbu zdrojové adresy a je demonstrována pomocí příkladu, kdy jsou k dispozici dvě zdrojové adresy SA a SB pro daný cíl. Pravidla se aplikují postupně a v případě, že dojde k rozhodnutí, ostatní se neberou v potaz. Jestliže žádné pravidlo nerozhodne, ponechá se volba zdrojové adresy na implementaci. Pořadí pravidel pro volbu zdrojové adresy je:
Algoritmus je symetrický, proto dojde prohození rolí zdrojových adres a k opakované aplikaci pravidel. Aplikováním pravidel se určí nejvhodnější zdrojová adresa pro daný cíl.
Při výběru cílové adresy se mimo jiné zvažuje vhodnost zdrojové a cílové adresy. Z tohoto důvodu se pro každou cílovou adresu prvně určí nejvhodnější zdrojová adresa. Následně dojde k uspořádání cílových adres v kandidátském seznamu podle následujících pravidel:
Počítač má jediné síťové rozhraní, kterému byly přiděleny následující adresy:
Počítač má odeslat data na adresu 2001:718:20:56:E859:A1FF:FE82:AA01 a potřebuje vybrat nejvhodnější zdrojovou adresu. Dále bude použita výchozí tabulka politik, z jejíhož hlediska se všem adresám přiřadí priorita 40 a značka 1.
Lokální linková adresa skončí na pravidle číslo 2, protože její dosah je menší než globální dosah cíle. Mezi globálními adresami rozhodne až pravidlo 8, kdy se jako zdrojová adresa zvolí druhá adresa, protože má shodný nejdelší prefix 2001:718::/32.
Výběr cílové adresy je založen na kandidátském seznamu, který poslal DNS server pro určité doménové jméno. Kandidátský seznam obsahuje následující adresy:
Seznam obsahuje i vhodné zdrojové adresy, které jsou zvoleny na základě algoritmu pro výběr zdrojové adresy. Obě adresy mají shodně přidělenu prioritu 40 i značku 1. Algoritmus rozhodne až na základě pravidla 8, kdy druhá adresa má shodný nejdelší prefix 2001:718::/32. Kandidátský seznam pro cílové adresy bude seřazen následovně:
Tedy pro komunikaci bude zvolena adresa 2001:718:10:1:02B5:32FF:FE01:1984 jako zdrojová a adresa 2001:718::B5: 18FF:FE09:1 jako cílová.