Blogi
GRE-tunnelid IPv4 jaoks: millal neid vajate ja kuidas seadistada
Tunnel laseb kasutada IPv4 aadresse serveris, mis muidu neid kanda ei saaks. Plokki kuulutab välja võrk, mis seda teha saab, ja tunnel kannab selle liikluse Teie serverisse ja tagasi. See on lahendus, kui Teie teenusepakkuja ei paku bring your own IP-d (BYOIP), kui Teil pole AS-numbrit või kui vajate vähem kui 256 aadressi, mida internet eraldi marsruudiks.
Mida tunnel tegelikult teeb
Teie ploki paketid jõuavad võrku, mis selle välja kuulutab. Seal pakitakse iga pakett uude, Teie serverile adresseeritud paketti ja saadetakse tavalise interneti kaudu. Teie server pakib selle lahti ja näeb algset paketti, nagu oleksid aadressid seadistatud kohalikule liidesele.
Original packet: [IP header | data]
GRE packet: [outer IP | GRE header | IP header | data]Vastused liiguvad sama teed tagurpidi: Teie server pakib need, saadab tunneli teise otsa ja see võrk toimetab need kohale. See tagasitee on samm, mille enamik seadistusi valesti teeb, ja allolev konfiguratsioon näitab, miks.
Millal tunnel on BYOIP-st parem
BYOIP laseb pilve- või majutusteenuse pakkujal Teie plokki oma võrgust välja kuulutada (millised pakkujad seda teevad). Kus see on saadaval ja Teil on vähemalt /24, on see puhtam valik: pole lisahüpet, pole lisarikkepunkti ja kasutate pakkuja täit ribalaiust. Tunnel on parem valik neljal juhul.
- Teie teenusepakkuja ei paku BYOIP-d. Näiteks Scaleway ütleb seda oma dokumentatsioonis otse ja mitu teist võtavad seda vastu ainult taotlusel, mõne oma toote jaoks, nagu Infomaniak, TransIP ja UpCloud. Teised, nende hulgas Contabo, Exoscale, Hostinger ja Akamai Cloud, ei avalda üldse protseduuri.
- Vajate vähem kui 256 aadressi. /24 on väikseim plokk, mida võrgud oma marsruutimistabelitesse võtavad, ja ühegi pakkuja BYOIP ei lähe sellest allapoole. Tunnel saab toimetada /29 või üksiku aadressi.
- Teil pole ASN-i ja pakkuja tahab seda. Mõni pakkuja võtab Teie ruumi vastu ainult BGP-sessiooni kaudu Teie oma AS-numbriga. Tunnel ei vaja kumbagi.
- Soovite samu aadresse mitmes kohas või vabadust kolida. Väljakuulutus jääb paigale; tunnel läheb sinna, kuhu Teie server.
Hinnaks on ringtee. Liiklus liigub enne Teieni jõudmist tunneli teise otsa, seega valige Teie serverile lähedane lõpp-punkt ja pidage meeles, et lae seab tunneli läbilaskevõime, mitte Teie serveri port.
GRE või WireGuard
Mõlemad kannavad sama liiklust; need erinevad selle poolest, mida kahe otsa vaheline tee vajab.
| GRE | WireGuard | |
|---|---|---|
| Krüpteerimine | Puudub | Jah |
| Lisakulu IPv4 puhul | 24 baiti | 60 baiti |
| NAT-i või CGNAT-i taga | Ei tööta usaldusväärselt | Töötab |
| Tugi | Enamik ruutereid ja Linuxi kernel | Linuxi kernel, FreeBSD, OpenBSD, MikroTik RouterOS 7, OpenWrt ja EdgeOS; operaatoriklassi ruuteri puhul kontrollige enne sellele lootmist tootja dokumentatsiooni |
| Parim, kui | Tee on usaldusväärne ja läbilaskevõime on kõige olulisem | Liiklus läbib võrke, mida Te ei kontrolli, või lõpp-punktil pole avalikku aadressi |
WireGuardi enda platvormide loend ja MikroTiku RouterOS-i dokumentatsioon ütlevad, kus see töötab (kontrollitud 22. oktoobril 2026).
Kui Teie lõpp-punkt on NAT-i taga, on valik Teie eest tehtud: WireGuard. Sama kehtib Azure'i kohta, mis blokeerib GRE oma virtuaalvõrkudes.
MTU ja MSS: klassikaline viga
Kapseldamine lisab päiseid, seega on suurim tunnelisse mahtuv pakett väiksem kui tavalise Etherneti lingi 1500 baiti: GRE puhul üle IPv4 1476 baiti ja WireGuard töötab tavaliselt 1420-ga. Kui see on vale, näete klassikalist sümptomit: väikesed päringud töötavad, kuid suured allalaadimised ja TLS-i kätlused jäävad rippuma, sest paketid, mis ei mahu, visatakse kõrvale ja teated, mis sellest peaksid teatama, filtreeritakse teel sageli välja.
Kaks seadistust hoiavad seda ära. Seadke tunneliliidese MTU õigeks väärtuseks ja piirake TCP maksimaalset segmendi suurust (MSS) liiklusel, mida tunneli kaudu marsruudite, et mõlemad otsad lepiksid kokku mahtuvate pakettide saatmises. Saadame mõlemad väärtused iga tunneliga ja muudame neid taotlusel.
Minimaalne Linuxi seadistus
Allolev näide toob ploki GRE kaudu ühte Linuxi serverisse. Aadressid on dokumentatsioonivahemikud: 203.0.113.1 on Teie serveri avalik aadress, 198.51.100.1 tunneli teine ots ja 192.0.2.0/24 plokk.
# 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 100Samm 3 on see, mis inimestel kahe silma vahele jääb. Ilma selleta lahkuvad vastused aadressilt 192.0.2.10 Teie pakkuja enda ühenduse kaudu, kandes lähteaadressi, mida see pakkuja Teile kunagi ei andnud, ja tema võltsimisvastased filtrid viskavad need kõrvale. Kui Teie distributsioon lülitab sisse range pöördtee filtreerimise, seadke see tunneli jaoks samuti leebeks (sysctl -w net.ipv4.conf.gre1.rp_filter=2).
Kui server marsruudib ploki edasi virtuaalmasinatele või konteineritele, piirake MSS-i liiklusel, mida see edastab:
iptables -t mangle -A FORWARD -o gre1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtuBGP tunneli kaudu
Kui Teil on oma AS-number ja soovite väljakuulutust ise kontrollida, saate staatilise marsruudi asemel käitada tunneli kaudu BGP-sessiooni, BIRD-i, FRR-i või oma ruuteri enda deemoniga. Enamik kliente seda ei vaja ja valib staatilise seadistuse. Kui kuulutate välja oma ASN-ilt, peab ROA nimetama seda ASN-i (RPKI ja ROA-d).
Kuhu RTM Networks sobib
Kuulutame ploki välja ja toimetame selle GRE või WireGuardi kaudu Teie serverisse, kus iganes server asub. See töötab seal, kus BYOIP ei tööta, sealhulgas alla 256 aadressi puhul ja pakkujate juures, kes Teie ruumi üldse vastu ei võta. Andke teada, kus server asub ja mida see käitab, ning soovitame GRE või WireGuardi ja saadame konfiguratsiooni õigete MTU ja MSS väärtustega (GRE- ja WireGuardi tunnelid).
Kontakt
Vajate nõu oma olukorra kohta?
See artikkel on üldine; Teie võrk mitte. Andke teada, millega töötate, ja vaatame selle korralikult üle. Tavaliselt vastame 1–3 töötunni jooksul.



