Tunelowanie TEREDO
W przypadku nie posiadania publicznego adresu IPv4, systemy rodziny Windows XP i nowsze automatycznie będą starały się uruchimić tunelowanie metodą TEREDO.
Teredo jest znane, jako jedna z metod przejścia protokołu IPv6 przez sieci IPv4 (tzw. NAT-T). Jest dodatkowo technologią umożliwiającą automatyczne adresowanie węzłów oraz tworzenie tuneli typu węzeł-węzeł dla unicastowej transmisji pomiędzy węzłami IPv6/IPv4 znajdującymi się za jednym bądź wieloma urządzeniami IPv4 NAT a węzłami IPv6-only. Aby przejść przez urządzenia IPv4 NAT, pakiety IPv6 są wysyłane, jako komunikaty IPv4 UDP.
Uwaga informacyjna
Specyfikacja Teredo omówiona jest w dokumencie RFC 4380 - Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs).
|
Zanim rozpoczniemy opis technologii Teredo, należy opisać konieczność jej stosowania. Teredo jest sposobem automatycznego adresowania i tunelowania unicastowej transmisji IPv6 poprzez sieć IPv4. Jednakże jest już wiele metod dobrze zdefiniowanych i opisanych automatycznego tunelowania protokołu IPv6 przez sieć IPv4, jak np. technologia 6to4. Jednakże technologia 6to4 ma zastosowanie, gdy router 6to4 router jest umiejscowiony na wyjściu z określonej sieci IPv6 do IPv4. Router 6to4 wykorzystuje publiczne adresy IPv4 do konstruowania prefiksu 6to4 i działa dodatkowo, jako router rozgłaszający adresy i przekazujący pakiety. Router 6to4 enkapsuluje datagramy IPv6 wysyłane do i z węzłów sieci.
Dla technologii 6to4 niezbędna jest konieczność posiadania publicznych adresów IPv4 adres oraz umiejscowienie routera 6to4, jako wyjście z danej sieci. W wielu małych firmach (SOHO) wykorzystywana jest technologia translacji adresów IPv4, zwana NAT. W wielu przypadkach konfiguracja urządzenia NAT uniemożliwia pełnienie przez niego funkcji routera 6to4. Jeżeli nawet będzie w stanie pełnić funkcję routera 6to4, jest wiele konfiguracji sieci, które wykorzystuje wielokrotną translację NAT. W takich przypadkach technologia 6to4 jest w stanie pełnić swojej roli, gdyż za pierwszym urządzeniem NAT nie dysponujemy już publicznymi adresami IPv4.
Teredo rozwiązuje ten problem wielokrotnej translacji NAT poprzez tunelowanie datagramów IPv6 pomiędzy węzłami sieci. W przeciwieństwie do technologii 6to4, gdzie tunelowanie występuje dopiero od routera. Tunelowanie od hosta ma niestety wpływ na urządzenia NAT: enkapsulacja w protokole IPv4 protokołu IPv6 wymaga wstawienia w nagłówek datagramu IPv4 w pole protokół wartości 41. Większość urządzeń NAT potrafi przekształcać jedynie protokoły warstwy transportowej TCP oraz UDP i musi być manualnie skonfigurowany do translacji protokołów innych niż TCP czy UDP. Niestety protokół 41 często nie jest wspierany w urządzeniach NAT, zatem niemożliwe jest tunelowanie IPv6 przez takie urządzenie NAT. Aby umożliwić taką możliwość ruch IPv6 poprzez jeden lub więcej, urządzeń NAT jest enkapsulowany, jako pakiet UDP IPv4, zawierając oba nagłówki protokołu IPv4 oraz UDP. Protokół UDP może być wielokrotnie przekształcany przez urządzenia NAT.
Podsumowując, Teredo jest technologią przejścia IPv6/IPv4, która umożliwia automatyczne tunelowanie ruchu IPv6 pomiędzy węzłami sieci znajdującymi za jednym lub więcej urządzeniami NAT. Ruch IPv6 jest przenoszony, jako ruch IPv4/UDP. Jeżeli urządzanie NAT wspiera translację portów UDP, możliwy jest ruch Teredo. Jedynym wyjątkiem jest urządzenie NAT pracujące w trybie symmetric. Wyjątek ten jest opisany w dokumencie.
Należy wspomnieć, iż technologia Teredo jest jednym z rozwiązaniem wspierającym przejście z IPv4 do IPv6. Jeżeli dostępne jest bezpośrednie wspieranie IPv6, technologia 6to4, lub ISATAP nie jest wymagane użycie technologii klienta Teredo. W momencie, którym wszystkie urządzenia NAT będą wspierać IPv6 bezpośrednio albo technologię 6to4, zniknie konieczność korzystania z technologii Teredo.
Uwaga informacyjna
Teredo w Windows Server 2003 Service Pack 1, Windows XP SP2 oraz Windows XP SP1 z zainstalowanym Advanced Networking Pack for Windows XP działała prawidłowo tylko za NAT’em działającym w trybie Cone lub Restricted.
Implementacja Teredo dla Windows Server 2008 (R2) oraz Windows Vista, Windows 7 działa prawidłowo nawet, jeżeli jeden z klientów jest za jednym lub więcej urządzeń NAT działających w trybie symmetric.
|
Network Address Translator (NAT) jest typem routera IPv4 zdefiniowanym w dokumencie RFC 1631, który potrafi przekształcać adresy i numery portów TCP/UDP podczas routowania pakietów. Przykładem może być mała firma będąca podłączona do Internetu. Tego typu rozwiązanie wymagałoby uzyskania określonej puli publicznych adresów Ipv4, by przydzielić je komputerom w firmie. Z technologią NAT, można posłużyć się adresami niepublicznymi (opisanymi w dokumencie RFC 1918) i za pomocą urządzenia NAT mapować te adresy na jeden lub więcej publicznych adresów IP.
Jak działa NAT
Dla datagramów wychodzących z urządzenia NAT adresy i numery portów hostów znajdujących się wewnątrz sieci (adresy niepubliczne) są mapowane na publiczny/publiczne adres(y) IP (oraz mają często zmienione również adresy portów TCP/UDP). Datagramy przychodzące są identycznie mapowane i przekształcane na oryginalne niepubliczne adresy IP oraz oryginalne numery portów TCP/UDP.
Przykład:
Mała sieć wykorzystuje adresację z puli adresów prywatnych 192.168.0.0/24 dla swojego intranetu i podłączona jest za pomocą lokalnego ISP do Internetu z wykorzystaniem jednego publicznego adresu IP (131.107.0.1). Kiedy użytkownik o adresie wewnętrznym 192.168.0.99 nawiązuje połącznie z serwerem WWW o adresie IP 157.60.0.1, wówczas stos TCP/IP na hoście użytkownika tworzy datagram o następujących parametrach:
Docelowy adres IP
|
157.60.0.1
|
Źródłowy adres IP
|
192.168.0.99
|
Docelowy Port
|
80
|
Źródłowy Port
|
1025
|
Host źródłowy przekazuje ten datagram do urządzenia NAT, które to dokonuje translacji adresów i numerów portów w datagramie wyjściowym:
Docelowy adres IP
|
157.60.0.1
|
Źródłowy adres IP
|
131.107.0.1
|
Docelowy Port
|
80
|
Źródłowy Port
|
5000
|
NAT wysyła ten przemapowany datagram do węzła docelowego. Węzeł docelowy w odpowiedzi przesyła datagram do urządzenia NAT. Datagram skierowany do urządzenia NAT ma następujące parametry:
Docelowy adres IP
|
131.107.0.1
|
Źródłowy adres IP
|
157.50.0.1
|
Docelowy Port
|
5000
|
Źródłowy Port
|
80
|
Następnie urządzenie NAT dokonuje odwrotnego mapowania adresów i portów tak, aby klient wewnątrz sieci mógł otrzymać adresowany do niego datagram. Datagram skierowany do użytkownika ma następujące parametry:
Docelowy adres IP
|
192.168.0.99
|
Źródłowy adres IP
|
157.60.0.1
|
Docelowy Port
|
1025
|
Źródłowy Port
|
80
|
Mapowanie adresów publicznych na prywatne jest zapisywane w tablicy translacji NAT. Wpisy mogą być dwojakiego rodzaju:
Wpisy są tworzone automatycznie w momencie, gdy klient wewnątrz sieci inicjuje połączenie. Wpisy dynamicznego mapowania są na bieżąco uaktualniane oraz usuwane z tabeli po określonym czasie.
Konfigurowalne manualnie tak, że komunikacja inicjowana z zewnątrz może być mapowania do wnętrza sieci na ściśle określone adresy i porty. Statyczne mapowania jest niezbędne wówczas, gdy za NAT’em znajdują się serwery (np. WWW)) lub aplikacje (np. gry) i musimy mieć do nich dostęp bezpośredni z Internetu. Mapowanie statyczne nie jest usuwane z tabeli translacji NAT.
Typy translacji NAT
- Cone NAT - NAT, w którym w tabeli translacji wpisy wiążą wewnętrzne adresy i numery portów z zewnętrznymi adresami i numerami portów. Kiedy taki wpis znajdzie się w tabeli następuje wymiana ruchu pomiędzy siecią zewnętrzna a wewnętrzną urządzenia NAT. (Ten tym translacji NAT zwany jest często statycznym mapowaniem adresów zewnętrznych na wewnętrzne)
- Restricted NAT - NAT, w którym podobnie jak powyżej w tabeli translacji są powiązane adresy i numery portów zewnętrznych i wewnętrznych, ale dla określonych ściśle adresów zewnętrznych i portów. Połączenie z niezdefiniowanych adresów lub portów zewnętrznych są „po cichu” usuwane.
- Symmetric NAT - NAT, w którym mapowane są te same adresy wewnętrzne i numery portów do zewnętrznych adresów i numerów portów zależnie od ruchu wychodzącego.
Infrastruktura Teredo składa się z następujących elementów (patrz rysunek 1):
- Klienci Teredo
- Serwery Teredo
- Przekaźniki Teredo
- Hosty z funkcją przekaźnika Teredo
Rysunek 1. Komponenty Infrastruktury Teredo
Klient Teredo
Klient Teredo jest węzłem wyposażonym w protokoły IPv6/IPv4, który wspiera tunelowanie Teredo do innego klienta Teredo albo do cieci Native IPv6 poprzez przekaźnik Teredo. Klient Teredo komunikuje się z serwerem Teredo, aby uzyskać, prefiks adresu w formacie Teredo albo zainicjalizować komunikację z innym klientem Teredo albo węzłem IPv6 only.
Uwaga informacyjna
Windows XP SP2, Windows XP SP1 z Advanced Networking Pack for Windows XP, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Vista, Windows 7, Windows 8, Windows Server 2008 / 2008 R2 / 2012 RC zawierają klienta Teredo.
|
Serwer Teredo
Teredo serwer jest węzłem IPv6/IPv4, który z jednej strony połączony jest z siecią IPv4 a z drugiej IPv6 i wspiera tunelowanie Teredo. Generalną rolą serwera Teredo jest asystowanie podczas przydzielania adresu i prefiksu klientom Teredo oraz inicjowanie komunikacji pomiędzy klientami Teredo albo pomiędzy klientem Teredo a węzłem IPv6-only. Serwery Teredo nasłuchują na porcie UDP o numerze 3544.
Uwaga informacyjna
Windows XP SP2, Windows XP SP1 z Advanced Networking Pack for Windows XP, Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Vista, Windows 7, Windows 8 oraz Windows Server 2003 i 2008 nie zawierają funkcjonalności serwera Teredo.
Dla tych systemów operacyjnych Microsoft udostępnił publiczny (ogólnodostępny) serwer Teredo.
Serwer Teredo dostępny jest dopiero w Windows Server 2008 R2 oraz 2012 RC, ale wykorzystywany jest wyłącznie przez mechanizm Direct Access
|
Przekaźnik Teredo
Przekaźnik Teredo jest routerem IPv6/IPv4, który przekazuje ruch pomiędzy klientami Teredo, dzięki tunelowi Teredo a węzłami IPv6-only. Jednakże może pełnić również role serwera, Teredo, aby asystować podczas nawiązywania komunikacji pomiędzy hostami Teredo. Przekaźniki Teredo podobnie jak serwery nasłuchują na porcie UDP o numerze 3544
Uwaga informacyjna
Żadne wersje systemu Windows, ani klienckie ani serwerowe nie zawierają funkcjonalności przekaźnika Teredo.
Microsoft nie planował publicznego udostępniania przekaźnika Teredo.
Dostawcy usług internetowych winni samodzielnie dostarczać taką funkcjonalność.
Windowsowi klienci Teredo będą współpracować z przekaźnikami Teredo podczas przesyłania ruchu do węzłów typu IPv6-only.
Przekaźniki Teredo nie muszą się komunikować z Hostami z funkcją przekaźnika Teredo.
|
Host z funkcją przekaźnika Teredo
Komunikacja pomiędzy klientami Teredo a węzłami IPv6-only, które są adresowalne globalnymi połączonymi adresami unicastowymi musi przechodzić poprzez przekaźnik Teredo. Takie jest wymaganie dla węzłów IPv6-only. Jednakże, jeżeli węzeł IPv6 jest kompatybilny zarówno z IPv6 oraz z IPv4 i podłączony jest zarówno do sieci IPv4 jak i IPv6, komunikacja powinna zachodzić pomiędzy klientami Teredo a węzłami IPv6-only poprzez sieć IPv4, a nie poprzez sieć IPv6 i powracać poprzez przekaźniki Teredo.
Hosty z funkcja przekaźnika Teredo są węzłami IPv6/IPv4, które mają podłączenie do sieci IPv4 oraz IPv6 i mogą się komunikować bezpośrednio z klientami Teredo poprzez sieć IPv4 bez pośrednictwa przekaźników Teredo. Komunikacja z węzłami IPv4 może być bezpośrednia (węzły mające publiczne adresy IP) lub pośrednia (węzły mające prywatne adresy IP – węzły za urządzeniem NAT). Komunikacja po sieci IPv6 może być bezpośrednia lub za pomocą jednej z technologii przejścia, jak np.: 6to4. Hosty z funkcją przekaźnika Teredo podobnie jak serwery nasłuchują na porcie UDP o numerze 3544
Uwaga informacyjna
Windows XP SP2, Windows XP SP1 z the Advanced Networking Pack for Windows XP, Windows Server 2003 z Service Pack 1, Windows Server 2003 Service Pack 2, Windows Vista, Windows 7, Windows 8 oraz wersje serwerowe 2008 / 2008 R2 / 2012 RC zawierają funkcjonalność Hosta z funkcją przekaźnika Teredo, która jest automatyczna włączana, jeżeli systemy te mają przydzielony adres globalny adres unicastowy. Adres ten może zostać przydzielony, poprzez router komunikatem ICMPv6 Router Advertisement, poprzez router IPv6, router ISATAP lub router 6to4.
Jeżeli komputer nie ma przydzielonego globalnego adresu unicastowego zostanie włączona tylko funkcja klienta Teredo.
|
Format adresu Teredo jest następujący:
Rysunek 2. Format adresu Teredo
Adres Teredo składa się z następujących fragmentów:
Pierwsze 32 bity zarezerwowane są na prefiks Teredo, który jest identyczny dla wszystkich adresów Teredo. Jednakże organizacja Internet Assigned Numbers Authority (IANA) nie przydzieliła jeszcze globalnego prefiksu dla adresów Teredo, zatem zarezerwowano tymczasowo dla nich fragment puli 6bona - 2001::/32.
Uwaga informacyjna
Windows XP oraz Windows Server 2003 wstępnie przydzielały prefiks z puli 3FFE:831F::/32. Nowy prefiks został zdefiniowany w RFC 4380 i ma wartość 2001::/32. Taki prefiks jest przydzielany w wszystkich nowych wersjach systemów operacyjnych (m.in. Windows Vista, Windows 7, Windows 8, Windows Server 2008 / 2008 R2 /2012 RC).
Komputery z Windows XP oraz Windows Server 2003 wykorzystują nowy prefiks po aktualizacji omówionej w biuletynie Microsoft Security Bulletin MS06-064 (dostępny również po instalacji SP3 do Windows XP)
|
Następne 32 bity zawierając publiczny adres IPv4 serwera Teredo, który uczestniczy w przydzielaniu adresów.
Następne 16 bitów jest zarezerwowane na flagi Teredo. Pierwotnie (Dla Windows XP) jedyną zdefiniowaną flagą był najstarszy bit zwany Cone flag. Cone flag jest ustawiony, gdy klient znajduje się za NAT pracującym a trybie Cone NAT. Ustawienie flagi Cone zachodzi podczas inicjalizacji klienta Teredo. Dla Windows Vista oraz Windows Server 2008 niewykorzystywane bity stanowią pewien mechanizm ochrony przed skanowaniem. To 16-bitowe pole ma następujący format:
CRAAAAUG AAAAAAAA.
Gdzie:
C – oznacza flagę Cone.
R – oznacza bit zarezerwowany dla przyszłych zastosowań
U – oznacza Universal/Local (domyślnie ustawiony na0).
G – oznacza Individual/Group flag (domyślnie ustawiony na 0).
A – to ciąg 12-bitów generowanych pseudolosowo. Poprzez taka modyfikację, aby uzyskać właściwy adres klienta Teredo należy dokonać skanowania aż 4,096 (2^12) różnych adresów.
- Niewidoczny przekształcony numer zewnętrznego portu
Następne 16 bitów zawiera informacje o przekształconym numerze zewnętrznego portu, na który przychodzi cały ruch Teredo. Kiedy klient Teredo wysyła inicjalizujący pakiet do serwera Teredo, jego źródłowy numer portu zostanie przez urządzenie NAT przekształcony na inny - zewnętrzny numer portu. Klient Teredo zarządza mapowaniem tego portu przeprowadzanym na urządzeniu NAT. Zatem cały ruch Teredo z host zawsze wykorzystuje ten sam zewnętrzny, mapowany port UDP. Zewnętrzny port UDP jest pobierany przez serwer Teredo z pola port źródłowy pakietu Teredo i odsyłany do klienta.
Zewnętrzny port jest przekształcany poprzez wykonanie funkcji XOR na numerze zewnętrznego portu z wartością 0xFFFF. Przykładowo, przekształconym numerem portu ma być 5000. Jego zapis heksadecymalny ma postać 0x1388. Zatem wynik końcowy to EC77 (5000 = 0x1388, 0x1388 XOR 0xFFFF = 0xEC77). Przekształcanie zewnętrznego numeru portu ma na celu zabezpieczenie przed translacją zewnętrznego numeru portu podczas przekazywania przez NAT pakietu.
- Niewidoczny przekształcony adres zewnętrzny
Ostatnie 32 bity zawierają przekształcony adres zewnętrzny IPv4, na który przychodzi cały ruch Teredo. Identycznie jak podczas przekształcania portu zewnętrznego, przekształcany jest adres IPv4 wewnętrzny przez urządzenie NAT na adres zewnętrzny (publiczny). Klient Teredo zarządza mapowaniem tego adresu, które zachodzi na urządzeniu NAT. Jednakże cały ruch Teredo wykorzystuje ten sam zewnętrzny (publiczny) adres IPv4. Zewnętrzny adres IPv4 pobierany jest przez serwer Teredo z pakietu źródłowego Teredo i odsyłany do klienta.
Zewnętrzny adres jest przekształcany poprzez wykonanie funkcji XOR na adresie zewnętrznym z wartością 0xFFFFFFFF. Przykładowo, przekształconym adresem IPv4 na być ma być 131.107.0.1. Jego zapis heksadecymalny ma postać 0x836B0001. Zatem wynik końcowy to 7C94:FFFE (131.107.0.1 = 0x836B0001, 0x836B0001 XOR 0xFFFFFFFF = 0x7C94FFFE). Przekształcanie zewnętrznego adresu IPv4 ma na celu zabezpieczenie przed translacją zewnętrznego adresu IPv4 podczas przekazywania przez urządzenie NAT pakietu.
Klient A, ma następującą konstrukcję adresu:
- Publiczny adres wyjściowy IPv4 157.60.0.1, port UDP 4096
- Adres IPv4 serwera Teredo 206.73.118.1
- Znajduje się za urządzeniem NAT typu cone
Zatem bazując na opisie formatu adresu Teredo, będzie on miał postać
2001:ServerAddr:Flags:ObscExtPort:ObscExtAddr,
a jego pełny zapis będzie następujący: 2001::CE49:7601:E866:EFFF:62C3:FFFE
Wartości do przeliczeń są następujące:
2001::/32 – to prefiks klienta Teredo
CE49:7601 - heksadecymalny format zapisu adresu 206.73.118.1
E866 – pole flag ustawione z następującymi bitami. Flaga Cone – wartość 1 (Określa, iż klient zlokalizowany jest za NAT’em typu Cone). Fagi U i G ustawione na 0. Pozostałe 12 bitów ze wstawioną sekwencją pseudolosową. Dla Windows XP bez aktualizacji opisanej w biuletynie Microsoft Security Bulletin MS06-064, pole flag będzie miało wartość 8000.
EFFF - niewidoczny przekształcony numer zewnętrznego portu UDP 4096 (0x1000)
C2C3:FFFE - niewidoczny przekształcony zewnętrzny adres IPv4 157.60.0.1
Klient B, ma następującą konstrukcję adresu:
- Publiczny adres wyjściowy IPv4 131.107.0.1, port UDP 8192
- Adres IPv4 serwera Teredo 206.73.118.1
- Znajduje się za urządzeniem NAT typu Restricted
Zatem bazując na opisie formatu adresu Teredo, będzie on miał postać:
2001:ServerAddr:Flags:ObscExtPort:ObscExtAddr,
a jego pełny zapis będzie następujący: 2001::CE49:7601:2CAD:DFFF:7C94:FFFE
Wartości do przeliczeń są następujące:
CE49:7601 - heksadecymalny format zapisu adresu 206.73.118.1
2CAD - pole flag ustawione z następującymi bitami. Flaga Cone – wartość 0 (Określa, iż klient zlokalizowany jest za NAT’em typu Restricted). Fagi U i G ustawione na 0. Pozostałe 12 bitów ze wstawioną sekwencją pseudolosową. Dla Windows XP bez aktualizacji opisanej w biuletynie Microsoft Security Bulletin MS06-064, pole flag będzie miało wartość 0.
DFFF - niewidoczny przekształcony numer zewnętrznego portu UDP 8192 (0x2000)
7C94:FFFE - niewidoczny przekształcony zewnętrzny adres IPv4 131.107.0.1
W sieci IPv6-only, specjalny prefiks 2001::/32 określa trasę do najbliższego przekaźnika Teredo. Serwery Teredo, przekaźniki Teredo, oraz hosty z funkcją przekaźnika maja specjalną trasę w tablicy routingu o prefiksie 2001::/32, która jednoznacznie określa adresy węzłowe Teredo oraz specjalny interfejs będący tunelem Teredo. Tunel Teredo jest pseudointerfejsem zapewniającym automatyczną enkapsulację ruchu IPv4. Serwery Teredo, przekaźniki Teredo oraz hosty z funkcją przekaźnika mają dodatkowo domyślną trasę wyjściową o prefiksie (::/0), która wskazuje bramkę do sieci IPv6. Typowo jest to adres routera znajdującego się w sąsiedztwie, który posiada jeden z interfejsów podłączony do sieci IPv6.
Routing w klientach Teredo
Klient Teredo zawarty w Windows XP SP2, Windows XP SP1 with the Advanced Networking Pack for Windows XP, Windows Server 2003 with Service Pack 1, Windows Server 2003 Service Pack 2, Windows Vista, and Windows Server 2008 ma zdefiniowaną trasę domyślną (::/0), co oznacza, iż wszystkie adresy poza lokalnymi łącza będą wykorzystywać ten prefiks oraz interfejs tunelu jako domyślne wyjście. Wówczas adresem IPv6 następnego skoku jest koniec tunelu Teredo.
Rozpatrujemy następujące przypadki podczas tunelowania Teredo:
- Adresem przeznaczenia jest klient Teredo znajdujący się na tym samym łączu IPv4.
- Adresem przeznaczenia jest klient Teredo znajdujący się w innej lokalizacji.
- Adresem przeznaczenia jest węzeł znajdujący się w sieci IPv6.
Routing do klientów On-link (na tym samym łączu)
Dla pakietów przeznaczonych dla innego węzła Teredo znajdującego się na tym samym łączu, interfejs tunelu Teredo jest wykorzystywany do wymiany pakietów bubble, jako substytut procedury rozstrzygania adresów protokołu Neighbor Discovery. Wymiana pakietów bubble ma na celu upewnienie się węzłów, iż możliwa jest wymiana pakietów danych bezpośrednio.
Aby określić czy klient znajduje się na tym samym łączu, należy wysłać multicastowy pakiet bubble. Każdy klient Teredo wysyła multicastowe pakiety bubble na swoim łączu IPv4 w celu odnalezienia serwerów Teredo znajdujących się na tym samym łączu. Każdy klient Teredo odbiera multicastowe pakiety bubble od innych klientów Teredo i dodaje ich adresy IPv4 do swojej podręcznej pamięci adresów multicastowych. Zatem jeżeli adres przeznaczenia znajduję się w swojej podręcznej pamięci adresów multicastowych, oznacza to, że adres przeznaczenia znajduje się na tym samym łączu.
Routing do innej lokalizacji
Jeżeli przeznaczenie pakietów znajduje się w innej lokalizacji, interfejs tunelu Teredo wykorzystuje pakiety bubble, jako substytut rozstrzygania adresu z protokołu Neighbor Discovery wówczas, gdy obaj klienci Teredo znajdują się za urządzeniem NAT pracującym w trybie Restricted. Wymiana pakietów bubble tworzy wpisy w tabeli translacji NAT na obu urządzeniach NAT tak, że możliwa jest wówczas transmisja bezpośrednia pomiędzy obu klientami Teredo.
Routing do natywnej sieci IPv6
Każdy pakiet adresowany do sieci IPv6, jest tunelowany poprzez interfejs tunelu Teredo. Komunikaty ICMPv6 Echo Request i Echo Reply są substytutem procedury rozstrzygania adresów protokołu Neighbor Discovery. Komunikat ICMPv6 Echo Request jest wysyłany na adres przeznaczenia. Komunikat ICMP Echo Reply odebrany w odpowiedzi zawiera adres IPv4 przekaźnika Teredo najbliższego dla danego węzła IPv6.