Dodanie tunelu IPv6 do routera z OpenWrt

Operatorzy w Wielkiej Brytanii s─ů bardzo zacofani, je┼╝eli chodzi o najnowsze rozwi─ůzania technologiczne. Patrz─ůc na zachowanie Brytyjczyk├│w, kt├│rych zapa┼é do nowych technologii jest nieco flegmatyczny, nie ma co si─Ö dziwi─ç, ┼╝e dostawcy us┼éug internetowych nadal tkwi─ů w epoce kamienia ┼éupanego (IPv4), mimo ┼╝e kamienie (pula adres├│w IPv4) ju┼╝ si─Ö sko┼äczy┼éy. O ile mam szcz─Ö┼Ťcie, ┼╝e dysponuje zewn─Ötrznym adresem IP w wersji 4, to mog─Ö zapomnie─ç o adresie w wersji 6 (kciuki w d├│┼é dla Virgin Media).

Na szcz─Ö┼Ťcie istnieje na to rozwi─ůzanie i to w dodatku darmowe!

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03

Mowa tutaj o tunelu IPv6 przy pomocy rozwi─ůzania 6 przez 4 (6-over-4 Tunnel).

Jeżeli dysponujemy routerem z OpenWrt, dodanie obsługi IPv6 to nic trudnego i już opisuje jak to zrobić.

W moim przypadku dodanie tunelu IPv6 robię w ramach ciekawostki, gdyż nie będę mógł go używać na co dzień. Dlaczego? Przeczytasz na końcu wpisu.

W pierwszej kolejno┼Ťci musimy doda─ç obs┼éug─Ö protoko┼éu IPv6-in-IPv4, instaluj─ůc odpowiedni pakiet z poziomu panelu administracyjnego przez przegl─ůdark─Ö internetow─ů (System > Software) lub z terminala, za pomoc─ů komendy:

opkg update
opkg install 6in4 luci-proto-ipv6

Drobna uwaga. W systemie dost─Öpny jest pakiet 6in4 oraz 6to4. Nazwy i zastosowanie jest podobne, ale to nie jest to samo. W tym wpisie wykorzystam 6in4 (IPv6-over-IPv4 (RFC4213)), a nie 6to4 (IPv6-over-IPv4 (6to4)).

Pakiet luci-proto-ipv6 mo┼╝emy ju┼╝ mie─ç zainstalowany, je┼╝eli w interfejsach (Network > Interfaces) widzimy ju┼╝ ustawiony WAN6 z domy┼Ťln─ů opcj─ů DHCPv6 client.

Je┼╝eli nie jeste┼Ť pewien, czy tw├│j dostawca internetu oferuje IPv6, mo┼╝esz to sprawdzi─ç w┼éa┼Ťnie tutaj. W interfejsie WAN6 powiniene┼Ť mie─ç przypisany adres IPv6 (Tak jak w WAN mamy IPv4). Je┼╝eli takiego nie widzisz, w├│wczas kontynuuj, w celu jego ustawienia. Je┼╝eli natomiast tw├│j us┼éugodawca dostarcza rozwi─ůzanie IPv6, nie musisz nic wi─Öcej robi─ç.

Na tym etapie zalecam uruchomienie ponowne naszego routera (System > Reboot), gdyż w momencie, gdy będziemy edytować nasze ustawienie WAN6, możemy nie mieć dostępnej opcji IPv6-in-IPv4 (RFC4213) w polu protokołu (Protocol).

reboot

Po ponownym uruchomieniu routera przechodzimy do ustawienia naszego interfejsu (Network > Interfaces).

Ewentualnie z poziomu terminala:

/etc/init.d/network restart

Nim zaczniemy wprowadzać jakiekolwiek dane, potrzebujemy założyć konto u usługodawcy, który będzie oferował nam usługę tunelu IPv6. W tym przypadku wybieramy Hurricane Electric Free IPv6 Tunnel Broker.

Po założeniu i potwierdzeniu konta logujemy się i z lewej strony (User Functions) wybieramy otworzenie regularnego tunelu (Create Regular Tunnel).

HE main page

W nast─Öpnym kroku wstawiamy zewn─Ötrzny adres IP naszego routera (IPv4 Endpoint) oraz wybieramy, z kt├│rym serwerem na ┼Ťwiecie b─Ödziemy si─Ö ┼é─ůczy─ç, aby utworzy─ç tunel (Available Tunnel Servers). W moim przypadku wybra┼éem Londyn, ale w przypadku polski mamy r├│wnie┼╝ dost─Öpn─ů Warszaw─Ö.

HE Create new tunnel 1

HE Create new tunnel 2

Na końcu otrzymamy adresy, które będziemy wprowadzać po stronie naszego routera.

HE Tunnel details


A wi─Öc przechodz─ůc do routera (Network > Interfaces) edytujemy (Edit) nasz interfejs WAN6.

