Loading

Migracja WriteFreely.pl – FTdL + FreeDNS::42

O fakcie uruchomienia przeze mnie polskiej instancji WriteFreely pisałem tutaj. W oddzielnym wpisie opisałem, w formie poradnika, jak każdy może uruchomić swoją własną instancję wykorzystując do tego serwer z zainstalowanym oprogramowaniem Yunohost. WriteFreely.pl pierwotnie postawiłem na darmowym VPS’ie od Oracle, a jako dostawcę usługi (serwer) DNS wybrałem Cloudflare. Było to rozwiązanie i tanie i proste, jednakże nie do końca dbające o prywatność zarówno użytkowników, którzy są twórcami na WriteFreely.pl jak i tych, którzy są jedynie czytelnikami. Wszystko to za sprawą tego, że zarówno Oracle jak i Cloudflare to korporacje, a my świadomi ludzie z Outernetu wiemy, że takim firmom nie można ufać i najlepiej ich unikać, oczywiście jeżeli jest taka możliwość i istnieje sensowna alternatywa. Jeszcze do niedawna Cloudflare nie wydawało się takie złe, bo było postrzegane jako coś w rodzaju strażnika w sieci. Jednakże dość szybko okazało się, że przepuszczana przez ich infrastrukturę jest bardzo duża część Internetu, co przestało się mi i wielu osobom podobać ze względu na centralizację, a można by rzec nawet monopol.

Alternatywa dla VPS’a od Oracle przyszła do mnie sama, bo zaraz po uruchomieniu WriteFreely.pl napisali do mnie ludzie z Fundacji Technologie dla Ludzi z zapytaniem czy nie chciałbym przenieść instancji do ich infrastruktury. Nie musiałem się zastanawiać dwa razy, bo była to wspaniała oferta, za którą z tego miejsca chciałbym podziękować Piotrowi Sikorze oraz Sebastianowi a.k.a. m0bi13. Darmowy VPS w infrastrukturze zlokalizowanej w Polsce i stworzonej, aby pomagać właśnie takim projektom pro publico bono, biorę! Migracja nastąpiła w dniu 30. października 2023 i przebiegła bez większych problemów, o czym poinformowałem na blogu z ogłoszeniami parafialnymi dotyczącymi instancji WriteFreely.pl. Naturalnym następnym krokiem było pozbycie się pośrednika Cloudflare i wymienienie go na coś analogicznego i przy tym niebudzącego obaw dotyczących prywatności i centralizacji. O tym właśnie będzie ten wpis.

Serwer DNS

Na wstępie wytłumaczmy sobie w telegraficznym skrócie czym jest serwer DNS. Podstawową funkcją tej usługi jest przetłumaczenie adresu domenowego, to jest ten zjadliwy dla człowieka, czyli np. writefreely.pl, na adres IP serwera, czyli np. 195.117.15.126, serwującego zawartość, która ma zostać wyświetlona po wpisaniu tego adresu w pasek adresowy przeglądarki.

Nie jestem sieciowcem, więc jeżeli się mylę to proszę poprawcie mnie, ale według mnie krok po kroku wygląda to tak:

  1. Użytkownik wpisuje adres https://writefreely.pl w przeglądarce.
  2. Przeglądarka widzi, że jest to domena krajowa .pl, więc zwraca się do Krajowego Rejestru Domen (w tym przypadku NASK) z prośbą o udzielenie informacji na temat tej domeny.
  3. NASK informuje, że domena jest zarejestrowana u dostawcy Abc Hosting Ltd. (cba.pl) i odsyła do następujących serwerów DNSalina.ns.cloudflare.com i lloyd.ns.cloudflare.com.
  4. Przeglądarka komunikuje się z pierwszym z podanych serwerów (drugi jest w ramach redundancji, jakby pierwszy nie działał) i pyta – Drogi serwerze DNS, daj mi adres IP serwera obsługującego adres https://writefreely.pl.
  5. W odpowiedzi przeglądarka otrzymuje adres 195.117.15.126.
  6. Przeglądarka komunikuje się z serwerem działającym pod adresem 195.117.15.126 i uzyskuje od niego kod strony, która ma zostać wyświetlona.
  7. Przeglądarka przetwarza kod w formę czytelną dla człowieka i wyświetla ją.

