INF.08 · pytanie 56
Którą postać przyjmie adres FE80:0000:0000:0000:0EF0:0000:0000:0400 protokołu IPv6 po kompresji?
- AFE80::EF:4
- BFE8:EF::400
- CFE80::EF0:0:0:400Poprawna
- DFE8:EF0:0:0:400
Wyjaśnienie
Adres IPv6 FE80:0000:0000:0000:0EF0:0000:0000:0400 po poprawnej kompresji przyjmuje postać FE80::EF0:0:0:400. Robi się to według dwóch głównych zasad zapisu IPv6, opisanych m.in. w praktykach zgodnych z RFC 4291 i RFC 5952. Najpierw w każdej 16-bitowej grupie, czyli w każdym hektecie, można usunąć zera wiodące. Dlatego 0EF0 zmienia się na EF0, a 0400 na 400. Grupy 0000 zapisujemy jako 0. Po tym kroku adres wygląda tak: FE80:0:0:0:EF0:0:0:400. Następnie najdłuższy ciąg kolejnych grup zerowych można zastąpić podwójnym dwukropkiem ::, ale tylko jeden raz w całym adresie. Tutaj najdłuższy ciąg to trzy grupy 0:0:0 po FE80, więc dostajemy FE80::EF0:0:0:400. Moim zdaniem to jeden z tych tematów, gdzie najlepiej działa spokojne rozpisanie adresu na osiem pól, bo wtedy od razu widać, czego nie wolno zgubić. W praktyce taki adres FE80 należy do zakresu link-local, używanego lokalnie w segmencie sieci, np. przy autokonfiguracji, Neighbor Discovery albo komunikacji z routerem w tej samej sieci LAN. Dobra praktyka branżowa mówi też, żeby nie kompresować kilku miejsc naraz i nie usuwać zer końcowych z grup, bo wtedy zmienia się rzeczywista wartość adresu.