Projekt Sieciowy IPv6







Autor: Dariusz Lipiński

Dział: IPv6: "Microsoft Windows" i "Cisco Systems"



2.Protokół IPv6 w systemach firmy Microsoft 4

1.1 Ipv6 oraz Microsoft Windows 5

1.1.1Microsoft IPV6 Technology Preview for Windows 2000 7

1.1.1.1 Podstawy 7

1.1.1.2 Wymagania 7

1.1.1.3 Instalacja IPv6 7

1.1.1.4 Upgrade 8

1.1.1.5 Konfiguracja 8

1.1.1.6 Narzędzia 9

1.1.1.7 Aplikacje 14

1.1.1.8 Problemy 14

1.1.2Microsoft Research IPv6 Release 15

1.1.2.1 Podstawy 15

1.1.2.2Wymagania 15

1.1.2.3 Instalacja IPv6 15

1.1.2.4 Instalacja na Windows 2000 z dodatkiem Service Pack 2 15

1.1.2.5 Upgrade 16

1.1.2.6 Konfiguracja 16

1.1.2.7 Narzędzia 16

1.1.2.8 Aplikacje 16

1.1.3IPv6 w nowych wersjach Windows 17

1.1.3.1 Instalacja 18

1.1.3.2 Narzędzia i konfiguracja 18

1.1.4IPSec 18

2.1.4.1Konfiguracja IPSec pomiędzy dwoma stacjami w sieci lokalnej 18

2.1.4.2Problemy 22

1.1.5Połączenia IPv6 22

1.1.5.1 Polączenie typu link - local 22

1.1.5.2 Połączenie IPv6 pomiędzy dwoma podsieciami IPv4 24

1.1.5.3Przykład manualnej konfiguracji 6to4 25

1.1.5.4Podłączenia do sieci 6bone 26

1.1.5.5 Konfiguracja dwóch tuneli 27

1.1.6IPv6 i WWW 28

1.1.6.1 Witryny internetowe dostępne poprzez IPv6 29

1.2Aplikacje IPV6 dla Microsoft Windows 30

1.2.1Fnord! - serwer www IPv6 30

1.2.1.1 Instalacja i konfiguracja 31

1.2.1.2 Problemy 31

1.2.2Apache - serwer www IPv6 31

1.2.2.1 Instalacja i konfiguracja 31

1.2.2.2 Problemy 32

1.2.3Klienci ssh 32

1.2.3.1 Putty 32

1.2.3.2 Terra Term SSH 32

1.2.4Inne aplikacje 32

4.Bibliografia 34

5. 35

1.






2.Protokół IPv6 w systemach firmy Microsoft



    1. Ipv6 oraz Microsoft Windows

Microsoft, tak jak i każda inna firma branży informatycznej docenia potrzebę wprowadzenia protokołu IPv6. Postępowanie "giganta z Redmond" w tym przypadku jest jak najbardziej stosowne i dalekie od praktyk monopolistycznych. Mówiąc o wdrażaniu IPv6 przez Microsoft, całą akcję można opisać w czterech krokach, (o których mówi zresztą sam Microsoft):


Mam nadzieję, ze wszystkie, wymienione tu postulaty zostaną spełnione i dzięki staraniom największej firmy programistycznej rozwój i wdrożenie IPv6 będzie szybsze i łatwiejsze.

Microsoft wydał do tej pory dwie, wspominane implementacje protokołu IPv6: "The Microsoft Research IPv6 implementation" oraz "Microsoft Ipv6 Technology Preview for Windows 2000". I właśnie te produkty opiszę.


      1. Microsoft IPV6 Technology Preview for Windows 2000

        1. Podstawy

Microsoft przygotował oficjalne dodatek do W2k wspierający protokół IPv6 o nazwie "Microsoft IPv6 Technology Preview for Windows 2000" (zwany dalej w skrócie "Ms IPV6 TP"). Dodatek ten przeznaczony jest głównie dla programistów, pragnących rozwijać aplikacje dla Ipv6. Co nie oznacza, ze szary użytkownik nie może go wykorzystać. Dodatek można pobrać z serwów Microsoftu:
(http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp).

Oficjalnie Microsoft nie wspiera Windows 9x, Me oraz Ce.


        1. Wymagania

Aby zainstalować "Ms IPv6 TP" wymagana jest platforma Windows 2000 w edycji Proffesional, Server lub Advanced Server. Wersje beta tych produktów nie są wspierane. Ponadto wymagany jest Windows 2000 Service Pack 1. "Ms IPv6 TP" można zainstalować jedynie na angielskich wersjach wymienionych produktów.

        1. Instalacja IPv6

Instalacja polega na uruchomieniu samorozpakowujacego się archiwum, które tworzy katalog ipv6kit na domyślnym dysku systemowym. W katalogu tym znajdują się:

- plik setup.exe, który instaluje narzędzia do protokółu ipv6

- przykładowe pliki źródłowe implementujące ipv6


Po wykonaniu komendy setup system zainstaluje odpowiednie komponenty i restartuje system.


Instalator kopiuje następujące pliki:

- tcpip6.sys - driver protokołu

- wship6.dll - dynamiczna biblioteka winsock

- ipv6.exe - narzędzie konfigurujące

- ping6.exe - wersja ping'a dla ipv6

- tracert6.exe - wersja tracert dla ipv6

Instalator zamienia następujące pliki:

- winnet.dll - główna biblioteka IPv6

- ftp.exe - wersja ftp obsługująca IPv6

- telnet.exe - wersja telnet obsługująca IPv6

- tlntsvr.exe - wersja servera telnet'u obsługująca IPv6


Następnie, korzystając z właściwości połączenia sieciowego należy dodać nowy protokół o nazwie "Microsoft IPv6 Protocol". Konfiguracja jest zakończona.

        1. Upgrade

