Μετάβαση στο περιεχόμενο
Networks

Blog

Tunnels GRE για IPv4: πότε χρειάζεστε ένα και πώς να το ρυθμίσετε

Τελευταία ενημέρωση RTM NetworksΜετάφραση από τα αγγλικά. Διαβάστε το πρωτότυπο

Ένα tunnel σας επιτρέπει να χρησιμοποιείτε διευθύνσεις IPv4 σε διακομιστή που αλλιώς δεν θα μπορούσε να τις φέρει. Το μπλοκ ανακοινώνεται από ένα δίκτυο που μπορεί να το ανακοινώσει, και το tunnel μεταφέρει την κίνησή του στον διακομιστή σας και πίσω. Είναι η λύση όταν ο πάροχός σας δεν προσφέρει bring your own IP (BYOIP), όταν δεν έχετε αριθμό AS, ή όταν χρειάζεστε λιγότερες από τις 256 διευθύνσεις που το διαδίκτυο δρομολογεί αυτοτελώς.

Τι κάνει στην πράξη το tunnel

Τα πακέτα για το μπλοκ σας φτάνουν στο δίκτυο που το ανακοινώνει. Εκεί κάθε πακέτο τυλίγεται σε ένα νέο, με διεύθυνση προορισμού τον διακομιστή σας, και στέλνεται μέσω του συνηθισμένου διαδικτύου. Ο διακομιστής σας το ξετυλίγει και βλέπει το αρχικό πακέτο, σαν οι διευθύνσεις να ήταν ρυθμισμένες σε τοπική διεπαφή.

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

Οι απαντήσεις ακολουθούν την ίδια διαδρομή αντίστροφα: ο διακομιστής σας τις τυλίγει, τις στέλνει στην άλλη άκρη του tunnel, και εκείνο το δίκτυο τις παραδίδει. Αυτή η διαδρομή επιστροφής είναι το βήμα που οι περισσότερες ρυθμίσεις κάνουν λάθος, και η παρακάτω ρύθμιση δείχνει γιατί.

Πότε ένα tunnel είναι καλύτερο από το BYOIP

Το BYOIP επιτρέπει σε έναν πάροχο cloud ή φιλοξενίας να ανακοινώνει το μπλοκ σας από το δικό του δίκτυο (ποιοι πάροχοι το κάνουν). Όπου είναι διαθέσιμο και έχετε τουλάχιστον ένα /24, είναι η πιο καθαρή επιλογή: χωρίς επιπλέον hop, χωρίς επιπλέον σημείο αποτυχίας, και με το πλήρες εύρος ζώνης του παρόχου. Ένα tunnel είναι η καλύτερη επιλογή σε τέσσερις περιπτώσεις.

  • Ο πάροχός σας δεν προσφέρει BYOIP. Η Scaleway, για παράδειγμα, το λέει ξεκάθαρα στην τεκμηρίωσή της, και αρκετοί άλλοι το δέχονται μόνο κατόπιν αιτήματος, για ορισμένα από τα προϊόντα τους, όπως η Infomaniak, η TransIP και η UpCloud. Άλλοι, μεταξύ αυτών η Contabo, η Exoscale, η Hostinger και το Akamai Cloud, δεν δημοσιεύουν καμία διαδικασία.
  • Χρειάζεστε λιγότερες από 256 διευθύνσεις. Ένα /24 είναι το μικρότερο μπλοκ που δέχονται τα δίκτυα στους πίνακες δρομολόγησής τους, και το BYOIP κανενός παρόχου δεν πηγαίνει κάτω από αυτό. Ένα tunnel μπορεί να παραδώσει ένα /29 ή μία μόνο διεύθυνση.
  • Δεν έχετε ASN, και ο πάροχος θέλει ένα. Ορισμένοι πάροχοι δέχονται τον χώρο σας μόνο μέσω συνεδρίας BGP με δικό σας αριθμό AS. Ένα tunnel δεν χρειάζεται τίποτα από τα δύο.
  • Θέλετε τις ίδιες διευθύνσεις σε πολλά σημεία, ή ελευθερία μετακίνησης. Η ανακοίνωση μένει εκεί που είναι. Το tunnel πηγαίνει όπου πηγαίνει ο διακομιστής σας.

Το τίμημα είναι μια παράκαμψη. Η κίνηση ταξιδεύει στην άλλη άκρη του tunnel πριν φτάσει σε εσάς, οπότε επιλέξτε ένα endpoint κοντά στον διακομιστή σας, και θυμηθείτε ότι το ανώτατο όριο το θέτει η χωρητικότητα του tunnel, όχι η θύρα του διακομιστή σας.

GRE ή WireGuard

Και τα δύο μεταφέρουν την ίδια κίνηση. Διαφέρουν στο τι χρειάζεται η διαδρομή μεταξύ των δύο άκρων.

