Πέμπτη 29 Δεκεμβρίου 2011

Πως μπορούμε να ξεπεράσουμε τα προβλήματα ενός NAT

Το NAΤ συνοπτικά είναι το εργαλείο το οποίο αναλαμβάνει να μετατρέψει τις τοπικές διευθύνσεις ip σε μια πραγματική διεύθυνση όπου μας έχει δώσει ο πάροχος μας, το router του σπιτιού μας έχει αυτή τη λειτουργία. (δλδ πολλοί χρήστες αποκτάνε πρόσβαση με μια διεύθυνση) Επίσης το NAT εχει και μια άλλη λειτουργία που ονομάζεται virtual server, με αυτη τη λειτουργία μπορούμε να έχουμε πολλές υπηρεσίες απο πολλά μηχανήματα στο τοπικό δίκτυο με το τίμημα όμως οτι είναι στατικές (δλδ θέλουν προρυθμηση απο το router). Εμας μας ενδιαφέρει το κομμάτι virtual server γτ αμα θέλουμε να επικοινωνήσουμε χωρίς 3ους θα πρέπει να μπορούμε να ανοίγουμε θύρες χωρίς κάποιος να μας το απαγορεύει.

H λύση το Layer 2 vpn
To router θα πρέπει να ζητάει δυναμικα από τον πάροχο νεα πραγματική διευθυνση ανάλογα με το πόσοι χρήστες είναι στο τοπικό δίκτυο (3 τοπικοι χρηστες - 3 πραγματικές διευθύνσεις)
Στη συνέχεια οι τοπικοί χρήστες θα πρέπει να συνδέονται στο WAN με layer 2 vpn παίρνοντας ο καθένας την δικιά του ip . Γιατι VPN; Το αποτέλεσμα θα είναι να έχουμε σε κάθε τοπικό χρήστη 2 διεπαφές μια για το LAN (πχ eth0) και μια για το WAN (πχ int0). Με αυτόν τον τρόπο o χρήστης θα μπορούσε να διαχειρίζεται καλύτερα τις διεπαφές του, να κελείσει το wan αφήνοντας μονο το lan ή να εφαρμόσει διαφορετικούς κανόνες firewall στις διεπαφές, περισσότερη ασφάλεια στο wan και λιγότερη στο lan. Επίσης θα μπορεί να γίνεται server όποτε το επιθυμεί χωρίς να περάσει απο έλεγχο και χωρίς να επηρεάσει 3ους.
Σε αυτό το άρθρο της wikipedia περιγράφεται η λειτουργεία ενός layer 2 vpn
http://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol

Τετάρτη 16 Νοεμβρίου 2011

Το πρόβλημα με τον ιστό

Τον τελευταίο καιρό όπως έχουμε παρατηρήσει το διαδίκτυο έχει μπει για τα καλά στις ζωές μας. Κάθε μέρα χρησιμοποιείται οχι μόνο για την ενημέρωση μας, για την ψυχαγωγία μας, ακόμη και για την επικοινωνία μας. Το διαδίκτυο έχει μέσα σε ένα πολύ σύντομο χρονικό διάστημα ύπαρξης καταφέρει να προσέλκύσει οχι μόνο νέους αλλά και μεγαλύτερα άτομα εκ των οποίων μέσα είναι μπαμπάδες,
μαμάδες μπορεί και παππούδες και γιαγιάδες άμα οι οικογένεια αποτελείται από τεχνοκράτες xD Όλοι είμαστε πραγματικά χαρούμενοι και το αγαπάμε!!!


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


Έστω λοιπόν οτι εμεις έχουμε ένα τηλέφωνο και θέλουμε να καλέσουμε ένα φιλο μας τον Αντώνη που εχει και αυτός, τι κανουμέ;;;; Μα φυσικά πληκρολογούμε τον αριθμό του, περιμενουμε λιγακι (μπορεί να είναι απασχολημένος) και μετά μας απαντάει, τοσο απλα!!!
Οι προιποθέσεις λοιπόν είναι:
  1. Εμείς να έχουμε μια συσκευή τηλεφωνου (κινητη ή σταθερη)
  2. Εμείς να έχουμε μια συνδρομή σε μια εταιρεία παροχης τηλεφώνου
  3. Ο Αντώνης να έχει και αυτός συσκευή και τηλέφωνου
  4. Να γνωρίζουμε το νούμερο του Αντώνη (το τηλεφωνικό του όνομα)