W przypadku posiadania wcześniejszych wersji protokółu IPv6 (Microsoft Research IPv6 Technology Preview) wymagane jest wcześniejsze ich odinstalowanie, a następnie postępowanie analogiczne do standardowej instalacji.


        1. Konfiguracja

Uruchomienie protokółu następuje po wydaniu komendy: net start tcpip6

Analogicznie można zatrzymać działanie protokółu: net stop tcpip6


Konfiguracji należy dokonać ręcznie przy użyciu narzędzia ipv6.exe, Poniżej znajduje się przykładowy skrypt konfigurujący ipv6. Należy zwrócić szczególną uwagę na fakt, iż zmiany w konfiguracji nie są zapamiętywane przez system, należy przeprowadzić rekonfiguracje po każdym restarcie. Najlepiej wykonać jest to za pomocą prostego skryptu, uruchamianego przy starcie komputera.


Przykład skryptu:

net start tcpip6

c:\winnt2\system32\ipv6.exe adu 4/3ffe:8010:7:20:1::2


Opis skryptu:

komenda net start uruchamia protokół IP w wersji szóstej

komenda ipv6 adu 4 konfiguruje podany adres na czwartym interfejsie.


        1. Narzędzia

Po zainstalowaniu "Ms IPv6 TP" dostępne mamy następujące narzędzia:

ipv6.exe - podstawowe narzędzie służące do konfiguracji protokołu oraz wyświetlania jego stanu.

Wyświetla informacje o podanym interfejsie lub o wszystkich, jeśli zostaje użyte bez parametru. W wyniku otrzymujemy następujące informacje:

Status sieci

Czy używa protokołu Neighbor Discovery

Adres link-level

Adres lub adresy ipv6

Adres multikastowy

Liczbę MTU

Hop limit

Czas osiągnięcia

Poniżej przedstawiam przykładowy listing opisywanej komendy.

D:\>ipv6 if

Interface 3 (site 1): Local Area Connection

cable unplugged

uses Neighbor Discovery

link-level address: 00-10-4b-27-35-25

preferred address 3ffe:8010:7:20:1::11, infinite/infinite

preferred address fe80::210:4bff:fe27:3525, infinite/infinite

multicast address ff02::1, 1 refs, not reportable

multicast address ff02::1:ff27:3525, 1 refs, last reporter

multicast address ff02::1:ff00:11, 1 refs, last reporter

link MTU 1500 (true link MTU 1500)

current hop limit 128

reachable time 44500ms (base 30000ms)

retransmission interval 1000ms

DAD transmits 1

Interface 2 (site 0): Tunnel Pseudo-Interface

does not use Neighbor Discovery

link-level address: 0.0.0.0

link MTU 1280 (true link MTU 65515)

current hop limit 128

reachable time 0ms (base 0ms)

retransmission interval 0ms

DAD transmits 0

Interface 1 (site 0): Loopback Pseudo-Interface

does not use Neighbor Discovery

link-level address:

preferred address ::1, infinite/infinite

link MTU 1500 (true link MTU 1500)

current hop limit 1

reachable time 0ms (base 0ms)

retransmission interval 0ms

DAD transmits 0


Usuwa podany interfejs


Dodaje albo usuwa adres ipv6, przypisany do odpowiedniego interfejsu. Ustala jego czas życia (w sekundach), jeśli parametr life nie jest określony czas życia jest nieskończony. Dla adresów typu anycast możliwymi wartościami parametru life są zero lub nieskończoność. Podając parametr life równy 0 usuwamy interfejs:

D:\>ipv6.exe adu 3/3ffe:8010:7:20:1::13 life 0


Dodaje, usuwa, bądź aktualizuje prefiks w tablicy prefiksów


Wyświetla stan tablic routingu


Dodaje bądź usuwa wpis w tablicy routingu. Prefiks jest parametrem obowiązkowym.


6to4cfg [-r] [-s] [-u] [-R relay] [-b] [-S adress] [filename]

Zestawia połączenia typu 6to4

Zapisuje skrypt konfiguracyjny do pliku. Podając parametr con wyświetlimy skrypt na ekranie. Bez podania nazwy pliku 6to4cfg automatycznie zmieni konfiguracje IPv6 na komputerze.

Umożliwia routowanie IPv6 na interfejsach sieciowych

Uaktywnia adresowanie typu site-local w sieci 6to4. Ten parametr należy używać w połączeniu z parametrem -r

specyfikuje nazwę albo adres IPv4 routera 6to4. Domyślnym adresem jest 6to4.ipv6.microsoft.com

Podaje lokalny adres IPv4 dla prefiksu 6to4


ipsec6.exe - narzędzie do konfiguracji polis i bezpieczeństwa dla IPSec ipv6

wyświetla aktywne polisy; wszystkie, badź te, dla podanego interfejsu. Sposób wyświetlania, pozostawia wiele do życzenia:




D:\>ipsec6 sp

All Security Policies

________________________________________________________________________

________________________________________________________________________

_____________________________________________________________________________

Policy RemoteIPAddr LocalIPAddr

Protocol RemotePort LocalPort IPSecProtocol IPSecMode

RemoteGWIPAddr SABundleIndex Direction Action

________________________________________________________________________

________________________________________________________________________

________________________________________________________________________

2 - 3ffe:8010:7:20:1::11 - *

- * - * - * AH TRANSPORT

* NONE BIDIRECT BYPASS

1 - * - *

- * - * - * NONE *

* NONE BIDIRECT BYPASS

________________________________________________________________________________



W rzeczywistości jest to prosty plik tekstowy *.spd, zawierający konfigurację SP który najlepiej oglądać w notatniku z wyłączoną opcją "zawijanie wierszy"