To wszystko dzieje się w ułamku sekundy, a potocznie nazywamy to czekaniem aż strona internetowa się załaduje. W tym wpisie naszym planem jest zmiana serwerów DNS od Cloudflare, o których mowa w punkcie 3 powyższej listy.

FreeDNS::42

Odpowiedniego serwera DNS nie trzeba wcale daleko szukać, bo Twój dostawca domeny na pewno oferuje taką funkcję w ramach wykupionej domeny. Opcje konfiguracji parametrów DNS domeny znajdują się najpewniej w jej ustawieniach w panelu klienta na stronie dostawcy. W zależności kto nim jest ustawienia te będą mniej lub bardziej zaawansowane i tym samym będą pozwalały na mniej lub więcej. W przeważającej ilości przypadków będzie to wystarczające, ale jeżeli jesteś bardziej wymagającym użytkownikiem to może się to dla Ciebie okazać zbyt ograniczone. W takim przypadku na ratunek przychodzą usługi dedykowane dla takich zapaleńców.

FreeDNS::42 to darmowy serwer DNS, czyli kolejny fajny projekt pro publico bono. Może nie jest to usługa posiadająca najpiękniejszy interfejs użytkownika jaki widziałeś/aś w życiu, ale na pewno nie można odmówić jej funkcjonalności, a przecież to właśnie na to w tym przypadku powinniśmy patrzeć. A zatem, znaleźliśmy rozwiązanie darmowe i w pełni funkcjonalne, a co najważniejsze nie budzące wątpliwości, które mieliśmy wobec Cloudflare. W takim wypadku zaczynajmy migrację!

Odczytajmy nastawy w Cloudflare

Na początek ustalmy jakie rekordy mamy w Cloudflare. W tym celu po zalogowaniu się przechodzimy do zakładki DNS i wybieramy Records. Wyświetlona zostanie lista wszystkich rekordów. W przypadku WriteFreely potrzebne są raczej tylko rekordy typu A i CAA, ale pamiętajmy, że reszta z nich jest ustawiona tak jak wymagał od nas tego Yunohost, więc zostawmy już to tak jak jest. Zatem mamy do przeniesienia następujące rekordy:

TypeNameContent
A*195.117.15.126
Awritefreely.pl195.117.15.126
CAAwritefreely.pl0 issue “letsencrypt.org”
MXwritefreely.plwritefreely.pl
TXT_dmarc“v=DMARC1; p=none”
TXTmail._domainkey“v=DKIM1; h=sha256; k=rsa; p=(…)”
TXTwritefreely.pl“v=spf1 a mx -all”

Konfiguracja strefy w FreeDNS::42

Mając już te dane możemy przejść na stronę FreeDNS::42 i założyć konto. Po zalogowaniu przechodzimy do Utwórz strefę (dostępne w menu na górze). Podajemy dowolną nazwę strefy, jako typ strefy wybieramy Podstawowe i potwierdzamy przyciskiem Utwórz.

W ten sposób tworzymy całkowicie pustą strefę, którą należy teraz odpowiednio skonfigurować. W tym celu wybieramy na górze Modyfikuj strefę, na liście odnajdujemy tą świeżo utworzoną i wybieramy ją. Aby uzyskać identyczną konfigurację do tej z Cloudflare musimy wypełnić to jak na poniższych zrzutach ekranu.

To wszystko potwierdzamy przyciskiem Utwórz konfigurację strefy znajdującym się na samym dole. Po wszystkim powinniśmy zobaczyć następujące potwierdzenie:

