Blog
Tunely GRE pre IPv4: kedy ich potrebujete a ako ich nastaviť
Tunel vám umožní používať adresy IPv4 na serveri, ktorý by ich inak niesť nemohol. Blok oznamuje sieť, ktorá ho oznamovať môže, a tunel prenáša jeho prevádzku na váš server a späť. Je to riešenie, keď váš poskytovateľ neponúka bring your own IP (BYOIP), keď nemáte číslo AS alebo keď potrebujete menej ako 256 adries, ktoré internet smeruje samostatne.
Čo tunel v skutočnosti robí
Pakety pre váš blok prichádzajú do siete, ktorá ho oznamuje. Tam sa každý paket zabalí do nového, adresovaného vášmu serveru, a pošle sa cez bežný internet. Váš server ho rozbalí a vidí pôvodný paket, akoby boli adresy nastavené na lokálnom rozhraní.
Original packet: [IP header | data]
GRE packet: [outer IP | GRE header | IP header | data]Odpovede idú tou istou cestou opačne: váš server ich zabalí, pošle na druhý koniec tunela a tá sieť ich doručí. Táto spätná cesta je krok, ktorý väčšina nastavení pokazí, a konfigurácia nižšie ukazuje prečo.
Kedy tunel prekoná BYOIP
BYOIP umožňuje cloudovému alebo hostingovému poskytovateľovi oznamovať váš blok z jeho vlastnej siete (ktorí poskytovatelia to robia). Kde je k dispozícii a máte aspoň /24, je to čistejšia možnosť: žiadny skok navyše, žiadny ďalší bod zlyhania a plná šírka pásma poskytovateľa. Tunel je lepšia voľba v štyroch prípadoch.
- Váš poskytovateľ neponúka BYOIP. Napríklad Scaleway to vo svojej dokumentácii hovorí jasne a viacerí ďalší ho prijímajú iba na požiadanie, pre niektoré svoje produkty, napríklad Infomaniak, TransIP a UpCloud. Iní, medzi nimi Contabo, Exoscale, Hostinger a Akamai Cloud, nezverejňujú vôbec žiadny postup.
- Potrebujete menej ako 256 adries. /24 je najmenší blok, ktorý siete prijímajú do svojich smerovacích tabuliek, a BYOIP žiadneho poskytovateľa pod neho nejde. Tunel môže doručiť /29 alebo jedinú adresu.
- Nemáte ASN a poskytovateľ ho chce. Niektorí poskytovatelia prijímajú váš priestor iba cez reláciu BGP s vaším vlastným číslom AS. Tunel nepotrebuje ani jedno.
- Chcete rovnaké adresy na viacerých miestach alebo slobodu presunu. Oznámenie zostáva tam, kde je; tunel ide všade, kam ide váš server.
Cenou je okľuka. Prevádzka putuje na druhý koniec tunela skôr, než sa dostane k vám, preto si vyberte koncový bod blízko vášho servera a pamätajte, že strop určuje kapacita tunela, nie port vášho servera.
GRE alebo WireGuard
Oba prenášajú rovnakú prevádzku; líšia sa tým, čo potrebuje cesta medzi oboma koncami.
| GRE | WireGuard | |
|---|---|---|
| Šifrovanie | Žiadne | Áno |
| Réžia na IPv4 | 24 bajtov | 60 bajtov |
| Za NAT alebo CGNAT | Nefunguje spoľahlivo | Funguje |
| Podpora | Väčšina routerov a jadro Linuxu | Jadro Linuxu, FreeBSD, OpenBSD, MikroTik RouterOS 7, OpenWrt a EdgeOS; skôr než s ním počítate na operátorskom routeri, overte si dokumentáciu výrobcu |
| Najlepší, keď | Cesta je dôveryhodná a najviac záleží na priepustnosti | Prevádzka prechádza sieťami, ktoré nekontrolujete, alebo koncový bod nemá verejnú adresu |
Vlastný zoznam platforiem WireGuard a dokumentácia RouterOS od MikroTiku uvádzajú, kde beží (overené 22. októbra 2026).
Ak je váš koncový bod za NAT, voľba je za vás urobená: WireGuard. To isté platí pre Azure, ktorý vo svojich virtuálnych sieťach blokuje GRE.
MTU a MSS: klasická chyba
Zapuzdrenie pridáva hlavičky, takže najväčší paket, ktorý sa do tunela zmestí, je menší ako 1 500 bajtov obyčajnej linky Ethernet: 1 476 bajtov pre GRE cez IPv4 a WireGuard bežne beží pri 1 420. Ak to nastavíte zle, uvidíte klasický príznak: malé požiadavky fungujú, kým veľké sťahovania a handshaky TLS visia, pretože pakety, ktoré sa nezmestia, sa zahodia a správy, ktoré by to mali ohlásiť, sú cestou často odfiltrované.
Predídu tomu dve nastavenia. Nastavte MTU rozhrania tunela na správnu hodnotu a obmedzte maximálnu veľkosť segmentu TCP (MSS) na prevádzke, ktorú smerujete cez tunel, aby sa oba konce dohodli posielať pakety, ktoré sa zmestia. Obe hodnoty posielame s každým tunelom a na požiadanie ich zmeníme.
Minimálne nastavenie v Linuxe
Príklad nižšie prinesie blok na jeden server s Linuxom cez GRE. Adresy sú dokumentačné rozsahy: 203.0.113.1 je verejná adresa vášho servera, 198.51.100.1 druhý koniec tunela a 192.0.2.0/24 blok.
# 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 100Krok 3 je ten, na ktorý ľudia zabúdajú. Bez neho odpovede z 192.0.2.10 odchádzajú cez vlastnú linku vášho poskytovateľa so zdrojovou adresou, ktorú vám poskytovateľ nikdy nedal, a jeho filtre proti spoofingu ich zahodia. Ak vaša distribúcia zapína prísne filtrovanie spätnej cesty, nastavte ho pre tunel na voľné (sysctl -w net.ipv4.conf.gre1.rp_filter=2).
Ak server smeruje blok ďalej na virtuálne stroje alebo kontajnery, obmedzte MSS na prevádzke, ktorú preposiela:
iptables -t mangle -A FORWARD -o gre1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtuBGP cez tunel
Ak máte vlastné číslo AS a chcete oznámenie riadiť sami, môžete cez tunel namiesto statickej trasy prevádzkovať reláciu BGP, s BIRD, FRR alebo vlastným démonom vášho routera. Väčšina zákazníkov to nepotrebuje a volí statické nastavenie. Ak oznamujete z vlastného ASN, ROA musí uvádzať toto ASN (RPKI a ROA).
Kde pomôže RTM Networks
Blok oznamujeme a doručíme ho na váš server cez GRE alebo WireGuard, nech je server kdekoľvek. Funguje to tam, kde BYOIP nie, aj pre menej ako 256 adries a pre poskytovateľov, ktorí váš priestor vôbec neprijímajú. Povedzte nám, kde je server a čo na ňom beží, a odporučíme GRE alebo WireGuard a pošleme konfiguráciu so správnymi hodnotami MTU a MSS (tunely GRE a WireGuard).
Kontakt
Potrebujete radu k vlastnej situácii?
Tento článok je všeobecný; vaša sieť nie. Napíšte nám, s čím pracujete, a poriadne sa na to pozrieme. Zvyčajne odpovieme do 1 až 3 pracovných hodín.



