BLOG

Γιατί το NAT δεν αποτελεί πανάκεια για τις IPv4 διευθύνσεις;

Σε προηγούμενο άρθρο, αναφερθήκαμε στο IPv10, ένα όχι και τόσο κακόγουστο αστείο, ανοίγοντας μια συζήτηση για το αν επαρκούν οι μηχανισμοί tunnel ανάμεσα στις IPv4 και IPv6 εκδόσεις του πρωτοκόλλου IP, ή ένα νέο RFC χρειάζεται για να καλύψει τα κενά.

Γιατί να υπάρχουν όμως ήδη δύο εκδόσεις IP και όχι μια;

Είναι γνωστό τώρα πια, ότι η IPv6 ήρθε για να καλύψει την ανεπάρκεια της IPv4. Ανεπάρκεια όχι προς την λειτουργικότητα, αλλά στο πλήθος των hosts που μπορεί να εξυπηρετήσει.

Το μέγιστο πλήθος διευθύνσεων IPv4 που μπορεί να υπάρξουν είναι 4,294,967,296 (232bit), την ώρα που ο παγκόσμιος πληθυσμός είναι περισσότερο από 7,5 δισεκατομμύρια. Εντάξει, δεν είναι και όλοι χρήστες του διαδικτύου, αλλά μέσα στο 2020, ο αριθμός θα ξεπεράσει τα 4,5 δισεκατομμύρια.

Ο αριθμός των χρηστών του Internet παγκοσμίως, από το 2005 μέχρι το 2019. Πηγή: statista

Ο αριθμός αυτός πολλαπλασιάζεται όταν προσθέσουμε τις επιπλέον συσκευές (υπολογιστές, κινητά, εκτυπωτές κ.α.) που συνδέει ο κάθε χρήστης. Και αν αναλογιστούμε ότι βρισκόμαστε στις παρυφές του IoT (Internet of Things), όπου συνδέονται στο internet λάμπες, θερμοστάτες, αισθητήρια συναγερμών, οχήματα, κολάρα κατοικίδιων και κανείς δεν φαντάζεται τι άλλο, ο αριθμός γιγαντώνεται.

Στο τέλος του 2018 ο αριθμός των συσκευών που συνδέονται στο διαδίκτυο, υπολογιζόταν σε περίπου 22 δισεκατομμύρια, ενώ αναμένεται μέχρι το 2030 να ξεπεράσει τα 50 δισεκατομμύρια.

Βέβαια ο αριθμός 4,294,967,296 δεν ισχύει καν, γιατί σύμφωνα με το πατέρα του IP, Vint Cerf, το μέγεθος των 32 bit (βλ. σχετικό video), επιλέχθηκε αυθαίρετα, αδυνατώντας να οραματιστεί την σημερινή μορφή του διαδικτύου, με σκοπό οι συσκευές να έχουν μοναδικές διευθύνσεις και η επικοινωνία να είναι end-to-end ανάμεσα στην source και την destination IP διεύθυνση.

Από τον παραπάνω αριθμό πρέπει να αφαιρέσουμε και 268,435,456 που δεν μπορούν να χρησιμοποιηθούν από τους hosts, καθώς είναι για ειδικούς σκοπούς σύμφωνα με την IANA (Internet Assigned Numbers Authority).

Μια βελτίωση που υιοθετήθηκε είναι η χρήση των CIDR (Classless Inter-Domain Routing) διευθύνσεων IP περιορίζοντας την σπατάλη αφού οι classful διευθύνσεις επιτρέπουν μόνο δίκτυα μεγέθους 16,777,216, 65,536, και 256 hosts.

Η σημαντικότερη βέβαια βελτίωση είναι το NAT (Network Address Translation), το οποίο αντικαθιστά την μια και μοναδική διεύθυνση με την οποία συνδέεται ένα εσωτερικό δίκτυο στο διαδίκτυο, σε πολλές εσωτερικές διευθύνσεις.

Γιατί όμως το NAT δεν είναι πανάκεια;

Η μετάφραση της public IP σε εσωτερική, απαιτεί πόρους από την συσκευή που κάνει το NAT γιατί κατά την μετάφραση ξανά-υπολογίζονται τα πεδία στο IPv4 Header καθώς επίσης ενημερώνεται και ένα translation table. Το NAPT (Network Address Port Translation) στο οποίο πραγματικά αναφερόμαστε όταν λέμε NAT πάει ένα βήμα παραπέρα, μεταφράζοντας τις transport layer διευθύνσεις, αυξάνοντας περεταίρω τις απαιτήσεις για πόρους. Οι πόροι αυτοί χρησιμοποιούνται μειώνοντας αυτούς που είναι διαθέσιμοι για το packet forwarding, μειώνοντας έτσι την ταχύτητα. Επίσης σπάει η end-to-end επικοινωνία που αναφέραμε παραπάνω.

Κάποιοι ISPs στην προσπάθεια να αντιμετωπίσουν το πρόβλημα, κάνουν NAPT δημιουργώντας έτσι δύο μεταφράσεις, μια του ISP και μια του Router του πελάτη τους, κάνοντας αδύνατο το port forwarding που πιθανόν έχουν ρυθμιστεί στον Router του πελάτη.

Επίσης κάποιοι μπορεί να μπερδευτούν και εσφαλμένα να πιστέψουν πως λόγω του NAPT είναι ασφαλείς και να μην χρησιμοποιούν την πραγματική ασφάλεια, που είναι το firewall.

Η λύση λοιπόν είναι η IPv6 έκδοση.

Η έκδοση αυτή χρησιμοποιεί 128-bit διευθύνσεις που σημαίνει 340,282,366,920,938,463,463,374,607,431,768,211,456 μοναδικές IP Addresses, επαναφέροντας το αρχικό end-to-end concept.

Κλείνοντας αξίζει να απαντήσουμε και στο γιατί δεν έχει ακόμα γίνει η μετάβαση, παρά μόνο το 20% σύμφωνα με την Google χρησιμοποιεί τις IPv6 διευθύνσεις.

Η απάντηση είναι απλή. Όλα είναι θέμα βολέματος και φόβου για το καινούργιο.