Subnetting: Υποδικτύωση IPv4 και Υπολογισμός Subnets και Hosts
Το Subnetting (υποδικτύωση) είναι η διαδικασία διαίρεσης ενός δικτύου IP σε μικρότερα λογικά δίκτυα, τα λεγόμενα subnets. Στο IPv4 γίνεται με τη χρήση της μάσκας υποδικτύου (subnet mask) ή του προθέματος CIDR, όπως /24 ή /26.
Η υποδικτύωση βοηθά στην οργάνωση των διευθύνσεων IP, στον περιορισμό των broadcast domains και στην εφαρμογή πολιτικών δρομολόγησης και ασφάλειας. Η επικοινωνία μεταξύ διαφορετικών υποδικτύων απαιτεί συσκευή ή λειτουργία Layer 3, όπως router ή Layer 3 switch.
Βασικές έννοιες IPv4 Subnetting
- IP address: η διεύθυνση μιας διεπαφής δικτύου, π.χ.
192.168.10.25. - Subnet mask: καθορίζει ποια bits της IPv4 διεύθυνσης ανήκουν στο network prefix και ποια στο host portion.
- CIDR prefix: ο αριθμός των bits του network portion, π.χ.
/24σημαίνει ότι τα πρώτα 24 bits είναι το prefix. - Network address: η διεύθυνση που αναγνωρίζει το υποδίκτυο.
- Broadcast address: η διεύθυνση για αποστολή broadcast σε όλους τους hosts του IPv4 subnet.
- Usable host range: οι διευθύνσεις που μπορούν συνήθως να εκχωρηθούν σε συσκευές.
Πώς υπολογίζουμε τα υποδίκτυα και τους hosts;
Μια IPv4 διεύθυνση έχει συνολικά 32 bits. Αν το prefix είναι /p, τότε:
- Bits δικτύου:
p. - Bits hosts:
h = 32 - p. - Συνολικές διευθύνσεις:
2^h. - Συνήθεις διαθέσιμες διευθύνσεις hosts:
2^h - 2, επειδή αφαιρούνται η network και η broadcast address.
Ο κανόνας 2^h - 2 ισχύει για τα συνηθισμένα IPv4 subnets. Υπάρχουν εξαιρέσεις: το /31 χρησιμοποιείται σε point-to-point συνδέσεις σύμφωνα με το RFC 3021 και αξιοποιεί και τις δύο διευθύνσεις, ενώ το /32 αναφέρεται σε μία μεμονωμένη διεύθυνση.
Πίνακας συνηθισμένων IPv4 prefixes
| CIDR | Subnet mask | Συνολικές διευθύνσεις | Συνήθεις usable hosts |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 σε point-to-point σύνδεση |
| /32 | 255.255.255.255 | 1 | 1 διεύθυνση / host route |
Παράδειγμα: Διαίρεση δικτύου /24 σε τέσσερα υποδίκτυα
Έστω ότι διαθέτουμε το δίκτυο 192.168.10.0/24 και θέλουμε να δημιουργήσουμε τέσσερα ισομεγέθη υποδίκτυα. Χρειαζόμαστε 2 επιπλέον bits για το subnetting, επειδή 2^2 = 4. Το νέο prefix γίνεται /26, με μάσκα 255.255.255.192.
| Subnet | Network address | Usable host range | Broadcast |
|---|---|---|---|
| 1 | 192.168.10.0/26 | 192.168.10.1 – 192.168.10.62 | 192.168.10.63 |
| 2 | 192.168.10.64/26 | 192.168.10.65 – 192.168.10.126 | 192.168.10.127 |
| 3 | 192.168.10.128/26 | 192.168.10.129 – 192.168.10.190 | 192.168.10.191 |
| 4 | 192.168.10.192/26 | 192.168.10.193 – 192.168.10.254 | 192.168.10.255 |
Κάθε υποδίκτυο περιλαμβάνει 64 διευθύνσεις, από τις οποίες οι 62 είναι διαθέσιμες για συσκευές με τη συνήθη IPv4 χρήση. Η πρώτη διεύθυνση είναι η network address και η τελευταία η broadcast address.
Παράδειγμα: Πόσα hosts χωρούν σε ένα /27;
Για prefix /27, απομένουν 32 - 27 = 5 bits για hosts. Άρα υπάρχουν 2^5 = 32 συνολικές διευθύνσεις και συνήθως 32 - 2 = 30 usable host addresses.
VLSM: Υποδίκτυα διαφορετικού μεγέθους
Το VLSM (Variable Length Subnet Mask) επιτρέπει τη χρήση διαφορετικών prefixes στο ίδιο αρχικό δίκτυο. Έτσι δεν χρειάζεται να δεσμεύουμε το ίδιο πλήθος διευθύνσεων για κάθε τμήμα. Για παράδειγμα, ένα τμήμα με 50 συσκευές μπορεί να χρησιμοποιήσει /26, ενώ ένα μικρότερο τμήμα με 10 συσκευές μπορεί να χρησιμοποιήσει /28.
Κατά τον σχεδιασμό VLSM ξεκινάμε συνήθως από το μεγαλύτερο απαιτούμενο subnet, δεσμεύουμε ένα κατάλληλο block διευθύνσεων και συνεχίζουμε με τα μικρότερα, χωρίς επικαλύψεις.
Έλεγχος subnet σε Linux και Windows
Σε Linux, η εντολή ip εμφανίζει τις διευθύνσεις και τα prefixes των διεπαφών:
ip -br address
ip route
Σε Windows, μπορείς να δεις τη διεύθυνση IPv4, τη μάσκα υποδικτύου και την προεπιλεγμένη πύλη με:
ipconfig /all
Για αναλυτικότερους υπολογισμούς μπορείς να χρησιμοποιήσεις ένα εργαλείο όπως το ipcalc, ελέγχοντας πάντα ότι το αποτέλεσμα συμφωνεί με το απαιτούμενο πλήθος hosts και το διαθέσιμο address space.
Συχνά λάθη στο subnetting
- Σύγχυση ανάμεσα στο πλήθος συνολικών διευθύνσεων και στο πλήθος των συνήθως διαθέσιμων hosts.
- Λανθασμένη επιλογή prefix που δεν χωρά τις απαιτούμενες συσκευές.
- Επικάλυψη διευθύνσεων κατά τον σχεδιασμό πολλών subnets.
- Λανθασμένη network ή broadcast address.
- Παράβλεψη της προεπιλεγμένης πύλης, των VLANs και της δρομολόγησης μεταξύ υποδικτύων.
- Εφαρμογή του κανόνα
2^h - 2χωρίς να λαμβάνονται υπόψη οι ειδικές περιπτώσεις /31 και /32.