wyświetla aktywne SA (security association), sytuacja podobna jak przy komendzie ipsec6 sp, w tym przypadku jest to zawartość pliku konfiguracyjnego SA (*.sad)

tworzy pliki: (nazwa_pliku.sad) dla SA oraz (nazwa_pliku.spd) dla polisy, zawierające konfiguracje IPSec, pliki tworzone są w bieżącym katalogu:


D:\ipsec>ipsec6 c test

SPD -> test.spd

SAD -> test.sad


instaluje SA i polisy bezpieczeństwa zdefiniowane w plikach (nazwa_pliku.sad i nazwa_pliku.spd).

D:\>ipsec6 a test

1 new SP entries installed.

0 new SA entries installed.


W przypadku błędu program zgłosi stosowny komunikat:

D:\>ipsec6 a test

0 new SP entries installed.

Key file test.key could not be opened Entry 2.


Program informuje, w którym wpisie jest błąd oraz którego pola on dotyczy. Tworzy też plik ~ipsec6.res w domyślnym katalogu, gdzie zapisuje komunikat ostatniego błędu.


kasuje SP albo SA z listy aktywnych polis, parametr [numer] oznacza numer wpisu.


ping6.exe - odpowiednik swojego poprzednika dla wersji ipv4, podobnie wyglądają rezultaty działania:

C:\>ping6 3ffe:8010:7:20:1::13


Pinging 3ffe:8010:7:20:1::13 with 32 bytes of data:


Reply from 3ffe:8010:7:20:1::13: bytes=32 time<1ms

Reply from 3ffe:8010:7:20:1::13: bytes=32 time<1ms

Reply from 3ffe:8010:7:20:1::13: bytes=32 time<1ms

Reply from 3ffe:8010:7:20:1::13: bytes=32 time<1ms


Przydatną opcją jest opcjonalny parametr -a, który rozwiązuje nazwy.


tracert6.exe - nowa wersja aplikacji tracert.exe:

C:\>tracert6 3ffe:8010:7:20:1::13


Tracing route to 3ffe:8010:7:20:1::13

over a maximum of 30 hops:


1 <1 ms <1 ms <1 ms 3ffe:8010:7:20:1::13


Trace complete.


checkv4.exe - narzędzie do kontroli kodu źródłowego, wychwytujące kod, który należy zmienić, aby przystosować aplikację do pracy z ipv6. Poniżej przedstawiam przykładowy wynik działania checkv4.exe na fragmencie kodu:

test.c(35) : gethostbyname : use getaddrinfo instead

test.c(40) : gethostbyaddr : use getnameinfo instead

test.c(48) : SOCKADDR_IN : use SOCKADDR_STORAGE instead, or use SOCKADDR_IN6 in addition for IPv6 support

test.c(57) : AF_INET : use AF_INET6 in addition for IPv6 support

test.c(89) : inet_addr : use WSAStringToAddress or getaddrinfo with AI_NUMERICHOST instead


        1. Aplikacje

Razem z MIPv6TP dostajemy podstawowe aplikacje, zdolne do wykorzystywania protokołu IPv6.


ftp.exe - klient ftp z możliwością dokonywania połączeń po ipv4 i ipv6

telnet.exe - klient telnet z możliwością dokonywania połączeń po ipv4 i ipv6

tlntsvr.exe - serwer telnet'u z możliwością dokonywania połączeń po ipv4 i ipv6


        1. Problemy

Problemy, które wystąpiły podczas użytkowania Ms IPv6 TP:

Problem 1:

Podczas próby dodania nowego adresu, system odmawiał wykonania polecenia, sygnalizując błąd nr 58.

Rozwiązanie:

Usunięcie i ponowne dodanie Ms IPv6 TP rozwiązało problem. Przyczyna pozostaje nieznana, podejrzewa się ogólne komplikacje z instalowanymi w międzyczasie komponentami sieciowymi.

      1. Microsoft Research IPv6 Release

        1. Podstawy

Microsoft Resarch IPv6 Release, był pierwszym pakietem udostępniającym IPv6. Prace nad nim rozpoczęły się w 1998 r, pierwsza jego wersja powstała była przeznaczona dla Windows NT. Obecna edycja nosi numer 1.4 i to ją przedstawię poniżej. Edycja ta ma niewątpliwe walory edukacyjne, ponieważ dostarczane są w raz z nią źródła większości wykorzystywanych programów i sterowników.


        1. Wymagania

Testy przeprowadzane przez Microsoft pozwalają na bezproblemową pracę z "Microsoft Reserch IPv6 Release" pod systemami: Windows 2000 (oprócz Beta 1) oraz Windows NT 4.0 Service Pack 3 (także Service Pack 4).


        1. Instalacja IPv6

Pierwszą rzeczą, jaką należy zrobić, jest skompilowanie dostarczonych źródeł. Po rozpakowaniu pakietu, w katalogu kit znajduję się skrypt mkkit.cmd oraz pliki konfiguracyjne dla Windows NT i Windows 2000. Uruchomienie skryptu z parametrem, którym jest docelowy katalog, powoduje przygotowanie wersji instalacyjnej. Następnie, korzystając z właściwości połączenia sieciowego należy dodać nowy protokół o nazwie "Microsoft IPv6 Protocol" - tak jak w przypadku Micorosoft IPv6 Technology Preview.

Podczas instalacji na Windows NT należy jeszcze restartować stację roboczą.


        1. Instalacja na Windows 2000 z dodatkiem Service Pack 2

Jeśli w systemie Windows 2000, zainstalowany jest dodatek Service Pack 2, instalacja pakietu nieco się komplikuje. Należy pobrać z internetu edycję "Ms IPv6 TP" oznaczoną numerem 001205 (tpipv6-0012205.exe) i rozpakować archiwum do katalogu. Następnie z podkatalogu files należy wyedytować plik hotfix.ini.

