Τι είναι μία διεύθυνση IP
Μία διεύθυνση IP είναι ουσιαστικά τέσσερις αριθμοί (από το 0 έως και το 255) χωρισμένοι με τελείες. Π.χ: 143.233.091.009
Γιατί έως το 255; Διότι κάθε ένας από τους τέσσερις αυτούς αριθμούς είναι μία αναπαράσταση ενός οκταψήφιου δυαδικού αριθμού, και διότι με οκτώ ψηφία στο δυαδικό σύστημα ο μεγαλύτερος αριθμός που μπορούμε να πάρουμε έιναι ο 255 ( = 11111111 στο δυαδικό σύστημα).
Η προηγούμενη διεύθυνση λοιπόν μεταφράζεται:
143=10001111 (= ένας αριθμός με 8 bits)
233=11101001
091=01011011
009=00001001
Συνεπώς:
143.233.091.009 = (για συντομία 143.233.91.9) = 10001111.11101001.01011011.00001001 (μία διεύθυνση IP λοιπόν έχει μήκος 32 bits).
Όλες οι πιθανές διευθύνσεις IP που μπορούμε να έχουμε είναι: 256*256*256*256=4.294.967.296
Αν αναρωτηθείτε γιατί βάζουμε 256 στο πλήθος των αριθμών, μην ξεχνάτε ότι από το 0 μέχρι και το 255 οι αριθμοί σε πλήθος είναι 256.
Τμήματα σε μία διεύθυνση IP (Network Address, Host Address) και το Subnet Mask
Μία διεύθυνση IP αποτελείται ουσιαστικά από δύο τμήματα. Το network address και το host address. Όλοι οι υπολογιστές σε ένα network μοιράζονται το ίδιο network address ενώ το host address είναι μοναδικό για κάθε υπολογιστή (σε κάθε υπολογιστή που ανήκει στο ίδιο network). Το network address βρίσκεται στα αριστερά ενώ στα δεξιά βρίσκεται το host address.
Μία δυσκολία που προκύπτει είναι ο διαχωρισμός του network address και του host address. Για παράδειγμα, πως τα ξεχωρίζουμε όταν έχουμε μια διεύθυνση της μορφής 143.233.091.009;
Αυτό που μας βοηθάει να τα ξεχωρίσουμε είναι το subnet mask (που έχει τη μορφή μιας διεύθυνσης IP - ΑΑΑ.ΒΒΒ.CCC.DDD).
Για παράδειγμα, αν στην προηγούμενη διεύθυνση 143.233.091.009 προσθέσουμε σαν subnet mask το 255.255.255.000 (= 11111111.11111111.11111111.00000000) τότε:
143.233.091.009 = 10001111.11101001.01011011.00001001
255.255.255.000 = 11111111.11111111.11111111.00000000
Συνεπώς το network address είναι τα πρώτα 24 bits (το 143.233.091) ενώ το host address είναι το 009.
Μπορούμε να πούμε ότι βλέποντας subnet mask 255.255.255.0 αμέσως συμπεραίνουμε το ότι η διεύθυνση IP θα είναι της μορφής network.network.network.host (ή αλλιώς network.network.network.local).
Πολλές φορές, αντί του ζεύγους 143.233.91.9, 255.255.255.000 χρησιμοποιούμε το 143.233.91.9/24. Το 24 δείχνει ότι το network address αποτελείται από τα πρώτα 24 bits (τους πρώτους τρεις τριψήφιους αριθμούς δλδ).
Private IP Address ranges
Μερικές διευθύνσεις IP είναι δεσμευμένες για χρήση αποκλειστικά σε τοπικά δίκτυα (που σημαίνει ότι μία τέτοια διεύθυνση δε χρησιμοποιείται από κανένα υπολογιστή στο Internet).
Οι διευθύνσεις αυτές είναι:
-> 10.0.0.0/8 (ή αλλιώς 10.0.0.0 με subnet mask 255.0.0.0),
-> 172.16.0.0/12 (ή αλλιώς 172.16.0.0 έως και 172.31.255.255, ή αλλιώς 172.16.0.0 με subnet mask 255.240.0.0), και
-> 192.168.0.0/16 (ή αλλιώς 192.168.0.0 με subnet mask 255.255.0.0).
Δεσμευμένα θεωρούνται τα παρακάτω δίκτυα:
0.0.0.0 (Αρχικά καθορίστηκε σας broadcast address)
127.0.0.0 (Loopback address)
{kubiak: με πολύ απλά λόγια, αν ρωτήσετε οποιοδήποτε υπολογιστή "ΠΟΙΟΣ ΕΙΝΑΙ Ο 127.0.0.1;" θα πάρετε την απάντηση "ΕΓΩ!!!"}
128.0.0.0
191.255.0.0
192.0.0.0
113.255.255.0
Automatic Private IP addressing - APIPA
Μερικές φορές σε ένα υπολογιστή του τοπικού δικτύου δεν έχει ανατεθεί διεύθυνση IP ενώ ο υπολογιστής δεν μπορεί να αποκτήσει διεύθυνση IP από ένα DHCP server. Μερικές εκδόσεις λειτουργικών αναθέτουν μία τυχαία διεύθυνση IP στον υπολογιστή έτσι ώστε να επιτραπέι η επικοινωνία μεταξύ των υπολογιστών σε ένα μικρό τοπικό δίκτυο. Οι διευθύνσεις IP είναι της μορφής 169.254.0.0/16 (ή αλλιώς 169.254.0.0 με subnet mask 255.255.0.0)
Τι γίνεται στη περίπτωση που ένας υπολογιστής με εσωτερική διεύθυνση IP θέλει να επικοινωνήσει με ένα υπολογιστή εκτός του τοπικού δικτύου;
Η απάντηση βρίσκεται στο Network Address Translation - NAT
To NAT αρχικά σχεδιάστηκε ως λύση στο πρόβλημα του περιορισμένου αριθμού διευθύνσεων IP.
Τι κάνει ακριβώς το NAT; Όταν σε ένα τοπικό δίκτυο 10.0.0.0/8 ο υπολογιστής 10.0.0.1 θέλει να επικοινωνήσει με ένα άλλο υπολογιστή στο Internet, τότε, καθώς ο 10.0.0.1 δε μπορεί να χρησιμοποιήσει την IP του για την επικοινωνία, επεμβαίνει ένας υπολογιστής που βρίσκεται στο ενδιάμεσο (και έχει μία έγκυρη διεύθυνση IP), και ξεκινάει την επικοινωνία με τον εξωτερικό υπολογιστή. Ο ενδιάμεσος αυτός υπολογιστής χρησιμοποιώντας το NAT αντικαθιστά την εσωτερική IP 10.0.0.1 με τη δική του έγκυρη IP. Όταν λάβει απάντηση από τον εξωτερικό υπολογιστή τότε κάνει την ανάποδη διαδικασία (αντικαθιστά δλδ την έγκυρη IP με την εσωτερική IP 10.0.0.1 και στέλνει την απάντηση στην εσωτερική IP). Το παράδειγμα αυτό αναφέρθηκε για να περιγραφεί ο όρος NAT (χωρίς να αναφέρουμε κάποιες λεπτομέρειες).
Τι γίνεται όμως όταν πολλοί υπολογιστές στο 10.0.0.0/8 θέλουν να συνδεθούν με το internet;
Στην προκειμένη περίπτωση μία πολύ καλή λύση δίνει το Network Address PORT Translation - NAPT:
Το NAPT κάνει ότι κάνει και το ΝΑΤ και κάτι ακόμα.
Για να το εξηγήσουμε όσο πιο απλά γίνεται ας αναφέρουμε ένα παράδειγμα:
Έστω ότι ο 10.0.0.1 θέλει να επικοινωνήσει με τον 143.233.91.9. Μεταξύ άλλων, ο 10.0.0.1 πέρα από το 143.233.91.9 θα δηλώσει και ένα άλλο νούμερο που είναι το source port.
Αυτά που θα αλλάξει λοιπόν ο υπολογιστής που θα εφαρμόσει το NAPT είναι το 10.0.0.1 και το source port. To μεν 10.0.0.1 θα το αντικαταστήσει με τη δική του έγκυρη διεύθυνση IP και το source port με κάποιο source port μεγαλύτερο του 1023 (καθώς το καινούριο source port μπορει να είναι από το 1023 μέχρι περίπου το 65.000 καταλαβαίνετε πόσες τέτοιες αντικαταστάσεις μπορούν να γίνουν ταυτόχρονα για πολλούς υπολογιστές του εσωτερικού δικτύου). Στο συγκεκριμένο παράδειγμα ας πούμε ότι το 20 αντικαταστάθηκε με το 6.000. Αυτό που έχει να κάνει ο υπολογιστής που εφαρμόζει το NAPT είναι να κρατήσει μία λίστα που σχετίζει ένα source port με μία IP διεύθυνση του εσωτερικού δικτύου, έτσι ώστε όταν λάβει την απάντηση να την προωθήσει στο σωστο εσωτερικό IP. Στο παράδειγμά μας όταν λάβει απάντηση από τον 143.233.91.9 στο Port 6.000 θα την προωθήσει στον 10.0.0.1...
ουφ...
Λίγα λόγια για τη σχέση διευθύνσεων IP και του δυαδικού συστήματος
Δυαδικό Σύστημα
Για να μπορέσουμε να καταλάβουμε πως γίνεται το Subnetting, πρέπει πρώτα να γνωρίζουμε καλά το δυαδικό σύστημα, τις Classes των δικτύων και τι ακριβώς γίνεται στην καθεμία. Όπως γνωρίζουμε μία IP αποτελείται από 32bits. Για παράδειγμα:
192.168.0.0 - 11000000.10101000.00000000.00000000
Για να μετατρέψουμε μία IP από δυαδικό σε δεκαδικό ακολουθούμε την εξής διαδικασία:
Ας πάρουμε τoν 8μπιτο δυαδικό αριθμό 11001101. Η μετατροπή σε δεκαδικό γίνεται ως εξής:
Δεκαδικοί αριθμοί 128 64 32 16 8 4 2 1
Δυαδικός αριθμός 1 1 0 0 1 1 0 1
Για να βγάλουμε το δεκαδικό αριθμό, προσθέτουμε τους δεκαδικούς αριθμούς κάτω από τους οποίους υπάρχει το δυαδικό ψηφίο 1. Στη συγκεκριμένη περίπτωση 128 + 64 + 8 + 4 + 1 = 205. Άρα 11001101 = 205. Αν υποθέσουμε πως αυτά ήταν τα πρώτα 8bit μιας IP, βρίσκουμε και τα υπόλοιπα με τον ίδιο τρόπο. Οπότε αν μας ζητηθεί να βρούμε την IP 11000000.10101000.00000000.00000000 στη δεκαδική της μορφή, ακολουθούμε την παραπάνω διαδικασία για κάθε ένα από τα 8 bit της.
Τώρα αν μας ζητηθεί να μετατρέψουμε μία IP από δεκαδική μορφή σε δυαδική ακολουθούμε την αντίστροφη διαδικασία. Έστω ότι μας ζητείται o αριθμός 176 να γίνει δυαδικός.
Δεκαδικοί αριθμοί 128 64 32 16 8 4 2 1
Δυαδικός αριθμός 1 0 1 1 0 0 0 0
Μιας και ο αριθμός είναι πάνω από 128, το ενεργοποιούμε με το ψηφίο 1. Δοκιμάζουμε να προσθέσουμε το 128 με το 64 να δούμε ποιος είναι ο επόμενος αριθμός και μας δίνει το 192. Το ζητούμενο είναι το 176, οπότε δεν μας κάνει το 64 και βάζουμε 0. Προσθέτοντας το 32 μας δίνει το 160, αριθμός πιο κοντά σε αυτόν που θέλουμε και βάζουμε 1. Είναι προφανές πως θέλουμε άλλα 16 για να φτάσουμε το 176, οπότε βάζουμε και 1 κάτω από το 16. Τα υπόλοιπα τα συμπληρώνουμε με μηδενικα. Έτσι 176 = 10110000.
Λίγα λόγια για τα Network Classes
Network Classes
Oι Network Classes είναι οι εξής:
- Class A: Από 0 έως 127 Από 00000000 έως 01111111.
- Class B: Από 128 έως 191 Από 10000000 έως 10111111.
- Class C: Από 192 έως 223 Από 11000000 έως 11011111.
- Class D: Από 224 έως 239 Από 11100000 έως 11101111.
- Class E: Από 240 έως 255 Από 11110000 έως 11110111.
Με βάση τα παραπάνω, οι διαθέσιμες IP σε κάθε Class είναι:
- Class A: Από 0.0.0.0 έως 127.255.255.255.
- Class B: Από 128.0.0.0 έως 191.255.255.255.
- Class C: Από 192.0.0.0 έως 223.255.255.255.
- Class D: Από 224.0.0.0 έως 239.255.255.255.
- Class E: Από 240.0.0.0 έως 255.255.255.255.
Η Class A έχει 8bit Network ID, η Class B έχει 16bit Network ID και η Class C έχει 24bit Network ID. Ο παρακάτω πίνακας δείχνει τη μάσκα κάθε Class.
Class A 255.0.0.0 ή αλλιώς /8
Class B 255.255.0.0 ή αλλιώς /16
Class C 255.255.255.0 ή αλλιώς /24
Ο λόγος που ονομάζονται αλλιώς και /8, /16 και /24 είναι διότι σε κάθε περίπτωση έχουν τα ανάλογα bit ενεργοποιημένα με το ψηφίο 1 όταν είναι στη δυαδική τους μορφή. Για παράδειγμα η /16 είναι 11111111.11111111.00000000.00000000.Η μάσκα δηλώνει των αριθμό των υποδικτύων και των host στο δίκτυο μας. Τα υπόλοιπα bits που απομένουν σε μία μάσκα και είναι μηδενικά, είναι ο αριθμός των διαθέσιμων host στο δίκτυο μας. Για παράδειγμα σε μία Class C IP με μάσκα 255.255.255.0 ή 11111111.11111111.11111111.00000000, ο αριθμός των host που μπορούμε να έχουμε είναι 28 = 256 – 2 = 254. Ο λόγος που βγάζουμε 2 είναι γιατί σε κάθε δίκτυο έχουμε ένα Network ID ή αλλιώς την IP δικτύου και μία Broadcast IP, οι οποίες δεν χρησιμοποιούνται σε host. Για παράδειγμα αν μας δώσουν μία IP 192.168.0.10 με μάσκα 255.255.255.0 ή /24, το Network ID της είναι το 192.168.0.0 και το Broadcast IP είναι το 192.168.0.255. Όλες οι άλλες IP 192.168.0.1 έως 192.168.0.254 δίνονται σε host. Για να βρούμε τo Network ID του δικτύου μας από την υπολογιστή μας μπορούμε να κάνουμε ένα λογικό ADD της IP του υπολογιστή μας με τη Subnet Mask του δικτύου μας. Λογικό ADD εννοούμε όπου 1 + 1 = 1, 1 + 0 = 0 και 0 + 0 = 0. Για παράδειγμα:
Host IP: 192.168.0.10 11000000.10101000.00000000.00001010
Subnet Mask: 255.255.255.0 11111111.11111111.11111111.00000000
Network ID: 192.168.0.0 11000000.10101000.00000000.00000000
Υπάρχουν και κάποιες private IP, οι οποίες δεν χρησιμοποιούνται στο Internet. Τέτοιου είδους IP χρησιμοποιούν στα τοπικά τους δίκτυα οι εταιρίες, καθώς και εμείς στο LAN του γραφείου μας ή του σπιτιού μας. Για παράδειγμα η IP 192.168.0.1 που χρησιμοποιεί κάποιος από εμάς στο τοπικό του δίκτυο, τη χρησιμοποιούνε και εκατομμύρια άλλοι στα δικά τους τοπικά δίκτυα δίχως να υπάρχει κίνδυνος conflict στο Internet μιας και προορίζεται για private χρήση. Ο παρακάτω πίνακας δείχνει τις private IP κάθε Class βάση του RFC 1918 standard.
Class A Από 10.0.0.0 έως 10.255.255.255
Class B Από 172.16.0.0 έως 172.31.255.255
Class C Από 192.168.0.0 έως 192.168.255.255