Bieżąca strefa: writefreely.pl
Dodawanie rekordu MX writefreely.pl.... OK
Dodawanie rekordu A *... OK
Dodawanie rekordu A @... OK
Dodaję rekord CAA @.... OK
Dodaję rekord TXT @.... OK
Dodaję rekord TXT mail._domainkey.... OK
Dodaję rekord TXT _dmarc.... OK
Nowy numer seryjny: (...)
Twoja strefa pomyślnie przeszła nasze wewnętrzne testy konfiguracji. Powinna być aktywna w ciągu kwadransa.Otrzymasz list informujący Cię o jej aktywowaniu.
Oto wygenerowana konfiguracja:


$TTL 86400 ; Domyślny TTL
writefreely.pl.    	IN SOA   fns1.42.pl. freedns-admin+213320.42.pl (
                   	         1699963109 ; numer seryjny
                   	         86400      ; Częstość odświeżania (refresh)
                   	         10800      ; Częstość powtórek (retry)
                   	         604800     ; Czas wygaśnięcia (expire)
                   	         10800      ; Negatywne buforowanie TTL
                   	)

$ORIGIN writefreely.pl.
                   	IN NS    fns1.42.pl.
                   	IN NS    fns2.42.pl.
@                  	IN MX    10 writefreely.pl. 

*                  	IN A     195.117.15.126 
@                  	IN A     195.117.15.126 

@                  	IN CAA   0 issue "letsencrypt.org"

@                  	IN TXT   "v=spf1 a mx -all"
mail._domainkey    	IN TXT   "v=DKIM1; h=sha256; k=rsa; p=(...)"
_dmarc             	IN TXT   "v=DMARC1; p=none"

Zmiana DNS u dostawcy domeny

Ostatni krok jaki pozostało nam wykonać to zalogować się do panelu klienta u naszego dostawcy domeny, wejść do ustawień tej konkretnej domeny i zmienić dla niej serwery DNS na następujące:

  • fns1.42.pl
  • fns2.42.pl

Takie ustawienie sprawi, że domena poprzez NASK będzie odsyłała do FreeDNS::42, które dalej będzie już kierowało ruch zgodnie z ustawionymi rekordami.

Koniec?

To nie do końca jest koniec tematu. Z DNSami jest niestety tak, że zmiany w nich wprowadzane nie są natychmiastowe. Lubię to zjawisko nazywać propagacją, choć już niejednokrotnie byłem poprawiany przez mądrzejszych ode mnie, że nie jest to odpowiednie określenie. Mimo to dalej wydaje mi się, że jest to najtrafniejsze słowo jakiego mogę użyćw tej sytuacji. Chodzi o to, że sieć serwerów nazw to naprawdę obszerna pajęczyna komputerów, które nieustannie wymieniają się informacjami i nie posiadają centralnego nadzorcy, który pilnowałby, aby wszystkie informacje na wszystkich serwerach były jednakowe i aktualne. Dowolna zmiana w konfiguracji DNS jest tak naprawdę rozgłaszana i rozprzestrzenia się coraz bardziej od serwera do serwera. To właśnie nazywam propagacją. Do tego serwery nie aktualizują swoich danych przy każdym zapytaniu do nich skierowanym, bo byłaby to wydajnościowa tragedia. W zamian za to korzystają ze swojej pamięci podręcznej (cache), tj. jeżeli tylko mają o danej domenie jakieś informacje, które są względnie aktualne to po prostu je serwują bez sprawdzania czy aby na pewno nie były zmienione sekundy temu. Dążę do tego, że zmiany, których dokonaliśmy w poprzednich akapitach mogą się propagować nawet do 24 godzin i jest to normalne. Postęp tego procesu można monitorować takimi narzędziami jak DNS Checker. Na poniższym zrzucie ekranu można zaobserwować idealne potwierdzenie tego co napisałem wyżej, czyli to, że część testowych NSów odsyła jeszcze do starych DNSów (Cloudflare), a pozostałe serwują już aktualne. Z uwagi na to istotne jest, aby jeszcze przez jakiś czas pozostawić starą konfigurację w Cloudflare, dzięki czemu unikniemy tego, że dla pewnych osób strona mogłaby być niedostępna.

