📬 ISN 174: Niewidzialny Bohater Internetu

W numerze 174 odkryj, dlaczego VLAN 1 to pułapka, przeanalizuj incydent z Cloudflare R2 i zarządzaj labem w VSCode. Dowiedz się, jak łatwo synchronizować dane, oraz poznaj niewidzialnego bohatera Internetu!
📬 ISN 174: Niewidzialny Bohater Internetu

Dlaczego unikać tagowania VLAN 1

Tagged VLAN 1 In a Trunk Is a Really Bad Idea « ipSpace.net blog
It all started with a netlab issue describing different interpretations of VLAN 1 in a trunk. While Cumulus NVUE (the way the netlab configuration template configures it) assumes that the VLAN 1 in a trunk is tagged, Arista EOS assumes it’s the native VLAN. At that point, I should have said, “that’s crazy, we shouldn’t allow that” and enforce the “VLAN 1 has to be used as a native VLAN” rule. Alas, 20/20 hindsight never helped anyone. TL&DR: Do not use VLAN 1 in VLAN trunks; if you have to, use it as a native VLAN.

W inżynierii sieciowej pewne praktyki nie są jedynie technikaliami, ale kluczowymi najlepszymi praktykami. Jedną z takich praktyk jest unikanie używania VLAN 1 jako otagowanego VLAN na łączach trunkowych. To podejście może wydawać się proste, ale ma istotne implikacje dla stabilności i zarządzania siecią.

Koncepcja Wirtualnych Sieci Lokalnych (VLAN) pojawiła się w latach 90. XX wieku, aby poprawić segmentację sieci. Początkowo VLAN 1 został wyznaczony jako domyślny VLAN bez tagów, ponieważ VLAN 0 był zarezerwowany do innych celów. To ustawienie działało bezproblemowo, dopóki urządzenia nie zaczęły korzystać z DHCP, wysyłając ramki bez tagów, które domyślnie przypisywano do VLAN 1. Dostrzegając to ograniczenie, dostawcy wprowadzili możliwość ustawienia innego natywnego VLAN, co pozwoliło sieciom działać wydajniej bez niezamierzonego routingu ruchu.

Tagowanie VLAN 1 na łączach trunkowych może prowadzić do nieoczekiwanych zachowań w różnych urządzeniach sieciowych:

  • Aruba: Wymaga specjalnych poleceń do tagowania VLAN 1, co nie jest intuicyjne dla inżynierów przyzwyczajonych do standardowych konfiguracji.
  • Cisco: Polecenie encapsulation dot1q 1 na subinterfejsie zawsze dodaje słówko kluczowe native.
  • VyOS/Ubiquiti: Automatycznie wyklucza VLAN 1 z tagowania, chyba że jest to wyraźnie skonfigurowane, co komplikuje ustawienia i zwiększa ryzyko błędów.
  • Juniper: Przypisuje unikalny identyfikator (ID 0) do VLAN 1, co może powodować potencjalne konflikty w tablicach routingu.

Te zachowania pokazują, jak używanie VLAN 1 jako otagowanego VLAN może wprowadzać niepotrzebną złożoność i potencjalne błędy w konfiguracji.


Analiza incydentu z usługą Cloudflare R2

Cloudflare incident on February 6, 2025
On Thursday, February 6, 2025, we experienced an outage with our object storage service (R2) and products that rely on it. Here’s what happened and what we’re doing to fix this going forward.

6 lutego 2025 roku Cloudflare doświadczył poważnego incydentu, który na prawie godzinę całkowicie unieruchomił usługę przechowywania obiektów R2. Awaria nie tylko wpłynęła na podstawową funkcjonalność R2, ale także zakłóciła działanie powiązanych usług, takich jak Stream, Images, Cache Reserve i Vectorize. Co szczególnie istotne, przyczyną nie był skomplikowany błąd techniczny, a ludzka pomyłka podczas rutynowej procedury reagowania na zgłoszenie phishingu.