GREWireGuard
ΚρυπτογράφησηΚαμίαΝαι
Επιβάρυνση σε IPv424 byte60 byte
Πίσω από NAT ή CGNATΔεν λειτουργεί αξιόπισταΛειτουργεί
ΥποστήριξηΟι περισσότεροι routers και ο πυρήνας LinuxΟ πυρήνας Linux, FreeBSD, OpenBSD, MikroTik RouterOS 7, OpenWrt και EdgeOS. Ελέγξτε την τεκμηρίωση του κατασκευαστή σας πριν βασιστείτε σε αυτό σε carrier router
Ιδανικό ότανΗ διαδρομή είναι αξιόπιστη και η απόδοση μετρά περισσότεροΗ κίνηση διασχίζει δίκτυα που δεν ελέγχετε, ή το endpoint δεν έχει δημόσια διεύθυνση

Η λίστα πλατφορμών του ίδιου του WireGuard και η τεκμηρίωση RouterOS της MikroTik αναφέρουν πού λειτουργεί (έλεγχος στις 22 Οκτωβρίου 2026).

Αν το endpoint σας βρίσκεται πίσω από NAT, η επιλογή έχει γίνει ήδη: WireGuard. Το ίδιο ισχύει για το Azure, που μπλοκάρει το GRE στα εικονικά του δίκτυα.

MTU και MSS: η κλασική αποτυχία

Η ενθυλάκωση προσθέτει headers, οπότε το μεγαλύτερο πακέτο που χωρά μέσα στο tunnel είναι μικρότερο από τα 1 500 byte μιας απλής σύνδεσης Ethernet: 1 476 byte για GRE πάνω από IPv4, ενώ το WireGuard λειτουργεί συνήθως στα 1 420. Αν το κάνετε λάθος, βλέπετε το κλασικό σύμπτωμα: τα μικρά αιτήματα λειτουργούν, ενώ οι μεγάλες λήψεις και τα TLS handshakes κολλάνε, επειδή τα πακέτα που δεν χωρούν απορρίπτονται και τα μηνύματα που θα έπρεπε να το αναφέρουν συχνά φιλτράρονται στη διαδρομή.

Δύο ρυθμίσεις το αποτρέπουν. Ορίστε το MTU της διεπαφής του tunnel στη σωστή τιμή, και περιορίστε (clamp) το μέγιστο μέγεθος τμήματος TCP (MSS) στην κίνηση που δρομολογείτε μέσω του tunnel, ώστε και τα δύο άκρα να στέλνουν πακέτα που χωρούν. Στέλνουμε και τις δύο τιμές με κάθε tunnel, και τις αλλάζουμε κατόπιν αιτήματος.

Μια ελάχιστη ρύθμιση σε Linux

Το παρακάτω παράδειγμα φέρνει ένα μπλοκ σε έναν διακομιστή Linux μέσω GRE. Οι διευθύνσεις είναι εύρη τεκμηρίωσης: 203.0.113.1 είναι η δημόσια διεύθυνση του διακομιστή σας, 198.51.100.1 η άλλη άκρη του tunnel και 192.0.2.0/24 το μπλοκ.

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

Το βήμα 3 είναι αυτό που ξεχνούν οι περισσότεροι. Χωρίς αυτό, οι απαντήσεις από το 192.0.2.10 φεύγουν από το uplink του ίδιου του παρόχου σας, με διεύθυνση προέλευσης που ο πάροχος δεν σας έδωσε ποτέ, και τα φίλτρα anti-spoofing του τις απορρίπτουν. Αν η διανομή σας ενεργοποιεί αυστηρό reverse-path filtering, ορίστε το σε loose και για το tunnel (sysctl -w net.ipv4.conf.gre1.rp_filter=2).

Αν ο διακομιστής δρομολογεί το μπλοκ περαιτέρω σε εικονικές μηχανές ή containers, περιορίστε το MSS στην κίνηση που προωθεί:

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

BGP μέσω του tunnel

Αν έχετε δικό σας αριθμό AS και θέλετε να ελέγχετε μόνοι σας την ανακοίνωση, μπορείτε να λειτουργήσετε συνεδρία BGP μέσω του tunnel αντί για στατική διαδρομή, με BIRD, FRR ή τον daemon του router σας. Οι περισσότεροι πελάτες δεν το χρειάζονται και επιλέγουν τη στατική ρύθμιση. Αν ανακοινώνετε από δικό σας ASN, το ROA πρέπει να αναφέρει αυτό το ASN (RPKI και ROA).

Πού ταιριάζει η RTM Networks

Ανακοινώνουμε το μπλοκ και το παραδίδουμε στον διακομιστή σας μέσω GRE ή WireGuard, όπου κι αν βρίσκεται ο διακομιστής. Αυτό λειτουργεί εκεί όπου το BYOIP δεν λειτουργεί, και για λιγότερες από 256 διευθύνσεις και για παρόχους που δεν δέχονται καθόλου τον χώρο σας. Πείτε μας πού βρίσκεται ο διακομιστής και τι λειτουργεί σε αυτόν, και θα σας προτείνουμε GRE ή WireGuard και θα σας στείλουμε τη ρύθμιση με τις σωστές τιμές MTU και MSS (tunnels GRE και WireGuard).

Επικοινωνία

Χρειάζεστε συμβουλή για τη δική σας περίπτωση;

Αυτό το άρθρο είναι γενικό· το δίκτυό σας δεν είναι. Πείτε μας με τι δουλεύετε και θα το εξετάσουμε σωστά. Συνήθως απαντάμε εντός 1-3 εργάσιμων ωρών.

Επικοινωνήστε μαζί μας