Προχωρημένα Θέματα Δικτύων Πρόγραμμα Μεταπτυχιακών Σπουδών Τμήμα Πληροφορικής ΑΠΘ
Ποιος κάνει το μάθημα; Δρ. Πάλλας Γιώργος PhD στα δίκτυα υψηλών ταχυτήτων → Σχεδιασμός πρωτοκόλλων σε MAC Sublayer επίπεδο Επαγγελματική εμπειρία: Κέντρο Ηλεκτρονικής Διακυβέρνησης ΑΠΘ → Τομέας Eνεργών Στοιχείων (Router & Switch Management) Επικοινωνία: gpall@it.auth.gr Επικοινωνία με όλο το τμήμα: * advanced-networks-CSD@googlegroups.com
Προχωρημένα Θέματα Δικτύων Στόχοι μαθήματος: Απόκτηση εμπειρίας σε τρέχοντα θέματα δικτύων μεγάλης κλίμακας Επαφή με τα προβλήματα και τις λύσεις σε σύγχρονα δίκτυα παραγωγής Απόκτηση εμπειρίας σε αυτά που έχετε ακούσει στη θεωρία αλλά δεν είχατε δει Βασική αρχή: Η θεωρία επιβεβαιώνεται στην πράξη! Πλήθος μαθημάτων: 13 Τελικός βαθμός: Έμφαση στις ατομικές/ομαδικές εργασίες, πρόοδοι, όχι εξετάσεις Προαπαιτούμενες γνώσεις: Βασικά θέματα δικτύων* * Βιβλιογραφία: A. Cisco Press - Computer Networking First Step, B. A.S. Tanenbaum - Computer Networks (η ύλη των βιβλίων αυτών θα θεωρείται γνωστή) * Βοηθητικά: Sybex – The Dictionary of Networking Βιβλιογραφία για την ύλη του μαθήματος: CISCO CCNA courses
Το δίκτυο δεδομένων του ΑΠΘ Τυπικό παράδειγμα μεγάλου και περίπλοκου δικτύου 250 κόμβοι σε 80 κτίρια (το πιο μακρινό στo Ποσείδι) Κάθε κόμβος ~ 4-5 switch Περίπου 13.000 πρίζες δικτύου Δεκάδες δρομολογητές 35 εξωκείμενες μονάδες Τεχνολογίες: (Ten) Gigabit Ethernet, ADSL, SHDSL, Wireless, VoIP Αυτόματα συστήματα ανίχνευσης και καταστολής δικτυακών απειλών (ιοί, trojans) Αυτόματη παρακολούθηση και ρύθμιση δικτύου
Το δίκτυο δεδομένων του ΑΠΘ Τυπικό παράδειγμα μεγάλου και περίπλοκου δικτύου 100.000 χρήστες (φοιτητές, καθηγητές, επιστημονικοί συνεργάτες) Υπηρεσίες: mail accounts, mailing lists, αποθηκευτικός χώρος, ψηφιακά πιστοποιητικά, VPNs Πολλαπλά data centers, blade servers, Virtual Machines, external storages, realtime failover Σενάριο αντιμετώπισης καταστροφής σε κάθε network layer IP accounting & billing
Οι πέντε ενότητες του μαθήματος Ασφάλεια Υψηλή Διαθεσιμότητα Διασφάλιση Ποιότητας Υπηρεσιών (QoS) Ευελιξία Διαχείριση Προσέγγιση από την σκοπιά της layered αρχιτεκτονικής: Layer 1 (οπτικές ίνες) Layer 2 (Ethernet) Layer 3 (IP) Layer 4 (TCP/UDP/ICMP) Layer 5 (HTTP, POP3)
Υπενθύμιση Βασικών Θεμάτων Δικτύων Routers,Switches & Υποδίκτυα Υποδίκτυο είναι ένα κομμάτι του συνολικού IPv4/IPv6 address space, πχ. 155.207.113.0/24 (155.207.113.0 -> 155.207.113.255) Switch (μεταγωγέας) είναι μια συσκευή που διασυνδέει σταθμούς εργασίας που ανήκουν στο ίδιο υποδίκτυο (έχουν IP από το ίδιο υποδίκτυο) Router (δρομολογητής) είναι μια συσκευή που διασυνδέει μεταξύ τους διαφορετικά υποδίκτυα και είναι ισότιμο μέλος καθενός από αυτά 155.207.113.50/24 155.207.113.51/24 155.207.112.20/24 155.207.112.21/24 155.207.112.22/24 Τρία PC με διευθύνσεις στο ίδιο υποδίκτυο Δεν μπορούν να 'μιλήσουν' μεταξύ τους. Γιατί; Δεν μπορούν να 'μιλήσουν' μεταξύ τους. Γιατί; 155.207.113.52/24
Υπενθύμιση Βασικών Θεμάτων Δικτύων Routers,Switches & Υποδίκτυα
Υπενθύμιση Βασικών Θεμάτων Δικτύων Routers,Switches & Υποδίκτυα H απάντηση είναι στον τρόπο με τον οποίο σχεδιάστηκαν τα πρωτόκολλα τοπικών δικτύων: Οι υπολογιστές είναι ισότιμοι μεταξύ τους στο δίκτυο, δεν υπάρχει κεντρικός συντονιστής. Έτσι, για να επικοινωνήσουν οι υπολογιστές μεταξύ τους, χρειάζονται το broadcast! Δείτε για παράδειγμα ένα απλό ping: * Γιατί δεν τα συνδέουμε όλα πάνω σε ένα switch; * Ρωτάει όλους στο τοπικό δίκτυο, ποιός έχει την IP 192.168.1.4 Απαντά ο 192.168.1.4 λέγοντας την ΜΑC του O 192.168.1.200 στέλνει το ping O 192.168.1.4 στέλνει την απάντηση στο ping
Υπενθύμιση Βασικών Θεμάτων Δικτύων Routers,Switches & Υποδίκτυα Εάν τα είχαμε όλα συνδεδεμένα πάνω σε ένα switch ή έστω σε switches συνδεδεμένα μεταξύ τους, τότε τα άπειρα broadcasts θα γονάτιζαν το δίκτυο! * Η λύση είναι σύνδεση των hosts πάνω σε switches, των switches πάνω σε routers, και των routers πάνω σε άλλους routers * Αυτό είναι το Internet...
Α. Ασφάλεια Δικτύων Layer 1 – οπτικές ίνες → σωλήνες κενού, μεταλλικοί σωλήνες, ισχυρό πλαστικό περίβλημα. Η υποκλοπή απαιτεί κόψιμο ίνας, επανατερματισμό στα άκρα και μεσολάβηση κατάλληλου ενεργού εξοπλισμού Layer 2 – Ethernet → switches Στο hub, κάθε μετάδοση φτάνει σε όλους στο LAN, ενώ στο switch κάθε μετάδοση φτάνει μόνο στον υπολογιστή που πρέπει Hub insecurity
Α. Ασφάλεια Δικτύων Switches vs. Hubs Κάθε host έχει μια MAC-address (00:22:5f:6e:cc:63) To hub στέλνει τις μεταδόσεις σε όλους τους hosts και όποιος ενδιαφέρεται την παραλαμβάνει Το switch έχει ένα lookup-table όπου αντιστοιχίζει τα ports του με τις MAC addresses που βγαίνουν από το κάθε ένα Όταν ένας host θέλει να επικοινωνήσει με κάποιον άλλο, το switch παραλαμβάνει τη μετάδοση και την στέλνει μόνο στο port από το οποίο ξέρει την MAC address παραλήπτη Ένας τρίτος host πάνω στο switch δεν μπορεί να ακούσει τη συνομιλία δυο άλλων Τρόποι επίθεσης σε switched δίκτυα: ΜΑC address flooding, MAC address spoofing, ARP spoofing Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων Switches MAC-address ή Switching ή Content Addressable Memory (CAM) table: Πίνακας αντιστοίχισης μεταξύ MAC addresses και ports του switch Κάθε port μπορεί να αντιστοιχίζεται με πολλές MAC addresses Σε κάθε port μπορούν να συνδεθούν PCs, άλλα switches, hubs, routers Σημείωση: Το MAC-address table περιέχει δύο τύπους εγγραφών: Dynamic: αντιστοιχίες τις οποίες μαθαίνει το switch δυναμικά από τα πλαίσια που διακινεί. Για αυτές ακολουθείται διαδικασία “aging”. Χάνονται αν γίνει reset στο switch. Static: αντιστοιχίες τις οποίες προσθέτουμε «με το χέρι» (“manually”). Δεν ακολουθούν διαδικασία “aging”. Δεν χάνονται αν γίνει reset στο switch. Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων Switches “Learning”: Μαθαίνει σταδιακά την αντιστοιχία μεταξύ MAC-address και ports, «κοιτάζοντας» τη source MAC address στα frames που λαμβάνει από κάθε port. Έτσι «χτίζει» σταδιακά το CAM table, προσθέτοντας εγγραφές δυναμικά. “Forwarding”: To switch προωθεί το κάθε πλαίσιο που λαμβάνει στο αντίστοιχο port, βάσει της destination MAC address του πλαισίου, αναζητώντας τη συγκεκριμένη MAC address στο switching table. Το switch χρησιμοποιεί τεχνική store-and-forward: τα πακέτα αποθηκεύονται, ελέγχονται για errors και μετά προωθούνται. “Flooding”: Αν η destination address δεν είναι στο switching table, τότε προωθεί το frame σε όλα τα ports. Επίσης αν η destination address είναι η broadcast address (ffff.ffff.ffff), τότε και πάλι προωθείται σε όλα τα ports. Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων Switches “Filtering”: Αν η destination address αντιστοιχεί στο port από όπου ήρθε το frame, τότε το frame δεν προωθείται ξανά προς το port από όπου ήρθε. “Aging”: Κάθε dynamic entry μένει στο switching table για ένα συγκεκριμένο χρονικό διάστημα (συνήθως 5 λεπτά), μετά την παρέλευση του οποίου το entry διαγράφεται. Κάθε φορά που έρχεται στο switch ένα frame με source address αυτή τη MAC address από αυτό το port, η διάρκεια παραμονής της εγγραφής στο switching table ανανεώνεται. Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων Σύνδεσμοι για μελέτη: Περί λειτουργίας LAN & Switched Networks http://computer.howstuffworks.com/lan-switch.htm MAC spoofing http://en.wikipedia.org/wiki/MAC_spoofing MAC flooding http://en.wikipedia.org/wiki/MAC_flooding ARP spoofing (poisoning) http://en.wikipedia.org/wiki/ARP_spoofing Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων Εργαλεία: Wireshark (Data Capturing) + TCPDump (command line) http://www.wireshark.org Ettercap (ARP Poisoning) http://ettercap.sourceforge.net ARPwatch http://en.wikipedia.org/wiki/Arpwatch Α. Ασφάλεια Δικτύων – Layer 2
Α. Ασφάλεια Δικτύων VLANs (Virtual LANs) Αναγκαιότητα διαχωρισμού και δημιουργίας υποδικτύων, τα οποία ξεχωρίζουν μεταξύ τους σε λογικό επίπεδο με βάση: Την ομάδα εργασίας των χρηστών Τη λειτουργία τους / το σκοπό ύπαρξής τους Τις εφαρμογές που τρέχουν οι χρήστες Όχι βάσει της φυσικής τοποθεσίας τους Επιπλέον «τεχνικές» αναγκαιότητες: μείωση του “broadcast domain”!!! σύνδεση φυσικά απομακρυσμένων υπολογιστών στο ίδιο LAN
Α. Ασφάλεια Δικτύων VLANs (Virtual LANs) Διαχωρισμός (segmenting) ενός φυσικού δικτύου σε πολλά λογικά Το δίκτυο παρακάτω ισοδυναμεί με δυο ξεχωριστά switch, με δυο υπολογιστές έκαστο (PC 01 + PC 03) και (PC 02 + PC 04) που ΔΕΝ μπορούν να μιλήσουν μεταξύ τους! Πιθανή χρήση: * Διαχωρισμός ασφαλούς δικτύου από ένα ανασφαλές χωρίς χρήση δυο switches Extra Feature: * Tα VLANs μπορούν να εκταθούν σε πάνω από ένα switch!
Α. Ασφάλεια Δικτύων VLANs (Virtual LANs) Κάθε switch υποστηρίζει μέχρι 64 ή 250 διαφορετικά VLANs (ανάλογα με τον τύπο του) Κάθε VLAN αναγνωρίζεται με βάση το VLAN ID: ένας μοναδικός αριθμός, μεταξύ 1-1005 Όλα τα VLANs και οι πληροφορίες σχετικά με αυτά, κρατούνται σε μια βάση εντός του switch: VLAN database To switch αναγνωρίζεται και είναι διαχειρίσιμο μέσω του Management VLAN (by default αυτό είναι το VLAN 1) Το switch έχει μία IP address στο management VLAN, για να μπορούμε να κάνουμε διαχείριση over IP. Αυτή είναι η ΜΟΝΑΔΙΚΗ περίπτωση κατά την οποία ένα switch ασχολείται με layer > 2.
Α. Ασφάλεια Δικτύων VLANs (Virtual LANs) Πακέτα με προορισμό το ίδιο VLAN προωθούνται σε layer 2 – δεν μεσολαβεί router Η μεταγωγή των πακέτων γίνεται βάσει του destination MAC address και του VLAN membership των ports. Πακέτα προωθούνται από θύρα σε θύρα μόνο αν οι δύο θύρες ανήκουν στο ίδιο VLAN. Έτσι δύο π.χ. VLANs (αν και εξυπηρετούνται από το ίδιο switch) είναι εντελώς ανεξάρτητα τοπικά δίκτυα, χωρίς καμιά δυνατότητα επικοινωνίας. Για επικοινωνία μεταξύ υπολογιστών που ανήκουν σε διαφορετικά VLANs χρειάζεται router για inter-VLAN routing.
Αναλύοντας πακέτα με το Wireshark → ένα Ping request Α. Ασφάλεια Δικτύων Αναλύοντας πακέτα με το Wireshark → ένα Ping request
Α. Ασφάλεια Δικτύων Αναλύοντας πακέτα με το Wireshark Ping request σε VLAN segmented Ethernet δίκτυο
Α. Ασφάλεια Δικτύων Routers & VLAN trunking Έχει τη δυνατότητα να πάρει πακέτα από ένα δίκτυο και να τα στείλει σε άλλο Στην εικόνα, τα διάφορα VLANs απεικονίζονται με διαφορετικά χρώματα Trunk έχουμε όταν από ένα link ή interface περνάει πάνω από 1 VLAN Και τα δυο switch, ξέρουν όλα τα VLANs και τα περνάει το ένα στο άλλο μέσω του trunk link βάζοντας στα πακέτα το VLAN id (ή αλλιώς VLAN tag) Για να μιλήσει πχ. ο Α με τον C, πρέπει το πακέτο να πάει στο αριστερό switch, να μπει στον router, να ξαναμπεί στο αριστερό switch, να περάσει από το trunk στο δεξί switch, και να φθάσει στον C! ΠΡΟΣΟΧΗ! Από τα access links περνάνε untagged πακέτα, ενώ από τα trunk links μόνο tagged πακέτα
Προχωρημένα Θέματα Δικτύων Οδηγός Φοιτητή: Τι κάνω τώρα; Κατέβασμα του υλικού από http://users.auth.gr/gpall/AdvNet/syllabus.7z (το password θα σταλεί στη mailing list). Εκεί μέσα είναι τα βιβλία προαπαιτούμενων γνώσεων καθώς και ο προσομοιωτής δικτύων. Εγκατάσταση του προσομοιωτή δικτύων της Cisco (Packet Tracer). Εγκατάσταση του packet analyzer Wireshark ( https://www.wireshark.org/ ) Ξεκίνημα μελέτης για catch-up με τις προαπαιτούμενες γνώσεις: Cisco Press - Computer Networking First Step Ταυτόχρονα, μελέτη το υλικό του CCNA Courses ( http://cisco.edu.mn/ ) στο οποίο θα ανατρέχετε συνέχεια καθώς θα προχωράμε στα μαθήματα. Γενικός κανόνας: Όπου βαθαίνει πιο πολύ από όσο αντέχει το νήμα της κατανόησης, πάτε παρακάτω - ο ιστός της γνώσης δεν πλέκεται με depth first αλλά με breadth first.
Προχωρημένα Θέματα Δικτύων 1η εργασία Στείλτε μου (gpall@it.auth.gr) πριν από το επόμενο μάθημα σε ένα zip (στο όνομα να έχει το ονοματεπώνυμό σας και εντός όχι ελληνικά ονόματα σε φακέλους και αρχεία) τα παραδοτέα των παρακάτω δύο ασκήσεων. ΠΡΟΣΟΧΗ! Τηρείτε αυστηρά τις εκφωνήσεις και απαντάτε μόνο με ό,τι ζητείται! 1. Άσκηση: Subnet Masks, VLANs, InterVLAN routing - Παραδοτέα: ένα pdf με πλήρες documentation κάθε βήματος (λίγα επεξηγηματικά λόγια + screenshots), καθώς και το τελικό σωσμένο .pkt αρχείο όπως θα έχει προκύψει στο τελευταίο βήμα 1.1. Κατεβάστε το αρχείο erg1_vlans.pkt και ρυθμίστε δικτυακά στοιχεία (IP, subnet mask) στα PC των δυο ομάδων, έτσι ώστε κάθε ομάδα να έχει IPs από ένα ξεχωριστό /24 subnet 1.2. Ποια PC μπορούν να κάνουν ping μεταξύ τους και ποια όχι; 1.3. Είναι πραγματικά ασφαλής ο διαχωρισμός των δυο ομάδων; Τι συμβαίνει (και γιατί) με τα pings του προηγούμενου βήματος, αν σε ένα PC της μια ομάδας και σε ένα της άλλης αλλάξετε το subnet mask σε 255.255.0.0; Τι συμπεράσματα βγάλατε από άποψη ασφάλειας δικτύων; Μετά την δοκιμή ξαναβάλτε το σωστό subnet mask.
Προχωρημένα Θέματα Δικτύων 1.4. Ορίστε δυο VLANs για τις δυο ομάδες PC, κάντε το κατάλληλο config στα switches (πρώτα ρυθμίστε την VLAN database!) ώστε να παίζουν τα pings μεταξύ των PC των ίδιων ομάδων και να κυκλοφορούν τα πακέτα τους μεταξύ των switches με VLAN tags (δείξτε το με χρήση του simulator). Αλλάξτε και το hostname των switches σε switch{1,2,3}. 1.5. Τώρα αν κάνετε μια προσωρινή αλλαγή όπως πριν του subnet mask, απαντάνε τα pings μεταξύ PC διαφορετικών ομάδων; Υπάρχει κάποιο άλλο subnet mask που μπορείτε να βάλετε για να απαντήσουν; Ποια η γνώμη σας για την ασφάλεια του διαχωρισμού των δυο ομάδων τώρα; 1.6. Ώρα για interVLAN routing. Συνδέστε το ένα intf του Router με το switch1 και το άλλο με το switch2. Δώστε κατάλληλες IP στα δυο intfs του Router ώστε το ένα interface να πατάει στο ένα VLAN και το άλλο στο άλλο. Προσοχή, ο router να συνδέεται στα switch όπως και οι απλοί υπολογιστές (να ΜΗΝ παραλαμβάνει πακέτα με VLAN tags). Πιστοποιήστε ότι τα έχετε ρυθμίσει σωστά: Πρέπει κάθε PC του ενός VLAN να μπορεί να κάνει ping στην IP του router που βάλατε στο ίδιο VLAN. 1.7. Tώρα μπορούν να κάνουν τα PC διαφορετικών ομάδων ping μεταξύ τους; Αν όχι, βρείτε τι λείπει και ρυθμίστε το. Για να βοηθηθείτε στο troubleshooting, χρησιμοποιήστε το simulation mode του Packet Tracer επιλέγοντας στο Edit Filters → ARP, ICMP. 1.8. Βάλτε ένα ping να τρέχει συνεχώς (ping -t ) από το Team A: PC1 προς το Team B: PC2. Αποσυνδέστε το link μεταξύ του router και του switch2. Tι συνέβη στο ping; Τι σημαίνει το μήνυμα που βγάζει;
Προχωρημένα Θέματα Δικτύων 1.9. Τώρα θα κάνουμε να ξαναπαίξει το ping χρησιμοποιώντας μόνο το ένα link που έχει μείνει μεταξύ του router και του switch δικτύου μας: Κάντε τις απαραίτητες ρυθμίσεις στο switch ώστε να γίνει trunk το interface του με τον router, δηλαδή ο router να λαμβάνει VLAN tagged τα πακέτα και των δυο VLANs. 1.10. Σχετικά με τις απαραίτητες ρυθμίσεις από την μεριά του router: Καθαρίστε το config από το interface που αποσυνδέσατε πριν και κάντε το shut (αυτό δεν είναι τεχνικά απαραίτητο, αλλά πάντα το housekeeping βοηθάει). Ρυθμίστε την VLAN database, σπάστε το intf που συνδέεται με το switch σε δυο subinterfaces, ένα για το κάθε VLAN στο οποίο θα πατάει. Βάλτε τις IP ρυθμίσεις σε αυτά τα δυο subintfs. Πιστοποιήστε ότι τα έχετε κάνει όλα σωστά: Πρέπει τα PC αφενός να μπορούν να κάνουν ping στον gateway τους, αφετέρου πρέπει να μπορούν να κάνουν ping όλα μεταξύ τους. Σώστε το .pkt αρχείο και κλείστε τον Packet Tracer. 1.11. Aνοίξτε το pkt αρχείο, μπείτε στο simulation mode και να αναφέρετε τις διευθύνσεις κάθε layer (2, 3) για κάθε πακέτο που ανταλλάσσεται προκειμένου να πετύχει ένα ping μεταξύ δυο PC διαφορετικών ομάδων. Nα συμπεριληφθούν τα ARP πακέτα.
Προχωρημένα Θέματα Δικτύων 2. Άσκηση: καταγραφή TCP 3-way handshake με Wireshark Ανοίξτε το Wireshark να καταγράφει την κίνηση, και επισκεφθείτε κάποιο site. Αφού φορτώσει το site σταματήστε την καταγραφή του Wireshark. Αν επισκεφθήκατε 'βαρύ' site είναι πολύ πιθανόν να άνοιξαν πολλαπλές TCP σύνοδοι· επιλέξτε μια από αυτές και σε ένα text αρχείο γράψτε ποιο site επισκεφθήκατε και ποια πακέτα (τον αύξοντα αριθμό τους που φαίνεται στην αριστερή στήλη του Wireshark) είναι αυτά που εγκαθιστούν την TCP σύνοδο. Ως παραδοτέο στείλτε επίσης και σωσμένη την καταγραφή του Wireshark (.pcap αρχείο).