Πρέπει ακόμα να προσθέσω οτι τόσο το τηλεφωνικό δίκτυο οσο και το διαδίκτυο είναι δικτυα δεδομένων. Επίσης η τηλεφωνική κλήση είναι επώνυμη: ξέρουμε οτι παίρνοντας το συγκεκριμένο αριθμό δεν θα παρεμβεί αλλος στη γραμμή και θα μας απαντήσει μόνο ο Αντώνης!!



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



  1. Η Μαρία και ο Αντωνης έχουν συσκευές Διαδίκτυου
  2. Και οι δυο έχουν πάροχο Διαδικτύου και είναι συνδεμένοι από τον παροχό τους

Παρόλα αυτά παρότι τα έχουν όλα σωστά και είναι μέσα στο ίδιο δίκτυο δεν θα μπορέσουν να επικοινωνήσουν ποτέ εάν πρώτα δεν γραφτούν είτε σε κάποια υπηρεσία επικοινωνίας όπως Facebook ή Skype ή tweeter ή κάποιον άλλο πάροχο!!!

Το αντίστοιχο με τα τηλέφωνα θα ήταν να πάρει τόσο η Μαρία όσο και ο Αντώνης τον ίδιο αριθμό τηλεφώνου, να γίνουν συνδρομητές σε αυτόν, και όταν τον έχουν καλέσει ταυτόχρονα να μπορούν να μιλάνε ή όπως γίνεται παράλληλα στο διαδίκτυο ο ένας να αφήνει την γραμμή ανοιχτή και να περιμένει τον άλλο όπως δλδ πχ στο Facebook. Λοιπόν προσωπικά πιστεύω ότι εφόσον δεν θελουμε να ταλαιπωρούμαστε έτσι στο τηλέφωνο γιατί να τάλαιπωρουμαστε ετσι στον ιστό;

Έτσι λοιπόν γενιούνται μερικές ερωτήσεις....
  • Γιατί δεν μπορώ να επικοινωνήσω απευθείας με ένα άλλο άτομο;
  • Γιατί να είμαι αναγκασμένος να γίνω συνδρομητής σε ένα πάροχο παροχής επικοινωνίας;
  • Γιατί να πρέπει κάποιος να ελέγχει με ποιον μιλάω στο διαδίκτυο;
  • Έχουμε την τεχνολογία για κάτι τέτοιο ή οχι;
  • Τι μπορούμε να κάνουμε προκειμένου να επιτευχθεί σωστά η επικοινωνία μέσω Διαδικτύου;
Επίσης φανταστείτε πως θα ήταν το διαδίκτυο άμα μπορούσαμε να μιλήσουμε με όλους!!
Σε αυτό το σημείο θελω να απαντήσω ότι ναι την έχουμε την τεχνολογία και θα ανάπτυξω παρακάτω το τι μπορούμε να κάνουμε μπαίνοντας σε ένα πιο τεχνικό κομμάτι, οι υπόλοιπες ερωτήσεις είναι για εσάς!!

Αυτό το πρόβλημα περιγράφεται κυρίως ως το μεγάλο πρόβλημα του NAT και μπορείτε να το δείτε και από εδώ στην πιό επιστημονική του έκδοση: http://en.wikipedia.org/wiki/Network_address_translation#Drawbacks

επίσης εδώ http://www.useipv6.com/ στην παράγραφο
Why not just use Network Address Translation (NAT)?
και εδώ http://ipv6.com/articles/nat/NAT-In-Depth.htm


Πως μπορεί να επιτευχθεί απευθείας επικοινωνία;

1. Επωνυμία
Καταρχήν θα πρέπει να είμαστε επώνυμοι για να μας βρίσκουν οι άλλοι (όπως και το προσωπικό μας τηλέφωνο) δλδ. χρειαζόμαστε ένα επώνυμο όνομα. Όταν γινόμαστε συνδρομητές σε ένα πάροχο internet (ISP) όση ώρα είμαστε μέσα στο internet έχουμε ένα όνομα (domain) το οποίο κάθε τόσο αλλάζει... Μέγα λάθος!!! domain θα πρέπει κάθε χρήστης (συνδρομητής) να έχει το δικό του και ο ISP να κρατάει τα domain των πελατών του, το domain να δηλώνεται στην έναρξη της συνδρομής. Θα πρέπει λοιπόν να απαιτήσουμε από τους ISP να μας δίνουν ένα σταθερό domain.

