Wszystkie artykuły

9 min czytania

GRE, VLAN L2, WireGuard i cross-connect: szczegóły podłączenia

Cztery sposoby dostarczenia czystego ruchu z ochrony DDoS do Twojej sieci: tunel GRE, WireGuard, VLAN po L2 i cross-connect (PNI). Narzut nagłówków, MTU, czas zestawienia, ruch symetryczny i to, który sposób wybrać.

Schemat czterech dróg czystego ruchu z sieci SkyPass do sieci klienta: tunel GRE, WireGuard, VLAN po L2 i cross-connect

Ochrona DDoS w modelu, w którym Twoje prefiksy są rozgłaszane z sieci dostawcy ochrony, składa się z dwóch połówek. Pierwsza jest prosta: cały ruch do Twoich adresów wchodzi do sieci SkyPass, bo to my rozgłaszamy je przez BGP z AS202520. Druga połówka to pytanie, jak czysty ruch ma do Ciebie wrócić. Są cztery odpowiedzi: tunel GRE, tunel WireGuard, VLAN po warstwie drugiej i fizyczny cross-connect w centrum danych. Różnią się czasem zestawienia, narzutem, wymaganiami i tym, komu się opłacają. Omawiamy każdą z nich ze szczegółami.

Cztery schematy podłączenia: tunel GRE i tunel WireGuard przez internet, VLAN po L2 przez operatora lub punkt wymiany ruchu oraz cross-connect światłowodem w tym samym centrum danychCztery schematy podłączenia: tunel GRE i tunel WireGuard przez internet, VLAN po L2 przez operatora lub punkt wymiany ruchu oraz cross-connect światłowodem w tym samym centrum danychDwa tunele przez internet, wirtualny kabel od operatora i fizyczny światłowód w centrum danych. Każdy sposób dostarcza czysty ruch z sieci SkyPass do Twojej sieci.

Tunel GRE

GRE (Generic Routing Encapsulation) to najprostszy sposób na „wirtualny kabel” przez internet. Pakiet IP, który ma trafić do Ciebie, zostaje opakowany w drugi pakiet IP z nagłówkiem GRE i wysłany na Twój publiczny adres. Twój router zdejmuje opakowanie i dalej routuje pakiet normalnie. GRE to protokół IP numer 47: nie używa portów, nie szyfruje i nie utrzymuje stanu połączenia.

Co jest potrzebne. Publiczny adres IP po Twojej stronie i router, który obsługuje GRE (praktycznie każdy: Linux, MikroTik, Juniper, Cisco, VyOS). Po zestawieniu tunelu ruch do Twoich prefiksów kierujemy do niego statycznie albo przez sesję BGP w tunelu, która daje Ci pełną kontrolę nad tym, co i kiedy jest rozgłaszane. Jeśli nie masz własnych prefiksów, możesz skorzystać z naszych adresów IPv4.

Narzut i MTU. Opakowanie kosztuje 24 bajty na pakiet: 20 bajtów zewnętrznego nagłówka IPv4 i 4 bajty nagłówka GRE. Przy MTU 1500 na łączu wewnątrz tunelu zostaje 1476 bajtów. Trzeba ustawić takie MTU na interfejsie tunelu i ograniczyć MSS dla TCP (zwykle do 1436), inaczej większe pakiety będą fragmentowane albo gubione, a użytkownicy zobaczą wiszące strony i zrywane pobierania.

Budowa pakietu: zwykły pakiet to nagłówki IP i TCP oraz dane. W tunelu GRE dochodzi zewnętrzny nagłówek IP i nagłówek GRE, w tunelu WireGuard zewnętrzny IP, UDP i nagłówek WireGuard, a część wewnętrzna jest zaszyfrowanaBudowa pakietu: zwykły pakiet to nagłówki IP i TCP oraz dane. W tunelu GRE dochodzi zewnętrzny nagłówek IP i nagłówek GRE, w tunelu WireGuard zewnętrzny IP, UDP i nagłówek WireGuard, a część wewnętrzna jest zaszyfrowanaCo tunel dokłada do każdego pakietu. GRE zabiera 24 bajty, WireGuard 60 bajtów, dlatego w środku tunelu zostaje odpowiednio 1476 i 1420 bajtów.