W sekcji [version] należy zmienić wpis:

NTServicePackVersion=256,

Na następujący:

NTServicePackVersion=512

Następnie zapisać plik. Teraz wystarczy już uruchomić hotfix.exe i postępować zgodnie z instrukcjami.


        1. Upgrade

W przypadku posiadania wcześniejszych wersji "Ms Research IPv6 protocol", wymagane jest wcześniejsze ich odinstalowanie. A następnie postępowanie analogiczne jak w przypadku instalowania protokołu po raz pierwszy.

        1. Konfiguracja

Edycja ta obsługuje statyczną autokonfigurację na poziomie adresów link - local, bezpośrednio po starcie protokołu adresy zostaną przydzielone do interfejsów sieciowych.

Manualna konfiguracja jest identyczna z tą, którą należy zastosować do konfigurowania IPv6 w MS Technology Preview, opisaną w punkcie 1.1.1.5


        1. Narzędzia

Tak jak w przypadku "Microsoft IPv6 Technology Preview", podstawowym narzędziem konfiguracyjnym jest ipv6.exe jego użycie jest analogiczne


        1. Aplikacje

Podstawowe aplikacje dostarczane przez tę edycją, również mają swoje odpowiedniki w "Microsoft IPv6 Technology Preview" (ping6, tracert6).




      1. IPv6 w nowych wersjach Windows

Ukazująca się obecnie, najnowsza wersja Microsoft Windows - Windows XP, posiada oczywiście obsługę protokołu IPng i to już wbudowaną. Stos IPv6 wykorzystywany w Windows XP, cały czas określany jest jako wczesna wersja, nie do końca jeszcze przetestowana. Cały czas brakuje graficznego interfejsu konfigurującego IPv6. Czytając dokumentację do tej edycji protokołu i używając jej, ma się wrażenie, że to niewiele zmieniony pakiet Ms IPv6 TP.

Nowością, jest zaimplementowany w Windows XP mechanizm gniazd, który obsługuje też IPv6.

Dla prac programistycznych, nad aplikacjami obsługującymi IPv6 w Windows XP, Microsoft rekomenduje następujące narzędzia:

Implementacja IPv6 zawarta w Windows XP, wykorzystuje te same narzędzia i aplikacje, co "Ms IPv6 TP", identyczny jest sposób konfiguracji i składnia komend. Cały czas konfiguracja protokołu jest tracona podczas restartu systemu i trzeba odnawiać ją za pomocą skryptów.

Rozczarowanie budzi też fakt, że udostępniony IPSec, wciąż jest poważnie ogranicznony. Nie posiada możliwości kodowania danych, ani obsługi IKE (Internet Key Exchange), również klucze muszą być konfigurowane manualnie (szerzej o IPSec w rozdziale 2.1.4).

Rozpoczynając pracę z nową edycją implementacji IPv6 w nowej wersji Windows, miałem nadzieję na więcej usprawnień. Jednak cały czas jest to w pełni funkcjonalna edycja stosu IPv6 pod najpopularniejszym systemem operacyjnym na świecie.


        1. Instalacja

Można śmiało powiedzieć, iż instalacja jest w pełni intuicyjna. Polega ona na wydaniu komendy: ipv6 install w wierszu poleceń. Instalowane są wtedy wszystkie składniku (biblioteki i programy) niezbędne do obsługi protokołu IP w nowej wersji Windows. W przeciwieństwie do poprzednich edycji stosu IPv6, protokół ten nie jest widoczny wśród innych komponentów sieciowych, zainstalowanych w systemie.


        1. Narzędzia i konfiguracja

Dostępne są wszystkie podstawowe narzędzia (ping6, tracert6). Ich zastosowanie i konfiguracja jest analogiczna do tych opisanych w rozdziale 2.1.1.


      1. IPSec

IPSsec wykorzystywany w Ms IPv6 TP jest całkowicie niezależny od IPSec dla IPv4, jednocześnie zarządzanie polisami bezpieczeństwa da IPsec IPv6 nie odbywa się poprzez konsolę polis bezpieczeństwa, tak jak ma to miejsce w konfiguracji IPSec IPv4, a poprzez narzędzie konsolowe ipsec6.exe. Jego składnia podana jest w rozdziale 2.1.1.6, dotyczącym aplikacji zawartych w pakiecie "Ms IPv6 TP".

Funkcjonalność IPSec IPv6 została też nieco ograniczona:


        1. Konfiguracja IPSec pomiędzy dwoma stacjami w sieci lokalnej

Konfuguracja IPSec przy użyciu narzędzi dostępnych w Ms TP Ipv6 nie jest jeszcze w pełni dopracowana, przeprowadzenie jej ma jedynie charakter testowy. Takie podejście wymusza "ręczne" tworzenie kluczy i pozbawiona automatyki konfiguracja komputerów.


W przykładzie konfigurujemy połączenie pomiędzy komputerem pierwszym o adresie fe80::2aa:ff:fe53:a92c a komputerem drugim o adresie fe80::2aa:ff:fe92:dof1. Stworzymy IPSec Seciruty Association, wykorzystujące autentykacje nagłówka (AH) oraz algorytm haszujacy MD5.


Wykorzystując narzędzie ipsec6, tworzymy puste SA (security assiociation) oraz SP (security policy): ipsec6 c test

Komenda stworzy nam dwa pliki: test.spd o test.sad. Teraz musimy je wyedytować i dopisać do tych plików następujące informacje:


Plik test.spd, węzeł pierwszy:

Policy 2

RemoteIPAddr -Fe80::2a:ff:fe92:d0f1

LocalIPAddr -*

RemotePort -*

Protocol -*

IPSecProtocol AH

IPSecMode Transport

RemoteGWIPAddr *

SABundleIndex None

Dircetion bidirect

Action apply