Εδώ όμως γεννιέται ένα άλλο πρόβλημα... το domain μας, εκεί που θα μας βρίσκουν δλδ θα είναι μόνο για το σπίτι μας, εκεί που έγινε η εγκατάσταση της σύνδεσης. Άμα θέλουμε να εισέλθουμε από κάποιο διαφορετικό χώρο (πχ καφετέρια, σπίτι φίλου, αεροδρόμιο) γίνεται να μας αναγνωρίζει το διαδίκτυο με το όνομά μας?

Μα φυσικά και γίνεται αρκεί το σπίτι μας να έχει ένα μηχανισμό να γνωρίζει τη νέα μας θέση! Πως θα γίνεται αυτό;
  1. Μπαίνουμε στο διαδίκτυο πχ. από ένα αεροδρόμιο
  2. Μιλάμε με το σπίτι μας (Ναι και τα σπίτια μιλάνε...)
  3. Του λέμε "Όποιος με θέλει θα είμαι στο αεροδρόμιο"
  4. Όταν κάποιος πάει στο σπίτι μας και χτυπήσει να δει άμα είμαστε εκεί, το σπίτι του δίνει τη νέα διεύθυνση (redirect όπως λέγεται)
  5. Και αυτός που μας έψαχνε μας βρίσκει στη νέα μας θέση
2. Ανταλλαγή δεδομένων
Έστω λοιπόν ότι μας βρήκαν, πως θα ανταλλάξουμε δεδομένα; Εδώ αντιμετωπίζουμε πολλά προβλήματα εξαιτίας των λίγων διευθύνσεων (IPv4) σε όλο τον κόσμο και γιαυτό το λόγο είμαστε αναγκασμένοι να έχουμε τοπικά δίκτυα. Στα τοπικά δίκτυα πολλοί υπολογιστές έχουν μόνο ένα όνομα, στη συνέχεια η κεντρική πύλη του τοπικού δικτύου μας επιτρέπει να επικοινωνήσουμε με το διαδίκτυο... Αυτή η τεχνολογία ονομάζεται Network Adress Translation - NAT και πολλά άτομα εκ των οποίων και εγώ είμαστε κατά. ΔΕΝ ΜΠΟΡΕΙ ΚΑΠΟΙΟΣ ΑΛΛΟΣ ΝΑ ΕΠΙΛΕΓΕΙ ΓΙΑ ΕΣΕΝΑ ΤΟ ΤΙ ΘΑ ΣΤΕΙΛΕΙΣ ΚΑΙ ΣΕ ΠΟΙΟΝ ΜΠΟΡΕΙΣ! Το κάθε τερματικό θα πρέπει να βγαίνει απευθείας στο Διαδίκτυο έχοντας την ικανότητα να μιλάει με όποιον θέλει αναταλλάσοντας ότι θέλει, χωρίς να περνάει από το κόσκινο της gateway το τι ανταλλάσσει. Πρέπει λοιπόν να πιεστούν μερικοί και να εφαρμοστεί η νέα τεχνολογία IPv6 (όπου τόσο καιρό ακούγεται αλλά δεν γίνεται τίποτα) και να καταργηθεί η τεχνολογία ΝΑΤ δλδ οι πελάτες-τερματικά να συνδέονται απευθείας στο internet (briged connection interface).

Σε αυτό το σημείο μερικοί ίσως τρομοκρατηθούν.... Και καλά βρε παιδάκι μου θα είμαστε έτσι μέσα στο internet χωρίς να έχουμε τοπικό δίκτυο να μας προστατεύει και gateway; Σε αυτήν την ερώτηση θέλω να απαντήσω οτι ουσιαστικά η gateway δεν μας προστατεύει απλά προωθεί ότι είναι για μας σε εμάς, δλδ δεν έχει καμία σχέση άμα αυτό που θα πάρουμε είναι καλό ή κακό.

Κλείνοντας...
Ελπίζω να σας προβλημάτισα και να σας ενημέρωσα για την υπάρχουσα κατάσταση. Ακόμα ελπίζω σιγά σιγά να αρχίσουμε να ενημερωνόμαστε και να αγωνιζόμαστε για την κατάσταση στο διαδίκτυο γιατί πλέον έχει γίνει τμήμα της ζωής μας, όπως πχ στην ζωή δεν μας αρέσει κάποιος να μας επιβάλλεται το ίδιο πρέπει να νιώθουμε για το Διαδίκτυο. Προσωπικά το αντιμετωπίζω πολύ περισσότερο ανθρωπιστικά παρά τεχνικά γιατί ο στόχος του είναι η επικοινωνία μεταξύ ατόμων!

Constantine