Zalety. Zestawienie w godziny, bez fizycznej instalacji i bez udziału innych operatorów. To dlatego od GRE zaczyna się większość wdrożeń awaryjnych: w przypadku NysaNet tunel postawił sieć operatora w weekend, w trakcie trwającego ataku.

Ograniczenia. Tunel nie dodaje pasma: czysty ruch wraca do Ciebie przez Twoje zwykłe łącze internetowe, więc musi się na nim zmieścić. Enkapsulacja obciąża CPU routera przy dużej liczbie pakietów na sekundę. Ruch nie jest szyfrowany, tak jak zwykły ruch w internecie. I wreszcie trasa tunelu zależy od tego, którędy internet poprowadzi pakiety między nami a Tobą, więc opóźnienia bywają wyższe niż na bezpośrednim łączu.

Minimalna konfiguracja po stronie Linuksa wygląda tak (adresy przykładowe):

ip tunnel add gre-skypass mode gre local 198.51.100.10 remote 203.0.113.1 ttl 255
ip link set gre-skypass mtu 1476 up
ip addr add 10.255.0.2/30 dev gre-skypass
iptables -t mangle -A FORWARD -o gre-skypass -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

WireGuard

WireGuard to nowoczesny tunel VPN działający na UDP. Każda strona ma parę kluczy, a ruch w tunelu jest szyfrowany i uwierzytelniany. Implementacja w jądrze Linuksa jest szybka i prosta w konfiguracji: jeden plik, kilka linii.

Co jest potrzebne. Router albo serwer z WireGuardem i port UDP osiągalny z internetu. WireGuard działa także zza NAT-u, więc po Twojej stronie nie jest konieczny publiczny adres.

Narzut i MTU. Tunel kosztuje 60 bajtów na pakiet przy IPv4: 20 bajtów nagłówka IP, 8 bajtów UDP i 32 bajty nagłówka WireGuard. Stąd domyślne MTU 1420 i konieczność ograniczenia MSS dla TCP do 1380.

Dla kogo. Dla hostingu i serwerów gier, które chcą, żeby ruch między siecią ochrony a serwerem był szyfrowany, albo które nie mają routera z GRE, ale mają serwer z Linuksem. W ochronie hostingu WireGuard jest jedną z trzech form podłączenia obok GRE i cross-connectu.

Ograniczenia. Szyfrowanie kosztuje CPU: przy dziesiątkach gigabitów to realne obciążenie. WireGuard sam z siebie nie przenosi dynamicznego routingu (sesję BGP da się puścić w tunelu, ale to dodatkowa konfiguracja), a niektóre sieci ograniczają ruch UDP.

VLAN po L2

Zamiast tunelować przez internet, można kupić od operatora usługę warstwy drugiej: połączenie Ethernet punkt-punkt (E-Line, EVPL) między Twoim routerem a naszą siecią. Ruch wchodzi do niego jako ramki Ethernet z tagiem 802.1Q, bez tunelu IP. Drugi wariant to prywatny VLAN na punkcie wymiany ruchu, jeśli oboje jesteśmy obecni na tym samym IX.

Co jest potrzebne. Operator, który ma zasięg u Ciebie i w jednym z centrów danych, w których jesteśmy obecni, albo port na wspólnym punkcie wymiany ruchu. Po zestawieniu VLAN-u uruchamiamy po nim sesję BGP.

Narzut i MTU. Tag VLAN to 4 bajty w ramce Ethernet, nie w pakiecie IP, więc MTU dla IP zostaje 1500. Jeśli operator wspiera ramki jumbo, można pójść wyżej. Brak enkapsulacji oznacza brak dodatkowego obciążenia routera.