Incydent rozpoczął się o 8:12 UTC, gdy operator, reagując na zgłoszenie dotyczące nadużycia, przypadkowo wyłączył całą usługę Gateway R2 zamiast zablokować pojedynczy zasób związany z phishingiem. Skutki były natychmiastowe - już po dwóch minutach systemy monitorujące Cloudflare zarejestrowały krytyczną degradację usługi.

Kolejne wydarzenia potoczyły się błyskawicznie:

  • 8:17 - uruchomienie alertów krytycznych sygnalizujących brak odpowiedzi R2
  • 8:42 - identyfikacja przyczyny (dezaktywacja Gateway R2)
  • 9:09 - wdrożenie rozwiązania przez zespół operacyjny z odpowiednimi uprawnieniami
  • 9:13 - powrót dostępności R2 do normalnego poziomu

Architektura R2 i wpływ awarii na inne usługi

R2 opiera się na trzech kluczowych komponentach:

  • Gateway - warstwa frontowa odpowiedzialna za autoryzację i obsługę żądań
  • Warstwa metadanych bazująca na Durable Objects
  • Rozproszone magazyny danych przechowujące właściwe obiekty

Wyłączenie Gateway spowodowało kaskadę problemów w powiązanych usługach:

  • Stream i Images odnotowały 100% awaryjność
  • Vectorize doświadczył 75% błędów w zapytaniach i całkowitej niemożności zapisu
  • Cache Reserve zanotował problemy z mniej niż 0,049% zapytań
  • Log Delivery utracił do 13,6% logów kierowanych do R2

Co istotne, dzięki architekturze opartej na niezmienialnych kluczach i oddzielnej warstwie metadanych, żadne dane użytkowników nie zostały utracone ani uszkodzone.

Cloudflare potraktował incydent jako poważne ostrzeżenie i natychmiast wdrożył szereg usprawnień:

  1. Wprowadzenie autoryzacji dwuosobowej dla krytycznych operacji systemowych
  2. Zaostrzenie kontroli dostępu do narzędzi administracyjnych
  3. Implementacja zabezpieczeń przed przypadkowym blokowaniem kont wewnętrznych
  4. Reorganizacja struktury uprawnień w celu lepszej izolacji usług produkcyjnych

Lutowa awaria R2 stanowi cenny przykład tego, jak pozornie proste działanie administracyjne może wywołać poważne konsekwencje w środowisku produkcyjnym. Transparentność Cloudflare w opisie incydentu oraz szybkie wdrożenie kompleksowych zabezpieczeń pokazują dojrzałe podejście do zarządzania kryzysowego w infrastrukturze chmurowej.

Przypadek ten przypomina, że nawet w najbardziej zaawansowanych systemach czynnik ludzki pozostaje krytycznym elementem, któremu należy poświęcić szczególną uwagę przy projektowaniu procesów operacyjnych.


Zarządzaj swoim labem w VSCode

Containerlab - Visual Studio Marketplace
Extension for Visual Studio Code - Manages containerlab topologies in VS Code

Containerlab to narzędzie, które umożliwia wdrożenie filozofii IaaC w budowaniu laboratorium. Dotychczas narzędzie było dostępne jedynie z poziomu CLI, a teraz doczekało się namiastki GUI, które pozwala na wykonanie najważniejszych operacji.


Łatwy sposób na synchronizację danych

Overview — diffsync 2.0.1 documentation

DiffSync to biblioteka narzędziowa do porównywania i synchronizacji różnych zestawów danych. Przydatna, gdy masz wiele źródeł danych do porównania lub synchronizacji, zwłaszcza gdy dane zmieniają się w czasie, mają relacje hierarchiczne lub części wspólne i unikalne atrybuty. Umożliwia definiowanie modeli danych i adapterów do tłumaczenia między źródłami, by wygenerować różnice i synchronizować dane.


Niewidzialny Bohater Internetu

Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.