W przypadku zmiany serwera DNS propagacja nie jest tak wielkim problemem, bo po prostu wystarczy przez pewien czas pozostawić jednakową konfigurację na dwóch usługach pośredniczących. Większy problem jest, gdy przesiadamy się z jednego serwera na drugi posiadający inny adres IP. Wtedy zachowanie ciągłości działania przenoszonej usługi jest niemalże niemożliwe, bo jest ona przenoszona na drugi serwer, a niektóre serwery DNS jeszcze przez pewien czas będą odsyłać do starego, na którym już tej usługi nie ma. Nie jest to przypadek omawiany w tym wpisie, ale myślę, że warto o tym wspomnieć, żeby wyczerpać temat.


Jeżeli podobał Ci się ten wpis to możesz mnie wesprzeć! 🙂

Tomasz Dunia

🇵🇱 Z wykształcenia Mechatronik. Z zawodu Główny Konstruktor w PAK-PCE Polski Autobus Wodorowy (Neso Bus). Po pracy Ojciec Roku. W nocy Wannabe Programista. Wszystko to daje przepis na zwykłego nerda :) 🇬🇧 Mechatronics by education. By profession Chief Constructor in PAK-PCE Polish Hydrogen Bus (Neso Bus). After work Father of the Year. At night Wannabe Programmer. All this gives a recipe for an ordinary nerd :)

svg

What do you think?

Show comments / Leave a comment

5 komentarzy

  • KonradW

    22 listopada, 2023 / at 8:32 pm

    @to3k @to3k #FundacjaTechnologieDlaLudzi czyli z jednej zcentralizowanej organizacji bardzo ugruntowanej w sieci, przeniosłeś do nowej co się dopiero rozrasta. Ja bym tego za wielki sukces nie uznał, gdyż granulacja systemów musi, powinna być duża aby wypełniać zasady decentralizacji. Fediverse tak jak każda inna sieć jest podatna na ataki które w dużej skali mogą jej szkodzić i należy unikac tworzenia dużych grup systemowych kontrolowanych przez rozrastające się w jej granicach organizacje, którym zależy na kontroli ruchu jak na żyle zlota. Jeśli wiele osób takich jak ty będzie przechodzić na hypervisor kontrolowany przez tą fundację to będzie to ze szkodą dla sieci. Taka sieć może być, jest podatna na ataki typu "honest Gepetto" dla przykładu. Jeśli jedna organizacja będzie kontrolować zbyt dużo węzłów będzie zagrożeniem dla zdecentralizowanej sieci, nawet jeśli działa w formie federacji. Nim rozkrecisz serwer który będzie na tyle obciążony aby hosting był w centrum informatycznym (co takze jest formą centralizacji warstwy fizycznej) powalczył bym i zrobił to wzorowo trzymając swój serwer w domu za własnym IP. Jest z tym trochę zabawy ale w końcu chodzi o system odwrotny do web 2.0. poza tym Twój VPS może być dowolnie przeglądany przez adminów fundacji. Mogą zrobić pełny snapshot ze stanem ramu i procesora i przeglądać co zechcą. Wspierał bym sieć poprzez hosting w domu jesli masz skille i parę zlociszy. Przysluzysz się wtedy w pełni Fediverse.

    • Tomasz Dunia

      22 listopada, 2023 / at 9:46 pmsvgOdpowiedz

      Trochę się uśmiechnąłem jak zobaczyłem, że cały ten wywód jest napisany z instancji pol.social, która należy właśnie do @ftdl 😅 Centralizacja na taką skalę jak działalność FTdL to żadna centralizacja. Tego można się dowiedzieć obawiać w przypadku Google czy Cloudflare. Co do dostępu ludzi z FTdL do mojej instancji WriteFreely to droga wolna, ten software jest napisany tak, że nic poufnego tam nie ma pod spodem 😉 Jednakże jak masz skille i parę zlociszy to uruchom własną instancję 😉

  • ssad

    22 listopada, 2023 / at 9:29 pmsvgOdpowiedz

    dziwny ruch, podziwiam.

Leave a reply

svg
Quick Navigation
  • 01

    Migracja WriteFreely.pl – FTdL + FreeDNS::42