Zalety. Pełna prędkość usługi, przewidywalne opóźnienia i stabilność. To łącze dedykowane, więc nie dzieli pasma z Twoim ruchem internetowym. Ruch naturalnie biegnie symetrycznie.

Ograniczenia. Czas: zestawienie usługi L2 u operatora to zwykle dni lub tygodnie, a usługa ma miesięczny koszt. W przypadku NysaNet VLAN zestawiony przez operatora z Warszawy do Katowic zastąpił tunel GRE po kilku dniach i sieć pracowała od tej pory na stabilniejszym łączu.

Cross-connect (PNI)

Cross-connect to fizyczny światłowód między Twoją szafą (albo szafą Twojego operatora) a naszym portem w tym samym centrum danych. W żargonie operatorskim takie bezpośrednie połączenie dwóch sieci to PNI, private network interconnect, w odróżnieniu od peeringu przez punkt wymiany ruchu, gdzie port jest współdzielony.

Gdzie. W centrach danych, w których obecna jest sieć AS202520: w Warszawie LIM DC, Equinix WA3, ATMAN WAW-1, ATMAN WAW-2 i Datahouse, we Wrocławiu Korbank Data Center. Aktualną listę znajdziesz na stronie sieci i peeringu. Jeśli nie masz sprzętu w żadnym z nich, możesz go postawić u nas w kolokacji.

Co jest potrzebne. Sprzęt w tym samym obiekcie, zlecenie cross-connectu w centrum danych i wkładki optyczne po obu stronach. Dalej jak zwykle: sesja BGP na łączu.

Zalety. Najniższe opóźnienia, pełna przepustowość portu i najstabilniejsze działanie usługi. Żadnych tuneli, żadnego MTU do pilnowania, możliwe ramki jumbo. Dla ruchu liczonego w dziesiątkach i setkach gigabitów to jedyne rozsądne rozwiązanie.

Ograniczenia. Trzeba być w tym samym centrum danych. Zlecenie i montaż w DC trwają zwykle kilka dni, a centrum danych nalicza za cross-connect opłatę.

Porty i kable w szafie telekomunikacyjnejCross-connect kończy się na porcie w szafie: kabel między dwiema szafami w tym samym obiekcie zamiast tunelu przez internet.

Wykres słupkowy: z 1500 bajtów pakietu przy cross-connecie i VLAN-ie zostaje 1500 bajtów danych, przy GRE 1476 bajtów, a przy WireGuardzie 1420 bajtówWykres słupkowy: z 1500 bajtów pakietu przy cross-connecie i VLAN-ie zostaje 1500 bajtów danych, przy GRE 1476 bajtów, a przy WireGuardzie 1420 bajtówIle z 1500 bajtów zostaje na dane. Tunele zabierają 24 albo 60 bajtów z każdego pakietu, dlatego wymagają ustawienia MTU i MSS.

Porównanie

Tunel GRE WireGuard VLAN po L2 Cross-connect
Czas zestawienia Godziny Godziny Dni lub tygodnie Dni (zlecenie w DC)
Co potrzebujesz Publiczny IP i router z GRE Serwer lub router z WireGuardem Operatora z zasięgiem w obu miejscach albo wspólny IX Sprzęt w tym samym centrum danych
Narzut na pakiet 24 B, MTU 1476 60 B, MTU 1420 0 B w IP, MTU 1500 0 B, MTU 1500 lub jumbo
Szyfrowanie Nie Tak Nie (łącze dedykowane) Nie (łącze dedykowane)
Opóźnienia Zależne od trasy w internecie Zależne od trasy w internecie Stałe, niskie Najniższe
Obciążenie routera Enkapsulacja Enkapsulacja i szyfrowanie Brak Brak
Dla kogo Szybki start, wdrożenia awaryjne Hosting, serwery gier Operatorzy ISP, większy ruch Duży ruch, sprzęt w DC

Ruch symetryczny i asymetryczny

