Preskoči na sadržaj
Networks

Blog

GRE tuneli za IPv4: kada Vam trebaju i kako da ih podesite

Poslednja izmena RTM NetworksPrevedeno sa engleskog. Pročitajte original

Tunel Vam omogućava da koristite IPv4 adrese na serveru koji ih inače ne bi mogao da nosi. Blok najavljuje mreža koja to može, a tunel prenosi njegov saobraćaj do Vašeg servera i nazad. To je rešenje kada Vaš provajder ne nudi bring your own IP (BYOIP), kada nemate AS broj ili kada Vam treba manje od 256 adresa koje internet rutira samostalno.

Šta tunel zapravo radi

Paketi za Vaš blok stižu do mreže koja ga najavljuje. Tamo se svaki paket umotava u novi, adresiran na Vaš server, i šalje preko običnog interneta. Vaš server ga odmotava i vidi originalni paket, kao da su adrese podešene na lokalnom interfejsu.

Text
Original packet:  [IP header | data]
GRE packet:       [outer IP | GRE header | IP header | data]

Odgovori idu istim putem u suprotnom smeru: Vaš server ih umotava, šalje na drugi kraj tunela, a ta mreža ih isporučuje. Taj povratni put je korak koji većina postavki pogreši, a konfiguracija ispod pokazuje zašto.

Kada je tunel bolji od BYOIP-a

BYOIP omogućava cloud ili hosting provajderu da Vaš blok najavljuje iz sopstvene mreže (koji provajderi to rade). Gde je dostupan i imate bar /24, to je čistija opcija: nema dodatnog skoka, nema dodatne tačke otkaza, a imate pun protok provajdera. Tunel je bolji izbor u četiri slučaja.

  • Vaš provajder ne nudi BYOIP. Scaleway, na primer, to jasno kaže u svojoj dokumentaciji, a nekoliko drugih ga prima samo na zahtev, za neke svoje proizvode, kao što su Infomaniak, TransIP i UpCloud. Drugi, među njima Contabo, Exoscale, Hostinger i Akamai Cloud, ne objavljuju nikakav postupak.
  • Treba Vam manje od 256 adresa. /24 je najmanji blok koji mreže prihvataju u tabelama rutiranja, i BYOIP nijednog provajdera ne ide ispod toga. Tunel može da isporuči /29 ili jednu adresu.
  • Nemate ASN, a provajder ga traži. Neki provajderi primaju Vaš prostor samo preko BGP sesije sa Vašim sopstvenim AS brojem. Tunelu ne treba ni jedno ni drugo.
  • Želite iste adrese na više mesta, ili slobodu da se selite. Najava ostaje gde jeste; tunel ide gde god ide Vaš server.

Cena je zaobilazni put. Saobraćaj putuje do drugog kraja tunela pre nego što stigne do Vas, pa izaberite krajnju tačku blizu servera, i imajte na umu da gornju granicu postavlja kapacitet tunela, a ne port Vašeg servera.

GRE ili WireGuard

Oba prenose isti saobraćaj; razlikuju se po tome šta je potrebno putanji između dva kraja.

GREWireGuard
EnkripcijaNemaDa
Overhead na IPv424 bajta60 bajtova
Iza NAT-a ili CGNAT-aNe radi pouzdanoRadi
PodrškaVećina rutera i Linux kernelLinux kernel, FreeBSD, OpenBSD, MikroTik RouterOS 7, OpenWrt i EdgeOS; proverite dokumentaciju proizvođača pre nego što na njega računate na carrier ruteru
Najbolji kadaPutanja je pouzdana i protok je najvažnijiSaobraćaj prelazi mreže koje ne kontrolišete, ili krajnja tačka nema javnu adresu

WireGuard-ova lista platformi i MikroTik-ova RouterOS dokumentacija navode gde radi (provereno 22. oktobra 2026).

Ako je Vaša krajnja tačka iza NAT-a, izbor je već napravljen: WireGuard. Isto važi za Azure, koji blokira GRE u svojim virtuelnim mrežama.

MTU i MSS: klasičan kvar

Enkapsulacija dodaje zaglavlja, pa je najveći paket koji staje u tunel manji od 1.500 bajtova obične Ethernet veze: 1.476 bajtova za GRE preko IPv4, a WireGuard obično radi na 1.420. Ako to pogrešite, vidite klasičan simptom: mali zahtevi rade, a veliki prenosi i TLS rukovanja (handshake) zastaju, jer se paketi koji ne staju odbacuju, a poruke koje bi to trebalo da prijave često se usput filtriraju.

Dva podešavanja to sprečavaju. Postavite MTU tunel interfejsa na pravu vrednost i ograničite (clamp) TCP maximum segment size (MSS) na saobraćaju koji rutirate kroz tunel, tako da se oba kraja slože da šalju pakete koji staju. Obe vrednosti šaljemo uz svaki tunel i menjamo ih na zahtev.

Minimalna Linux postavka

Primer ispod donosi blok na jedan Linux server preko GRE-a. Adrese su dokumentacioni opsezi: 203.0.113.1 je javna adresa Vašeg servera, 198.51.100.1 drugi kraj tunela, a 192.0.2.0/24 blok.

Shell
# 1. The tunnel, from your server to the far end
ip tunnel add gre1 mode gre local 203.0.113.1 remote 198.51.100.1 ttl 255
ip link set gre1 mtu 1476 up
ip addr add 10.0.0.2/30 dev gre1

# 2. An address from the block on the server itself
ip addr add 192.0.2.10/32 dev lo

# 3. Replies from the block go back through the tunnel
ip rule add from 192.0.2.0/24 lookup 100
ip route add default via 10.0.0.1 dev gre1 table 100

Korak 3 je onaj koji ljudi preskoče. Bez njega odgovori sa 192.0.2.10 izlaze preko provajderovog sopstvenog uplink-a, sa izvornom adresom koju Vam taj provajder nikada nije dao, i njegovi anti-spoofing filteri ih odbacuju. Ako Vaša distribucija uključuje strogo reverse-path filtriranje, i za tunel ga postavite na labavo (sysctl -w net.ipv4.conf.gre1.rp_filter=2).

Ako server dalje rutira blok do virtuelnih mašina ili kontejnera, ograničite MSS na saobraćaju koji prosleđuje:

Shell
iptables -t mangle -A FORWARD -o gre1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

BGP preko tunela

Ako imate sopstveni AS broj i želite sami da kontrolišete najavu, preko tunela umesto statičke rute možete pokrenuti BGP sesiju, sa BIRD-om, FRR-om ili sopstvenim daemon-om Vašeg rutera. Većini klijenata to ne treba i uzimaju statičku postavku. Ako najavljujete sa sopstvenog ASN-a, ROA mora da navede taj ASN (RPKI i ROA).

Gde se uklapa RTM Networks

Najavljujemo blok i isporučujemo ga do Vašeg servera preko GRE ili WireGuard tunela, gde god da je server. To radi tamo gde BYOIP ne radi, uključujući i manje od 256 adresa i provajdere koji Vaš prostor uopšte ne primaju. Recite nam gde je server i šta na njemu radi, i preporučićemo GRE ili WireGuard i poslati konfiguraciju sa pravim vrednostima za MTU i MSS (GRE i WireGuard tuneli).

Kontakt

Potreban Vam je savet za Vašu situaciju?

Ovaj članak je opšti; Vaša mreža nije. Recite nam sa čime radite i pažljivo ćemo to pogledati. Obično odgovaramo u roku od 1 do 3 radna sata.

Kontaktirajte nas