Pula fc00::/7 to tzw. adresy ULA (Unique Local Addresses) i właśnie one są odpowiednikiem prywatnych adresów IPv4 z zakresów 10.0.0.0/8, 172.16.0.0/12 czy 192.168.0.0/16. Chodzi o adresy, które mają być routowane tylko wewnątrz organizacji lub sieci lokalnej, a nie w publicznym Internecie. Z punktu widzenia administratora sieci działają więc podobnie jak prywatne IPv4: możesz ich używać do adresacji hostów w LAN, w sieciach firmowych, w labach, bez konieczności rejestracji czy kupowania puli od operatora. Standardowo opisuje to RFC 4193, które definiuje właśnie Unique Local IPv6 Unicast Addresses. W praktyce w IPv6 unika się NAT w takiej formie jak w IPv4, ale ULA nadal ma sens: np. do adresacji urządzeń, które nigdy nie powinny być dostępne z Internetu, do połączeń site-to-site VPN między oddziałami firmy, do serwerów baz danych, drukarek, urządzeń IoT. Dobra praktyka jest taka, żeby w sieci firmowej używać ULA równolegle z globalnymi adresami unicast (np. z puli od ISP) – wtedy nawet jeśli zmienisz operatora i zmieni się globalny prefix, wewnętrzna komunikacja oparta na ULA dalej działa bez przeróbek całej adresacji. Warto też wiedzieć, że fc00::/7 obejmuje zakresy zaczynające się od fc00:: oraz fd00::, przy czym w praktyce używa się najczęściej fd00::/8 z losowo generowanym identyfikatorem globalnym, żeby zminimalizować ryzyko konfliktów między organizacjami. Moim zdaniem, z punktu widzenia projektowania sieci, świadomość różnicy między ULA a link-local i global unicast to absolutna podstawa, bo od tego zależy poprawna i bezpieczna architektura adresacji w IPv6.
W pytaniu chodzi o znalezienie takiej puli adresów IPv6, która pełni tę samą rolę co prywatne adresy w IPv4, czyli adresy używane wewnątrz sieci, nienadawane w globalnym Internecie i przeznaczone do komunikacji lokalnej lub między zaufanymi lokalizacjami. W IPv4 to dobrze znane zakresy 10.0.0.0/8, 172.16.0.0/12 i 192.168.0.0/16. W IPv6 tę funkcję pełnią adresy ULA z puli fc00::/7, zdefiniowane w RFC 4193. Częsty błąd polega na myleniu różnych typów adresów IPv6, bo ich zapis wygląda podobnie, a nazwy są mało intuicyjne. Zakres 3ffe::/16 historycznie kojarzy się niektórym z adresacją „niespubliczną”, bo był używany w dawnym projekcie 6bone jako testowa sieć IPv6. Ten projekt został jednak dawno wyłączony, a cała pula 3ffe::/16 jest wycofana i nie jest odpowiednikiem prywatnych adresów. To raczej ciekawostka historyczna niż coś, czego używa się w praktyce. Z kolei fe80::/10 to adresy link-local. One faktycznie nie są routowane w Internecie, ale ich przeznaczenie jest zupełnie inne: działają tylko w ramach jednego segmentu sieci (jednego łącza). Służą do autokonfiguracji, protokołów typu Neighbor Discovery, komunikacji z routerem na tym samym VLAN-ie, itp. Nie używa się ich do normalnej adresacji hostów w całej sieci firmowej, bo nie przechodzą przez routery. Mylenie link-local z adresami prywatnymi to dość typowy skrót myślowy: „skoro nie wychodzą na świat, to pewnie prywatne”. Niestety tak to nie działa. Pula ff00::/8 to natomiast adresy multicast w IPv6. One służą do wysyłania pakietu do wielu odbiorców jednocześnie (np. wszystkie routery, wszystkie węzły w sieci lokalnej) i w ogóle nie są przeznaczone do klasycznej adresacji hostów. Podobnie jak w IPv4 adresy multicast (224.0.0.0/4) nie mają nic wspólnego z prywatnymi zakresami. Dobra praktyka w projektowaniu sieci IPv6 jest taka, żeby wyraźnie rozróżniać: global unicast (publiczne), unique local (odpowiednik prywatnych), link-local (tylko na łączu) i multicast. Dopiero wtedy łatwo uniknąć błędnych skojarzeń i problemów z routowaniem czy bezpieczeństwem.