Ruch do Twoich adresów zawsze wchodzi przez sieć SkyPass, bo to my rozgłaszamy prefiksy. Ruch wychodzący możesz poprowadzić dwojako:

  • symetrycznie, czyli z powrotem przez tunel, VLAN albo cross-connect do naszej sieci i dalej do internetu,
  • asymetrycznie, czyli bezpośrednio Twoim dotychczasowym łączem, z pominięciem naszej sieci.

Wariant asymetryczny oszczędza pasmo połączenia z nami, ale filtry stanowe widzą wtedy tylko połowę każdej sesji, co ogranicza ich skuteczność i utrudnia strojenie. Dlatego zalecamy ruch symetryczny, a asymetrię traktujemy jako rozwiązanie na start albo dla szczególnych przypadków. Przy VLAN-ie i cross-connecie symetria jest naturalna: domyślna trasa biegnie po prostu przez to łącze.

Dwa schematy. Ruch symetryczny: do klienta i od klienta przez sieć SkyPass. Ruch asymetryczny: do klienta przez SkyPass, a odpowiedzi własnym łączem operatora klienta z pominięciem SkyPassDwa schematy. Ruch symetryczny: do klienta i od klienta przez sieć SkyPass. Ruch asymetryczny: do klienta przez SkyPass, a odpowiedzi własnym łączem operatora klienta z pominięciem SkyPassSymetria ruchu. Przy ruchu asymetrycznym filtry widzą tylko połowę każdej sesji.

Niezależnie od wariantu pamiętaj o MTU i MSS. Większość dziwnych problemów po uruchomieniu tunelu (część stron się ładuje, część nie; SSH działa, a pobieranie plików staje) to źle ustawione MTU.

Jak wybrać

  • Potrzebujesz ochrony dziś albo nie masz jeszcze żadnej infrastruktury pod nią: tunel GRE.
  • Chcesz szyfrowania albo łączysz pojedynczy serwer z Linuksem: WireGuard.
  • Jesteś operatorem z dostępem do usług L2 i ruchem, który nie zmieści się w tunelu: VLAN po L2.
  • Masz sprzęt w jednym z centrów danych w Warszawie lub we Wrocławiu albo ruch liczony w dziesiątkach gigabitów: cross-connect.

Te sposoby można łączyć i zmieniać w czasie. Typowa droga wygląda tak: start na tunelu GRE w kilka godzin, potem przejście na VLAN albo cross-connect, a tunel zostaje jako łącze zapasowe.

Najczęstsze pytania

Czy muszę mieć własny AS i własne prefiksy? Nie. Jeśli je masz, rozgłaszamy je z AS202520 i uruchamiamy sesję BGP. Jeśli nie, dostaniesz od nas adresy IPv4 i podłączysz się tunelem.

Czy mogę mieć dwa sposoby podłączenia naraz? Tak, to zalecana konfiguracja dla usług, które nie mogą stanąć: na przykład cross-connect jako łącze główne i tunel GRE jako zapasowe, z sesjami BGP na obu.

Jakie MTU ustawić? GRE: 1476 na interfejsie tunelu i MSS 1436 dla TCP. WireGuard: 1420 i MSS 1380. VLAN i cross-connect: 1500 albo więcej, jeśli obie strony wspierają ramki jumbo.

Czy tunel spowalnia ruch? Dodaje narzut na pakiet i, przy dużej liczbie pakietów na sekundę, obciążenie routera. Opóźnienie zależy głównie od trasy w internecie między Twoim łączem a naszą siecią. Jeśli opóźnienia są krytyczne, wybierz VLAN albo cross-connect.

Nie wiesz, który wariant pasuje do Twojej sieci? Opisz nam swoją topologię. Przygotujemy architekturę z tunelami, rozgłaszaniem BGP albo cross-connectem, zależnie od tego, co masz i czego potrzebujesz.

Kontakt

Porozmawiajmy o Twojej infrastrukturze

Opisz, co chronisz lub utrzymujesz, a zaproponujemy wariant usługi i sposób podłączenia.

Po wysłaniu formularza wracamy do Ciebie z pytaniami o szczegóły albo z propozycją kolejnego kroku: rozmowy, testów lub oferty.