InterfaceIndex 0


Na końcu ostatniej linii konfiguracyjnej należy postawić średnik. Wpisy poszczególnych polis muszą być umieszczone w porządku malejącym, dlatego też, ten wpis polisy powinien być wpisany przed domyślnym wpisem, już istniejącym w pliku.


Teraz konfigurujemy wpisy SA, aby zabezpieczyć ruch pomiędzy dwoma węzłami. Na komputerze pierwszym musimy stworzyć dwa wpisy w pliku test.sad: dla ruchu do węzła drugiego i dla ruchu przychodzącego z węzła drugiego.


Plik test.sad, węzeł pierwszy, wpis dla ruchu wychodzącego:

SAEntry 2

SPI 3001

SADestIPAddr fe:80::2aa:ff:fe92:d0f1

DestIPAddr POLICY

SrcIPAddr POLICY

Protocol POLICY

DestPort POLICY

SrcPort POLICY

AuthAlg HMAC-MD5

KeyFile Test.key

Direction OUTBOUND

SecPolicyIndex 2


Plik test.sad, węzeł pierwszy, wpis dla ruchu przychodzącego:

SAEntry 1

SPI 3000

SADestIPAddr fe:80::2aa:ff:fe53:a93c

DestIPAddr POLICY

SrcIPAddr POLICY

Protocol POLICY

DestPort POLICY

SrcPort POLICY

AuthAlg HMAC-MD5

KeyFile Test.key

Direction INBOUND

SecPolicyIndex 2


Należy pamiętać o średniku na końcu ostatniej linii, konfigurującej jeden wpis oraz o malejącym porządku wpisów w pliku.


Następnym krokiem jest przygotowanie klucza. Niestety "Ms Ipv6 TP" wspiera jedynie klucze tworzone "ręcznie". Aby przygotować plik klucza, należy zapisać w pliku test.key dowolny ciąg znaków, ograniczony podwójnym apostrofem, np.: "PJWSTK, IPv6 Team"

Tylko tak przygotowany plik, będzie odczytany przez ipsec6.exe. Można użyć dwóch różnych plików z kluczem, dla ruchu wchodzącego i wychodzącego, definiując pole KeyFile we wpisach w pliku test.sad


Nadszedł czas na skonfigurowanie drugiego węzła. W tym przypadku będziemy postępować analogicznie. Dla uproszczenia będziemy używali tych samych nazw plików, choć można zdefiniować własne. Poniżej przedstawiam wpisy do poszczególnych plików, konfigurujące IPSec na drugim węźle.


Plik test.spd, węzeł drugi:

Policy 2

RemoteIPAddr -Fe80::2a:ff:fe53:a92c

LocalIPAddr -*

RemotePort -*

Protocol -*

IPSecProtocol AH

IPSecMode Transport

RemoteGWIPAddr *

SABundleIndex None

Dircetion bidirect

Action apply

InterfaceIndex 0


Plik test.sad, węzeł drugi, wpis dla ruchu wychodzącego:

SAEntry 2

SPI 3001

SADestIPAddr fe:80::2aa:ff:fe92:d0f1

DestIPAddr POLICY

SrcIPAddr POLICY

Protocol POLICY

DestPort POLICY

SrcPort POLICY

AuthAlg HMAC-MD5

KeyFile Test.key

Direction INBOUND

SecPolicyIndex 2


Plik test.sad, węzeł drugi, wpis dla ruchu przychodzącego:

SAEntry 1

SPI 3000

SADestIPAddr fe:80::2aa:ff:fe53:a93c

DestIPAddr POLICY

SrcIPAddr POLICY

Protocol POLICY

DestPort POLICY

SrcPort POLICY

AuthAlg HMAC-MD5

KeyFile Test.key

Direction OUTBOUND

SecPolicyIndex 2


Pozostał jeszcze plik klucza dla drugiego węzła, powinien być on identyczny (taka sama treść), jak plik na komputerze pierwszym.

Teraz musimy uaktywnić stworzone polisy, wydając komendę ipsec6 a test, na węźle pierwszym i drugim.


Po konfiguracji, zakończonej sukcesem, używając komendy ping6 do sprawdzenia połączenia pomiędzy dwoma węzłami oraz narzędzia "network monitor", możemy zobaczyć wymianę komunikatów ICMPv6 Echo Request z nagłówkiem autoryzującym.


        1. Problemy

Problemy powstałe przy konfiguracji IPSec IPv6 najczęściej wynikały z niepoprawnego przygotowania plików konfiguracyjnych, jest to jednak naturalna sytuacja, w przypadku tak źle zaprojektowanego formatu plików.

Program ipsec6.exe, oprócz komunikatów o błędach często reagował też typowym w środowisku Windows "błędem ochrony pamięci" lub też zrzutem pamięci ("niebieskim ekranem").

Podsumowując: NIE UDAŁO mi się tego odpalić, ale może ktoś będzie miał więcej szczęścia / cierpliwości / wiedzy.


      1. Połączenia IPv6

        1. Polączenie typu link - local

Konfiguracja połączenia typu link - local nie wymaga od użytkownika żadnych innych działań, poza zainstalowaniem "Ms IPv6 TP". Konfiguracja ta dotyczy dwóch maszyn, podłączonych do tej samej sieci, bez wykorzystania żadnych dodatkowych urządzeń sieciowych (routerów).



ryc. 4: bezpośrenie połączenie IPv6


Domyślnie, adresy IP, dla połączenie link -local konfigurowane są na podstawie adresów odpowiadającym im kart sieciowych. Adresy link - local posiadają prefiks fe80::/64. Ostatnie 64 bity adresu IPv6, nazywane jest identyfikatorem interfesju i powstają z 48 - bitowego MAC - adresu karty sieciowej.