Z domy┼Ťlnej opcji protoko┼éu (Protocol) wybieramy IPv6-in-IPv4 (RFC4213), potwierdzamy wszystko przyciskiem Switch protocol.

wan6 default dhcpv6 client

wan6 ipv6 in ipv4 rfc4213

W nast─Öpnym kroku, w zak┼éadce ustawie┼ä og├│lnych (General Settings), pozostawiamy lokalny adresem IPv4 (Local IPv4 address) pusty, gdy┼╝ b─Ödzie on automatycznie odczytywany z po┼é─ůczenia WAN.

W polu - zdalny adres IPv4 (Remote IPv4 address) - wprowadzamy adres ze strony HE, sekcja IPv6 Tunnel Endpoints > Server IPv4 Address.

W polu - lokalny adres IPv6 (Local IPv6 address) - wprowadzamy adres ze strony HE, sekcja IPv6 Tunnel Endpoints > Client IPv6 Address. Jest to adres ko┼äczony si─Ö z regu┼éy ::2/64 jak pod┼Ťwietlono w formularzu konfiguracji.

W polu IPv6 routed prefix mamy do wyboru wprowadzenie z sekcji Routed IPv6 Prefixes. Do wyboru mamy Routed /64 lub Routed /48.

/64 u┼╝ywa─ç b─Ödzie pojedynczej sieci IPv6, gdy /48 u┼╝ywa─ç b─Ödzie wi─Öksz─ů pul─Ö adres├│w w sieci IPv6. Z regu┼éy dla klienta ko┼äcowego (u┼╝ytkownika prywatnego) zaleca si─Ö /64, gdzie /48 dla rozleg┼éego klienta biznesowego.

W skr├│cie, w puli adresowej /64, router ma jedn─ů podsie─ç w IPv6, i w ramach tej podsieci przyznawane s─ů adresy IPv6. Jest to podobne rozwi─ůzanie do standardowego LAN, gdzie router jest 192.168.1.1 (maska …0) a u┼╝ytkownicy maj─ů adresy .0.2, .0.3 i tak dalej. W przypadku /48, puli adresowych i podsieci mo┼╝e by─ç wi─Öcej. Tak jak w przypadku IPv4, mo┼╝esz mie─ç u┼╝ytkownika 192.168.1.12 w jednej podsieci i u┼╝ytkownika 192.168.2.12 w drugiej podsieci.

W zale┼╝no┼Ťci od zaawansowania konfiguracji i liczby u┼╝ytkownik├│w nale┼╝y podj─ů─ç decyzj─Ö, co jest najlepsze dla nas. Osobi┼Ťcie zalecam pozostawienie /64.

A wi─Öc kopiujemy warto┼Ť─ç z Routed /64 do IPv6 routed prefix i klikamy przycisk (+).

Je┼╝eli nasz zewn─Ötrzny adres IP ulega zmianie, w├│wczas zalecane jest r├│wnie┼╝ dodanie automatyczne od┼Ťwie┼╝enie adresu IP (endpoint) (ten krok mo┼╝emy pomin─ů─ç w przypadku sta┼éego adresu IP).

wan6 ipv6-in-ipv4 rfc4213 dynamic tunnel

Zaznaczmy Dynamic tunnel i wypełniamy kolejne pola.

W Tunnel ID wprowadzamy warto┼Ť─ç ze strony HE. Jest to pierwsza warto┼Ť─ç w szczeg├│┼éach tunelu (Tunnel Details), kt├│r─ů otrzymali┼Ťmy po jego za┼éo┼╝eniu.

W HE.net username wprowadzamy nasz─ů nazw─Ö u┼╝ytkownika, kt├│r─ů u┼╝ywamy do logowania si─Ö na stronie tunnelbroker.net.

HE tunnel details advanced

W HE.net password musimy poda─ç wygenerowany klucz, kt├│ry s┼éu┼╝y do aktualizacji adresu IP. W zwi─ůzku z tym udajemy si─Ö na stron─Ö HE i w zak┼éadce Zaawansowane (Advanced) naszego tunelu kopiujemy warto┼Ť─ç z pola Update Key i wklejamy po stronie routera.

Przed-ostatnim krokiem jest zapisanie naszej konfiguracji (Save) i potwierdzenie przez Zapisz i Zastosuj (Save & Apply) a nast─Öpnym ekranie.


Teoretycznie wszystko powinno już działać, ale w praktyce nie zawsze tak jest.

Mimo ┼╝e dodali┼Ťmy konfiguracj─Ö sieciow─ů, po zapisaniu i zastosowaniu zmian, tylko konfiguracja sieci ulega od┼Ťwie┼╝eniu, a nie koniecznie Firewall.

