Blogs
GRE tuneļi IPv4: kad tie vajadzīgi un kā tos iestatīt
Tunelis ļauj izmantot IPv4 adreses serverī, kas citādi tās nevarētu nest. Bloku paziņo (announce) tīkls, kas to spēj, un tunelis nogādā tā trafiku līdz Jūsu serverim un atpakaļ. Tā ir atbilde, ja Jūsu sniedzējs nepiedāvā bring your own IP (BYOIP), ja Jums nav AS numura vai ja Jums vajag mazāk par 256 adresēm, ko internets maršrutē atsevišķi.
Ko tunelis patiesībā dara
Paketes Jūsu blokam nonāk tīklā, kas to paziņo. Tur katra pakete tiek ietīta jaunā, adresētā Jūsu serverim, un nosūtīta pa parasto internetu. Jūsu serveris to attin un redz sākotnējo paketi, it kā adreses būtu konfigurētas lokālā saskarnē.
Original packet: [IP header | data]
GRE packet: [outer IP | GRE header | IP header | data]Atbildes iet to pašu ceļu pretējā virzienā: Jūsu serveris tās ietin, nosūta uz tuneļa otru galu, un tas tīkls tās piegādā. Šis atpakaļceļš ir solis, ko lielākā daļa iestatījumu izdara nepareizi, un zemāk redzamā konfigurācija parāda, kāpēc.
Kad tunelis ir labāks par BYOIP
BYOIP ļauj mākoņa vai hostinga sniedzējam paziņot Jūsu bloku no sava tīkla (kuri sniedzēji to dara). Ja tas ir pieejams un Jums ir vismaz /24, tā ir tīrākā iespēja: nav papildu posma, nav papildu atteices punkta, un ir pieejams viss sniedzēja joslas platums. Tunelis ir labāka izvēle četros gadījumos.
- Jūsu sniedzējs nepiedāvā BYOIP. Scaleway, piemēram, to skaidri norāda savā dokumentācijā, un vairāki citi to pieņem tikai pēc pieprasījuma, dažiem saviem produktiem, piemēram, Infomaniak, TransIP un UpCloud. Citi, starp tiem Contabo, Exoscale, Hostinger un Akamai Cloud, nepublicē nekādu procedūru.
- Jums vajag mazāk par 256 adresēm. /24 ir mazākais bloks, ko tīkli pieņem savās maršrutu tabulās, un neviena sniedzēja BYOIP neiet zem tā. Tunelis var piegādāt /29 vai vienu adresi.
- Jums nav ASN, bet sniedzējs to prasa. Daži sniedzēji pieņem Jūsu telpu tikai pa BGP sesiju ar Jūsu AS numuru. Tunelim nav vajadzīgs ne viens, ne otrs.
- Jūs vēlaties tās pašas adreses vairākās vietās vai brīvību pārcelties. Paziņojums paliek, kur ir; tunelis iet līdzi Jūsu serverim.
Cena ir līkums. Trafiks dodas uz tuneļa otru galu, pirms sasniedz Jūs, tāpēc izvēlieties galapunktu tuvu savam serverim un atcerieties, ka griestus nosaka tuneļa jauda, nevis Jūsu servera ports.
GRE vai WireGuard
Abi nes to pašu trafiku; tie atšķiras ar to, kas nepieciešams ceļam starp abiem galiem.
| GRE | WireGuard | |
|---|---|---|
| Šifrēšana | Nav | Ir |
| Papildu apjoms (overhead) IPv4 | 24 baiti | 60 baiti |
| Aiz NAT vai CGNAT | Nedarbojas uzticami | Darbojas |
| Atbalsts | Lielākā daļa maršrutētāju un Linux kodols | Linux kodols, FreeBSD, OpenBSD, MikroTik RouterOS 7, OpenWrt un EdgeOS; pārbaudiet sava ražotāja dokumentāciju, pirms uz to paļaujaties operatora klases maršrutētājā |
| Labākais, kad | Ceļš ir uzticams un caurlaidspēja ir vissvarīgākā | Trafiks šķērso tīklus, ko nekontrolējat, vai galapunktam nav publiskas adreses |
WireGuard pašu platformu saraksts un MikroTik RouterOS dokumentācija norāda, kur tas darbojas (pārbaudīts 2026. gada 22. oktobrī).
Ja Jūsu galapunkts atrodas aiz NAT, izvēle ir izdarīta Jūsu vietā: WireGuard. Tas pats attiecas uz Azure, kas savos virtuālajos tīklos bloķē GRE.
MTU un MSS: klasiskā kļūme
Iekapsulēšana pievieno galvenes, tāpēc lielākā pakete, kas ietilpst tunelī, ir mazāka par parasta Ethernet savienojuma 1500 baitiem: 1476 baiti GRE pa IPv4, un WireGuard parasti darbojas ar 1420. Ja kļūdāties, redzat klasisko simptomu: mazi pieprasījumi darbojas, bet lielas lejupielādes un TLS rokasspiedieni karājas, jo paketes, kas neietilpst, tiek atmestas, un ziņojumi, kam par to būtu jāziņo, ceļā bieži tiek filtrēti.
To novērš divi iestatījumi. Iestatiet tuneļa saskarnes MTU uz pareizo vērtību un ierobežojiet TCP maksimālo segmenta izmēru (MSS) trafikam, ko maršrutējat caur tuneli, lai abi gali vienotos sūtīt paketes, kas ietilpst. Mēs nosūtām abas vērtības ar katru tuneli un pēc pieprasījuma tās mainām.
Minimāls Linux iestatījums
Zemāk redzamais piemērs nogādā bloku vienam Linux serverim pa GRE. Adreses ir dokumentācijas diapazoni: 203.0.113.1 ir Jūsu servera publiskā adrese, 198.51.100.1 tuneļa otrs gals, un 192.0.2.0/24 ir bloks.
# 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- solis ir tas, ko cilvēki palaiž garām. Bez tā atbildes no 192.0.2.10 iziet caur Jūsu sniedzēja paša augšupsaiti ar avota adresi, ko šis sniedzējs Jums nekad nav devis, un tā pretviltošanas (anti-spoofing) filtri tās atmet. Ja Jūsu distribūcija ieslēdz stingru reverse-path filtrēšanu, iestatiet to arī tunelim uz brīvu (
sysctl -w net.ipv4.conf.gre1.rp_filter=2).
Ja serveris maršrutē bloku tālāk uz virtuālajām mašīnām vai konteineriem, ierobežojiet MSS trafikam, ko tas pārsūta:
iptables -t mangle -A FORWARD -o gre1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtuBGP pa tuneli
Ja Jums ir savs AS numurs un vēlaties paši kontrolēt paziņojumu, statiska maršruta vietā varat darbināt BGP sesiju pa tuneli ar BIRD, FRR vai sava maršrutētāja dēmonu. Lielākajai daļai klientu tas nav vajadzīgs, un viņi izvēlas statisko iestatījumu. Ja paziņojat no sava ASN, ROA jānorāda šis ASN (RPKI un ROA).
Kur iederas RTM Networks
Mēs paziņojam bloku un piegādājam to Jūsu serverim pa GRE vai WireGuard, lai kur serveris atrastos. Tas darbojas tur, kur nedarbojas BYOIP, tostarp mazāk nekā 256 adresēm un sniedzējiem, kas Jūsu telpu vispār nepieņem. Pasakiet mums, kur ir serveris un kas uz tā darbojas, un mēs ieteiksim GRE vai WireGuard un nosūtīsim konfigurāciju ar pareizajām MTU un MSS vērtībām (GRE un WireGuard tuneļi).
Kontakti
Vajadzīgs padoms par Jūsu situāciju?
Šis raksts ir vispārīgs; Jūsu tīkls nav. Pastāstiet, ar ko strādājat, un mēs to rūpīgi apskatīsim. Parasti atbildam 1–3 darba stundu laikā.