Procedura tworzenia adresu IPv6 z 48 - bitowego MAC­ - adresu karty jest następująca:


Można zademonstrować to na przykładzie dla następującego MAC adresu: 00 60 08 52 f9 d8

Po przeprowadzeniu tych działań, identyfikator interfejsu adresu IPv6, odpowiadający Mac -adresowi o wartości: 00 60 08 52 f9 d8, ma postać: 02 60 08 ff fe 52 f9 d8.


Końcowy, pełen adres IPv6, powstaje z połączenia prefiksu fe80::/64 i identyfikatora interfejsu. W naszym przykładzie ma on postać: fe80::260:8ff:fe52:f9d8

Pozostaje jedynie przetestować zestawione w ten sposób połączenie. Można to wykonać. Używając programu ping6, dostępnego w omawianym pakiecie.


        1. Połączenie IPv6 pomiędzy dwoma podsieciami IPv4

Do połączenia protokołem IPv6 pomiędzy sieciami wykorzystującymi IPv4 służy mechanizm enkapsulacji pakietów IPv6 w pakietach IPv4. Do zautomatyzowania takiej konfiguracji, Microsoft dostarcza nam narzędzie 6to4.exe. Można go użyć do komunikacji z innymi sieciami (IPv6 / IPv4), jak i również do połączenia z siecią 6bone. Nie wymaga to stosowania żadnych urządzeń sieciowych, wykorzystujących IPv6. Cały ruch jest wykonywany przy użyciu enkapsulacji IPv6 w IPv4.

Schemat takiego połączenia przedstawia rysunek 2.


ryc. 5: Schemat połąćzenia IPv6 pomiędzy dwoma podsieciami


Aby zestawić takie połączenie, należy posiadać przynajmniej jeden routowalny adres IP (wersja 4), będzie on wykorzystywany na komputerze, będącym domyślną bramą. W ten sposób, wykorzystując jeden komputer obsługujący IPv4 i IPv6 można podłączyć całą grupę komputerów pracujących pod IPv6.

Do automatycznej konfiguracji sieci 6to4 należy użyć narzędzia 6to4cfg.exe, opisanego w rozdziale 1.1.1.6.

        1. Przykład manualnej konfiguracji 6to4

Przykładowym adresem bramy 6to4 będzie adres: 172.31.42.239, jest to adres routowalny. Ten 32-bitowy adres w połączeniu z 16-bitowym prefiksem 2002::/16 stworzy 48-bitowy prefiks adresu IPv6. W naszym przykładzie prefiks 6to4 jest następujący: 2002:ac1f:2aef::/48. Należy zauważyć, że ac1f:2aef jest heksadecymenalną postacią adresu 172.31.42.239.

Konfigurujemy 6to4 na naszej bramie 6to4 za pomocą ipv6.exe

ipv6 rtu 2002::/16 2

Ta komendą uruchomiła routing, 2002::/16 jest unikatowym prefiksem 6to4, natomiast argument "2" ustawia interfejs on-link dla tego prefiksu. Interfejs nr 2 jest nazywany "pseudo-interfejsem" i jest używany do konfigurowania tuneli i 6to4.

Jeśli adres IPv6 pasuje do prefiksu 2002::/16, 32 bity adresu, następujące po prefiksie adresu docelowego, są konwertowane na postać IPv4. Pakiet jest enkaspulowany za po mocą nagłówka IPv4 i wysyłany do docelowego adresu IPv4.

Następnie konfigurujemy adres 6to4 na naszej bramie.

ipv6 adu 2/2002:ac1f:2aef::ac1f:2aef

Użycie powyższych dwóch komend, wystarczy, aby komunikować się z innymi sieciami 6to4. Aby umożliwić komunikację z 6bone, należy skonfigurować tunel do 6to4, Microsoft proponuje użycie swojego routera 6to4, o adresie 131.107.152.32. Wykonujemy to za pomocą następującej komendy:

ipv6 rtu ::/0 2/::131.107.152.32 pub life 1800

Teraz powinniśmy mieć dostęp zarówno do sieci 6bone jak i 6to4.

Końcowym krokiem jest uaktywnienie routingu na naszej bramie 6to4. Zakładamy, ze interfejs 3 jest interfejsem eternetowym, zaś interfejs 4 to 6-over-4. Poniższe komendy przydzielają prefiksy sieci do dwóch linków. Prefiksy podsieci, zostały zaczerpnięte z sieci 6to4: 2002::ac1f:2aef::/48:.

ipv6 rtu 2002:ac1f:2aef:1::/64 3 pub life 1800

ipv6 rtu 2002:ac1f:2aef:2::/64 4 pub life 1800


Następne trzy komendy uaktywniają funkcje routowania na naszej bramie 6to4.

ipv6 ifc 2 fow

ipv6 ifc 3 fov

ipv6 ifc 4 fov


Po tych wszystkich komendach, protokół IPv6 automatycznie skonfiguruje adresy na interfejsach 2 i 4, używając odpowiadający prefiksów sieci. Obydwa interfejsy rozpoczną rozgłaszanie.

Komputery otrzymujące to rozgłoszenie automatycznie skonfigurują się, wykorzystując adres 6to4 oraz domyślny routing, dostarczone przez prefiks ich podsieci. Będą komunikowały się z innymi sieciami 6to4 oraz 6bone przez naszą domyślną bramę.


        1. Podłączenia do sieci 6bone

Najprostszym sposobem podłączenia się do sieci 6bone, który zaleca Microsoft jest skonfigurowanie połączenia 6to4 i użycie routera 6to4, Microsoftu, adres: 6to4.ipv6.microsoft.com.

ryc. 6: ogólny schemat podłączenia do sieci 6bone










Nazwa

Umiejscowienie

Przepustowość

6to4.ipv6.microsoft.com

Redmond, WA

Nieznana

