[TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

...ασύγχρονα μαθήματα Δικτύων

[TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

Δημοσίευσηαπό anonylix » 20 Αύγ 2012, 14:23

Καλησπέρα,

έχω μια απορία στα δίκτυα για την οποία έχω ψάξει πάρα πολύ σε αρκετά sites στο google και δεν μπορώ να βρώ απάντηση. Γενικά το αποτέλεσμα ξέρω πως βγαίνει και χρειάζομαι την μεθοδολογία για να το κάνω. Η ερώτηση μου είναι...

Αν υπάρχει ένα δίκτυο 192.168.0.0/22 πως μπορώ να το γράψω σε εύρος απο IP. Δηλαδή να πω οτι είναι απο [192.168.0.0 - 192.168.100.255]? Ελπίζω να έγινα κατανοητός και να πω οτι ξέρω να το βγάζω αλλά δεν ξέρω την μεθοδολογία. Αν κάνω AND μεταξύ της IP + MASK τότε παίρνω την αρχή του εύρους. Το τέλος πως το βγάζω? Σας παρακαλώ αν απαντήσει κάποιος να είναι αναλυτικός όσο μπορεί βέβαια.

σας ευχαριστώ πολύ.
Google
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
1Λειτουργικό ⇛ Windows 7 x64 Ultimate σε Acer
Προδιαγραφές ⇛ T9400 │ 4GB DDR2 RAM │ NVIDIA GeForce 9600M GS │ No-Buetooth │ TFT 16.4"
2Λειτουργικό ⇛ Windows 7 x32 Ultimate σε Acer
Προδιαγραφές ⇛ T4500 │ 2GB │ ATI Radeon HD 4500 │ No-Buetooth │ TFT 15.4"
anonylix
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 17 Αύγ 2012, 12:57
Εκτύπωση

Re: [TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

Δημοσίευσηαπό the_eye » 21 Αύγ 2012, 00:11

Υπάρχει το πρόγραμμα ipcalc για να κάνεις υπολογισμούς δικτύων.

Εικόνα

Και στο internet υπάρχει πάρα πολύ πληροφορία αρκεί να ψάξεις για subnetting
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 24.04.2
3 Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11727
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: [TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

Δημοσίευσηαπό anonylix » 21 Αύγ 2012, 00:33

Ομολογώ πως θα είναι πολύ χρήσιμο πρόγραμμα. Σε ευχαριστώ πολύ! Βέβαια, δυστυχώς έχω ψάξει πολύ στο internet και έχω βρει πάρα πολλά. Η ερώτηση εξακολουθεί να με προβληματίζει όμως οπότε θα σου ήμουν ευνόμων αν μπορούσες να αφιερώσεις λίγο απο τον χρόνο σου και να μου απαντήσεις :/ Εκτός απο την αρχή για να βγάλω το τέλος, υπάρχει κάποια πράξη μεταξύ δυαδικών διευθύνσεων που μου δίνει αυτό που θέλω? Επαναλαμβάνω γνωρίζω πως να το βγάλω απλά ας πούμε "μου ζητήθηκε" να το λύσω χρησιμοποιώντας πράξεις με δυαδικές διευθύνσεις.

σας ευχαριστώ πολύ!
Google
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
1Λειτουργικό ⇛ Windows 7 x64 Ultimate σε Acer
Προδιαγραφές ⇛ T9400 │ 4GB DDR2 RAM │ NVIDIA GeForce 9600M GS │ No-Buetooth │ TFT 16.4"
2Λειτουργικό ⇛ Windows 7 x32 Ultimate σε Acer
Προδιαγραφές ⇛ T4500 │ 2GB │ ATI Radeon HD 4500 │ No-Buetooth │ TFT 15.4"
anonylix
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 17 Αύγ 2012, 12:57
Εκτύπωση

Re: [TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

Δημοσίευσηαπό vasster » 22 Αύγ 2012, 20:51

Όπως λοιπόν είπες, στο παράδειγμα σου, η πράξη AND της IP και του mask, σου δίνει την αρχή. Το εύρος των διευθύνσεων είναι το υπόλοιπο της αφαίρεσης 32-22=10 bit δηλαδή 1024 μοναδικές διευθύνσεις. Η πρώτη διεύθυνση είναι αυτή του δικτύου. Η τελευταία διεύθυνση είναι η broadcast, άρα οι υπόλοιπες 1022 είναι διαθέσιμες για μοίρασμα. Η τελευταία διεύθυνση θα είναι αυτή που θα παραχθεί εάν πάρεις ως διεύθυνση αυτά τα 10 bit. Θα δώσουν την εικόνα 00000000.00000000.00000011.11111111 δηλαδή 0.0.3.255

Αν ξεκίνησες λοιπόν με το δίκτυο 192.168.0.0 και προσθέσεις την 0.0.3.255 θα πάρεις την 192.168.3.255 που θα είναι η broadcast. Θα έχεις έτσι ανάμεσα τους 1022 διευθύνσεις.

Σαν παράδειγμα και χρησιμοποιώντας το ipcalc που πρότεινε ο the_eye, ορίστε και το αποτέλεσμα

Κώδικας: Επιλογή όλων
Address: 192.168.0.0 11000000.10101000.000000 00.00000000
Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000
Wildcard: 0.0.3.255 00000000.00000000.000000 11.11111111
=>
Network: 192.168.0.0/22 11000000.10101000.000000 00.00000000
HostMin: 192.168.0.1 11000000.10101000.000000 00.00000001
HostMax: 192.168.3.254 11000000.10101000.000000 11.11111110
Broadcast: 192.168.3.255 11000000.10101000.000000 11.11111111
Hosts/Net: 1022 Class C, Private Internet


Συνεχίζοντας, μπορείς να υπολογίσεις ποιο είναι το επόμενο subnet με την ίδια μάσκα;
Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
Ubuntu 17.04 (Zesty Zapus) 4.10.0-19-generic 64bit (en_US.UTF-8, Unity ubuntu)
Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 15915 MiB ‖ MSI H170M PRO-VDH (MS-7982) - MSI MS-7982
Intel Sky Lake Integrated Graphics [8086:1912] {i915_bpo}
enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlx784476b5edea: 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
vasster
punkTUX
punkTUX
 
Δημοσιεύσεις: 253
Εγγραφή: 23 Μάιος 2010, 09:51
Εκτύπωση

Re: [TCP?IP] Μετατροπή CIDR σε διάστημα απο IP'ς

Δημοσίευσηαπό anonylix » 23 Αύγ 2012, 00:41

Έχω 3 σκέψεις αλλά τις έσβησα. Όχι δεν μπορώ να το απαντήσω αυτό γιατί νομίζω είναι tricky. Θέλω να ρωτήσω, αφού έχω 22 bits στη μάσκα, τα 22 πρώτα είναι στο δίκτυο. Άρα για να είναι στο ίδιο δίκτυο θα πρέπει να είναι αμετάβλητα. Συμφωνούμε? (το ελπίζω και πάω παρακάτω...) Μένουν στο 3ο κομμάτι 2 bit και άλλα 8 στο επόμενο. Εσύ ήξερες τι έκανες η είχες λίγο τύχη :P γιατί με 2 bit μπορείς να έχεις εύρος μέχρι 0-3. Οι πρώτοι 1024 τόσο χρειάζονται :) Το επόμενο πως θα γίνει? Δεν έχω άλλα bits για να χρησιμοποιήσω στο subnet κομμάτι οπότε θα πάρω απο το host Κομμάτι κάποια...? Για να καταλάβεις χρειάζομαι την IP 192.168.7.254 που θεωρητικά είναι η τελευταία αλλά το 7 χρειάζεται 3 bit για να δημιουργηθεί στο δυαδικό και ΔΕΝ έχω λόγω μάσκας(νομίζω). Δεν είναι εφικτό αυτό που λες?

Ιδέα δεν έχω για το τι θα γίνει. Περιμένω να με διαφωτίσεις :)
Google
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
1Λειτουργικό ⇛ Windows 7 x64 Ultimate σε Acer
Προδιαγραφές ⇛ T9400 │ 4GB DDR2 RAM │ NVIDIA GeForce 9600M GS │ No-Buetooth │ TFT 16.4"
2Λειτουργικό ⇛ Windows 7 x32 Ultimate σε Acer
Προδιαγραφές ⇛ T4500 │ 2GB │ ATI Radeon HD 4500 │ No-Buetooth │ TFT 15.4"
anonylix
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 17 Αύγ 2012, 12:57
Εκτύπωση


Επιστροφή στο Μαθήματα Δικτύων