W zwi─ůzku z tym musimy przej┼Ť─ç do terminala i wykona─ç jedn─ů komend─Ö:

/etc/init.d/firewall restart

Lub uruchomi─ç router ponownie i gotowe.

Po stronie routera, w zak┼éadce Zaawansowanych Ustawie┼ä (Advanced Settings) naszego interfejsu WAN6, w ramach optymalizacji pr─Ödko┼Ťci mo┼╝emy zmieni─ç domy┼Ťlne ustawienia dla Use TTL on tunnel interface na .(z 64) oraz Use MTU on tunnel interface na 1480 (z 1280).

MTU ustawiamy wg. MTU naszego po┼é─ůczenia sieciowego pomniejszonego o 20. Je┼╝eli nasze po┼é─ůczenie internetowe u┼╝ywa MTU 1500, w├│wczas ustawiamy 1480. Nasze MTU dla poszczeg├│lnych interfejs├│w sprawdzimy komend─ů ifconfig z poziomu terminala.


Sprawdzenie #

Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, nasz router powinien zyska─ç po┼é─ůczenie IPv6.

Aby to sprawdzi─ç, z poziomu terminala wykonujemy ping

ping ipv6.google.com

Z komputera w sieci domowej wchodzimy na stron─Ö https://ipv6test.google.com lub https://ipv6.google.com

Zar├│wno ping, jak i strony internetowe powinny by─ç dost─Öpne.

Ostatnim krokiem jest przej┼Ťcie na stron─Ö https://test-ipv6.com w celu potwierdzenia, ┼╝e wszystko dzia┼éa.

Powinni┼Ťmy otrzyma─ç wynik 10/10.


Je┼╝eli na naszym routerze ustawili┼Ťmy r├│wnie┼╝ Bezpieczny DNS wg mojego opisu, z obs┼éug─ů IPv6, w├│wczas, przechodz─ůc na stron─Ö https://1.1.1.1/help zobaczymy w Connectivity to Resolver IP Addresses odpowied┼║ z naszego DNS po adresie IP w formie IPv6 .6:4700:4700::1111 oraz.6:4700:4700::1001).

CloudFlare 1111 help page


Je┼╝eli ustawiali┼Ťcie sw├│j serwer VPN na routerze z wykorzystaniem WireGuard wg mojego opisu oraz dodali┼Ťcie domen─Ö do waszego adresu IP routera, r├│wnie┼╝ wg mojego opisu, w├│wczas warto doda─ç rekord AAAA wskazuj─ůcy na wasz adres IPv6 (ten z ::2). Dzi─Öki czemu, w teorii, po┼é─ůczenie z VPN mo┼╝ecie wykonywa─ç zar├│wno przez IPv4, jak i IPv6.


Teraz to ju┼╝ naprawd─Ö wszystko.

Dzi─Öki temu zabiegowi, mamy dodan─ů obs┼éug─Ö IPv6 po stronie naszego routera, mimo ┼╝e nasz us┼éugodawca da┼é cia┼éa i wspiera tylko IPv4.

Negatywn─ů stron─ů tego rozwi─ůzania jest to, ┼╝e us┼éugodawcy internetowi mog─ů robi─ç wszystko, aby przeciwdzia┼éa─ç u┼╝ywaniu tuneli IPv6 w ich sieci. Tak jest na przyk┼éad z Virgin Media w UK, kt├│re, mimo, ┼╝e pozwala ustanowi─ç tunel, to jego wydajno┼Ť─ç jest na poziomie 10%. Przy ┼é─ůczu 100/10Mbps osi─ůgamy pr─Ödko┼Ťci max. 6-10/3-6Mbps.

Ten sam tunel postawiony na ┼é─ůczu innego us┼éugodawcy (CityFibre 100/100) dzia┼éa z pe┼én─ů jego pr─Ödko┼Ťci─ů.

Wi─Öcej mo┼╝esz przeczyta─ç tutaj.

Aktualizacja 31/05/2020

Je┼╝eli z jakiego┼Ť powodu nie chcecie u┼╝y─ç rozwi─ůzania od Hurricane Electric (USA), istnieje te┼╝ tego samego typu rozwi─ůzanie oferowane przez firm─Ö mieszcz─ůc─ů si─Ö w Europie, a mianowicie Securebit AG (Szwajcaria).

Securebit AG oferuje 3 tunele IPv6 z podsieci─ů /64 za darmo.

Mimo ┼╝e domy┼Ťlna konfiguracja 6in4 w OpenWrt zorientowana jest w┼éa┼Ťnie na HE, w opcji automatycznego od┼Ťwie┼╝ania adresu IPv4 (Dynamic tunnel) mo┼╝emy analogicznie u┼╝y─ç danych z nowej us┼éugi, gdy┼╝ wykorzystuje ona ten sam schemat.

Pozdrawiam.


Credits

Komentarze