6to4zama6.com

Seattle, WA

1.5 mbps

6to4.kfu.com

Santa Clara, Kalifornia

384 kbps

ipv6-lab-gw.cisco.com

San Jose

100 mbps

6to4.ipv6.bt.com

Adastral Park, UK

10 mbps

Skbys-00-00. 6to4.xs2.net

Baska Bystrzyca, Słowacja

34 mbps

6to4.ipv6.fh-regensburg.de

Regebsburg, Niemcy

34 mbps


Tabela 1: lista routerów publicznych umożliwiających dostęp do 6bone.


        1. Konfiguracja dwóch tuneli

Konfiguracja dwóch tuneli jest przydatna z kilku powodów, jeśli potrzebujemy bezpośrednie połączenie do serwisu lub aplikacji, jeśli chcemy, aby serwis na naszej stacji wykorzystywał tylko konkretny tunel, oraz, najczęstszy powód: jeśli chcemy nauczyć się więcej o IPv6.

Aby skonfigurować takie połączenie na naszej stacji, musimy mieć zainstalowany stos protokoły IPv6 oraz znać niezbędne parametry (adresy podsieci, adresy routerów itp.).

Zakładamy, że mamy już skonfigurowany pierwszy tunel, oraz dostaliśmy już przydzielony drugi tunel i znamy wszystkie jego parametry, (np.: nasza podsieć: 3ffe:8001:13::/48, adres routera: 203.5.119.58)

Najpierw konfigurujemy drugi interfejs naszego drugiego tunelu, przypisując mu podsieć /48:

ipv6 rtu 3ffe:8001:0013:/48 2

Następnie musimy usunąć wpis domyślnego routingu z pierwszego interfejsu:

ipv6 rtu ::/0 2/::195.74.217.132 pub lifetime 0

Teraz dodajemy domyślny routing do drugiego tunelu:

ipv6 rtu ::/0 2/::203.5.119.58 pub

Ponownie dodajemy domyślny routing dla pierwszego tunelu, tym razem dla podsieci /32:

ipv6 rtu 3ffe:8100::/0 2/::195.74.217.132 pub

To wszystko, po wydaniu komendy ipv6 rt, powinniśmy zobaczyć następującą konfigurację:

3ffe:8100::/32 -> 2 pref 0 (life time infinite)

3ffe:8100::/32 -> 2/::195.74.217.132 pref 0 (life time infinite, publish, no aging)

3ffe:8100::/48 -> 2/::203.5.119.58 pref 0 (life time infinite, publish, no aging)

::/0 -> 2/::203.5.119.58 pref 0 (life time infinite, publish, no aging)

::/96 -> 2 pref 0 (life time infinite)


Testy skonfigurowanych tuneli można przeprowadzić za pomocą narzędzia tracert6.exe.

Istnieje możliwość konfiguracji większej liczby tuneli, w praktyce, największa, znana mi ilość tuneli ustawionych na komputerze z Windows 2000 to 5, choć możliwe, że ktoś już skonfigurował więcej.


      1. IPv6 i WWW

Po zainstalowaniu któregoś z pakietów, umożliwiających obsługę IPv6 w systemach Windows, mamy możliwość przeglądania stron internetowych, przy użyciu tego protokołu. Większość serwisów udostępniających swoje zasoby również za pomocą IPv6 stosuje odpowiadające takiej konfiguracji adresy stron, np. dostęp za pomocą IPv4 pod adresem: http://ipv4.pjwstk.edu.pl, a wersja IPv6 serwisu internetowego pod adresem http://ipv6.pjwstk.edu.pl.

Zdarza się, że dostęp do strony możliwy jest jedynie poprzez podanie samego adresu IPv6, należy to zrobić, podając adres w przeglądarce w nawiasach kwadratowych:

http:// [2010:836B:4179::836B:4179].

Dostęp do www poprzez IPv6 jest możliwy przy wykorzystaniu przeglądarki "Internet Explorer" w wersjach 5.0 i wyższych, lecz jest to możliwe jedynie wtedy, kiedy "Internet Explorer" nie wykorzystuje przy połączeniach serwera proxy.

Po każdej aktualizacji przeglądarki należy przeinstalować też odpowiedni pakiet IPv6, gdyż w ten sposób przywrócimy do systemu wersję biblioteki wininet.dll, obsługującą IPv6, którą napisała instalacja nowej wersji "Internet Explorera".


        1. Witryny internetowe dostępne poprzez IPv6


http://ipv6.research.microsoft.com/

Strona Microsoft Research IPv6.

http://altavista.ipv6.digital.com/

AltaVista

http://www.ipv6.digital.com/

Strona korporacji "Comapaq".

http://ipv6.decaen.com/

Strona francuskiego stowarzyszenia "Society Decaen".

http://www.ipv6forum.com/

Jedno z centrów informacyjnych IPv6.

http://www.ipv6.bt.com/projects/ipv6.htm

Strony BTexaCT, dotyczące rozwoju IPv6.

http://www.6bone.net/

Oficjalna strona sieci 6bone.

http://www.ip6.rccn.net/

Strona Portugalskiego stowarzyszenia naukowego.

http://www.kame.net/

Strona Projektu KAME.

http://www.zamanetworks.com/

Strona firmy "Zama".

http://www.ipv6.kelite.net/

Informacje o IPv6.

http://www.normos.org/

Strona z dokumentami RFC,STD,RIPE,IANA,W3C.


    1. Aplikacje IPV6 dla Microsoft Windows

      1. Fnord! - serwer www IPv6

Fnord! jest prostym serwerem www, przygotowanym do pracy w środowisku Windows, jego autorem jest Brian R. Morin. Serwer rozpowszechniany jest na licencji GNU. Wersja 1.0.0.23 serwera jest przystosowana do pracy przy wykorzystaniu Microsoft Research IP Version 6 oraz Microsoft IPv6 Tech Preview for Windows 2000, co jednocześnie oznacza, że obsługuje protokół IPv6.

Serwer został napisany w języku C++ i przystosowany do kompilacji przy użyciu Microsoft Visual C++, należy zwrócić uwagę na jego prostą konfigurację i przejrzystą dokumentację, co obecnie zdarza się nieczęsto.

Do programu, oprócz wersji instalacyjnej, dołączone są kody źródłowe, które umożliwiają wprowadzenie ewentualnych poprawek i przystosowanie działania serwera do indywidualnych potrzeb. Są też jednocześnie doskonałym narzędziem edukacji.

Dystrybucja zawiera wersję serwera przeznaczoną do pracy jako serwis systemowy (fnordnt.exe), wersję do pracy pod Windows 2000 (fnord.exe) oraz moduł konfiguracyjny (fnordctlexe). Modyfikacje, mające na celu umożliwienie obsługi IPv6 zostały wprowadzone w serwerze, generalnie polegały na zaimplementowaniu konstruktu MSRIPv6 w kodzie programu.


        1. Instalacja i konfiguracja

Dokumentacja do programu jest prosta i przejrzysta, jednocześnie sam program jest banalny w swej obsłudze, więc nie będę opisywał tutaj tych czynności.


        1. Problemy

Podczas pracy z programem pod Windows 2000 nie natrafiłem na żadne problemy.

Autorzy zwracają jedynie uwagę na nie przetestowanie przez nich pracy serwera obsługującego IPv6 pod systemem Windows NT, publikują natomiast listę ewentualnych poprawek, które należy zaaplikować, jeśli takie problemy wystąpią.

      1. Apache - serwer www IPv6

Apache - najpopularniejszy serwer www na świecie, począwszy od wersji 1.3 w edycji dla Windows obsługuje protokół IPv6. Serwer można pobrać bezpośrednio z witryny Apache'a - http://apache.org. Dostępne są wersje skompilowane, jak i źródła, zgodnie z ideą Open Source. Pełna dokumentacja pakietu i opis źródeł ułatwiają ewentualne edycje i dostosowanie do swoich potrzeb.

Apache, do obsługi IPv6 wymaga uaktualnienia i pracuje pod systemem Windows 2000 z zainstalowanym "Microsoft IPv6 Technology Preview"


        1. Instalacja i konfiguracja

Aplikację można pobrać w postaci pliku *.msi (wersja 1.3), co zdecydowanie ułatwia instalację. Podczas niej proszeni jesteśmy o podanie podstawowych parametrów: nazwę serwer i umiejscowienie plików.

Aby Apache obsługiwał IPv6, należy jeszcze zainstalować patch umożliwiający to:

apache-1.3.19-win32-v6-20010309a.zip. Łatkę można pobrać ze strony: http://win6.goto.info.waseda.ac.jp. Instalacja polega na zastąpieniu starych edycji plików nowymi.


        1. Problemy

Podczas aplikowania łatek na główną instalację nie współdziałają ze sobą:

Apache 1.3.20 i patch 1.3.20.

Zastąpienie patach, jego starszą edycją umożliwiło prawidłową pracę.

      1. Klienci ssh

        1. Putty

Putty jest jednym z najbardziej popularnych i najwyżej cenionych klientów ssh, nie tylko ze względu na swoje zalety, ale również z uwagi na fakt, iż jest darmowy.

Prace na najnowszą edycją ciągle trwają, obecna wersja, nosząca numer 0.51 obsługuje protokół IPv6.


        1. Terra Term SSH

Terra term jest od dawna cenionym klientem ssh, szczególnie pod systemem Windows. Jego ostatnia edycja: ttermp23-ipv6-0.72 obsługuje IPv6.


      1. Inne aplikacje

Cały czas powstają różne popularne aplikacje wspierające IPv6. Do ich poprawnego funkcjonowania niezbędny jest Windows 2000 SP1, wraz z "Microsoft IPv6 Technology Preview". Można do nich zaliczyć najnowsze edycje popularnych aplikacji:














3.

4.Bibliografia

Ponieważ w chwili obecnej, według moich informacji nie są dostępne żadne publikację książkowe w języku polskim, dotyczące IPv6 w kontekście produktów firm Microsoft i Cisco, przy tworzeniu tej pracy opierałem się głównie na materiałach dostępnych w sieci. Poniżej podam najważniejsze adresy, pod którymi znalazłem najwięcej informacji, oraz nazwy dokumentów.

Główne adresy:

Centrum sieciowe 6Bone - bardzo dużo wiadomości o sieci 6Bone i odnośników do innych stron.

Centrum informacyjne nowości IPv6.

Centralna strona microsoftu z informacjami nt. IPv6.

Główna strona Cisco System z informacjami o IPv6

Doskonała strona z aplikacjami IPv6 pod Windows


Inne dokumenty:

Dokument Cisco System opisujący rozwój IPv6

Dokument Cisco System przedstawiający podstawy IPv6

Dokument Cisco Systems opisujący konfigurację routerów

Publikacja poruszająca problematykę IPv6 w routerach Cisco.

Dokument Microsoftu opisującyIPv6

Specyfikacje konfiguracji pakietu Ms IPv6 TP

Najczęściej zadawane pytania nt. "Ms IPv6 TP"

Najczęściej zadawne pytania o IPv6 w nowej wersji Windows

Publikacja o rozwoju IPv6



Grupy dyskusyjne

polska grupa dyskusyjna (pocztowa) użytkowników sieci 6bone

grupa dyskusyjna (pocztowa) użytkowników protokołu IPv6 pod systemami operacyjnymi Microsoftu.



5.


35


Projekt Sieciowy IPv6 Microsoft Windows i Cisco