From 839dc03f849baec10215a0143db5475089958c82 Mon Sep 17 00:00:00 2001 From: Christos Choutouridis Date: Sun, 27 Sep 2026 18:23:43 +0300 Subject: [PATCH] Report: Added implementation, and experiments 1 and 2 --- report/report.pdf | Bin 101101 -> 177884 bytes report/report.tex | 855 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 853 insertions(+), 2 deletions(-) diff --git a/report/report.pdf b/report/report.pdf index e788c0f2237a34acca1a8a2323315341c02b2251..4d480c0392fbee00a836f9fabd38372b182a121f 100644 GIT binary patch delta 142759 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 FzW}3&YAFB! diff --git a/report/report.tex b/report/report.tex index 4951cf5..9f45e01 100644 --- a/report/report.tex +++ b/report/report.tex @@ -1,4 +1,5 @@ -% !TEX TS-program = xelatex +% !TeX document-id = {d31ec456-0f13-4d95-9fc2-bd99b70397a1} +% !TeX TXS-program:compile = txs:///xelatex/[-shell-escape] % !TEX encoding = UTF-8 Unicode % !TEX spellcheck = el-GR % @@ -75,6 +76,44 @@ \usepackage{footnote} \usepackage{footmisc} +\usepackage{minted} +\usepackage{xcolor} % + +\setminted[python]{ + fontsize=\small, + breaklines, + autogobble, + baselinestretch=1.1, + obeytabs=true + tabsize=2, + numbersep=8pt, + startinline, + gobble=0 +} + +\setminted[json]{ + fontsize=\small, + breaklines, + autogobble, + baselinestretch=1.1, + obeytabs=true + tabsize=2, + numbersep=8pt, + startinline, + gobble=0 +} + +\setminted[bash]{ + fontsize=\small, + breaklines, + autogobble, + baselinestretch=1.1, + obeytabs=true + tabsize=2, + numbersep=8pt, + startinline, + gobble=0 +} %\definecolor{red-highlight}{rgb}{1.0, 0.11, 0.0} \definecolor{red-highlight}{rgb}{1.0, 0.31, 0.0} @@ -104,6 +143,16 @@ \newcommand{\dslDesignUrl}{\repoGithub/blob/HEAD/Mininet_DSL_Design.md} +% Experiment 1 +\newcommand{\dhcpExecutionUrl}{\repoGithub/blob/HEAD/exercise/results/exp1-dhcp/execution.txt} +\newcommand{\dhcpDecodedUrl}{\repoGithub/blob/HEAD/exercise/results/exp1-dhcp/dhcp-decoded.txt} +\newcommand{\dhcpPcapUrl}{\repoGithub/blob/HEAD/exercise/results/exp1-dhcp/dhcp.pcap} + +% Experiment 2 +\newcommand{\arpExecutionUrl}{\repoGithub/blob/HEAD/exercise/results/exp2-arp/execution.txt} +\newcommand{\arpDecodedUrl}{\repoGithub/blob/HEAD/exercise/results/exp2-arp/arp-decoded.txt} +\newcommand{\arpPcapUrl}{\repoGithub/blob/HEAD/exercise/results/exp2-arp/arp.pcap} + \begin{document} \InsertTitle @@ -144,7 +193,10 @@ Language -- DSL}, και δημιουργεί δυναμικά τους αντί \end{itemize} -\section{Υλοποίηση του Builder} +\section{Υλοποίηση} + + +% ========================= DSL ========================= \subsection{Δηλωτική γλώσσα περιγραφής τοπολογίας} @@ -312,6 +364,805 @@ Layer-3 διευθυνσιοδότηση και ενεργοποιημένη π ο σημασιολογικός έλεγχος πραγματοποιούνται σε \textbf{διαφορετικά στάδια}. +% ========================= Builder ========================= +\subsection{Υλοποίηση του Builder} + +Η υλοποίηση του builder ακολουθεί τον διαχωρισμό που εισάγει η DSL και οργανώνεται ως μία ακολουθία ανεξάρτητων +σταδίων, καθένα από τα οποία μετασχηματίζει την πληροφορία σε μία περισσότερο συγκεκριμένη αναπαράσταση. +Η δομή αυτή επιτρέπει τον σαφή διαχωρισμό ανάμεσα στην περιγραφή της τοπολογίας, στον έλεγχο της εγκυρότητάς της +και στην τελική δημιουργία και εκτέλεση του δικτύου στο Mininet. + +\subsubsection{Δομή των αρχείων} + +Ο πηγαίος κώδικας του builder βρίσκεται στον κατάλογο \texttt{source/}, ενώ η περιγραφή και τα αποτελέσματα της +συγκεκριμένης εργαστηριακής άσκησης διατηρούνται χωριστά στον κατάλογο \texttt{exercise/}. +Η βασική δομή του αποθετηρίου είναι η ακόλουθη: + +\begin{verbatim} + . + |-- source/ + | |-- build_network.py + | |-- topology_loader.py + | |-- topology_parser.py + | |-- topology_validator.py + | |-- topology_plan.py + | `-- topology_renderer.py + | + |-- exercise/ + | |-- topology.json + | |-- topology.generated.py + | `-- results/ + | + |-- Mininet_DSL_Design.md + `-- README.md +\end{verbatim} + +\begin{itemize} + \item Το \texttt{topology\_loader.py} είναι υπεύθυνο αποκλειστικά για τη φόρτωση του αρχείου JSON από το σύστημα + αρχείων και την παραγωγή της αντίστοιχης ακατέργαστης Python δομής. + + \item Το \texttt{topology\_parser.py} περιέχει τη γραμματική, τα \texttt{Enum} και τα \texttt{dataclass} αντικείμενα + που αποτελούν το τυποποιημένο σημασιολογικό μοντέλο της DSL. + + \item Το \texttt{topology\_validator.py} ελέγχει τη σημασιολογική συνέπεια της τοπολογίας, χωρίς να πραγματοποιεί + οποιαδήποτε μεταβολή στο δίκτυο. + + \item Το \texttt{topology\_plan.py} επιλύει τις αφηρημένες επιλογές της DSL και παράγει ένα πλήρως συγκεκριμένο + \texttt{ExecutionPlan}. + + \item Το \texttt{topology\_renderer.py} μετατρέπει το σχέδιο αυτό σε εκτελέσιμο Python κώδικα για το Mininet, οποίος + εξάγεται σε ξεχωριστό αρχείο και αποτελεί ένα ιδιότυπο \emph{python-listing} του renderer. + + \item Τέλος, το \texttt{build\_network.py} αποτελεί τον \textbf{coordinator} και το μοναδικό user-facing entry point, + συνδέοντας τα επιμέρους στάδια και αναλαμβάνοντας την τελική εκτέλεση του παραγόμενου προγράμματος. +\end{itemize} + + +\subsubsection{Χρήση} + +Η κανονική χρήση του builder απαιτεί μόνο το αρχείο JSON που περιγράφει την επιθυμητή τοπολογία. +Για την τοπολογία της παρούσας εργασίας η πλήρης κατασκευή και εκτέλεση πραγματοποιείται με την εντολή: + +\begin{minted}{bash} +sudo python3 source/build_network.py exercise/topology.json +\end{minted} + +Η εκτέλεση αυτή μεταγλωττίζει πρώτα την τοπολογία, δημιουργεί το αρχείο +\texttt{exercise/topology.generated.py} και στη συνέχεια εκτελεί \textbf{το ίδιο ακριβώς παραγόμενο αρχείο}. +Μετά την κατασκευή και παραμετροποίηση του δικτύου ανοίγει το Mininet CLI, από το οποίο εκτελούνται τα πειράματα. + +Κατά την ανάπτυξη είναι επίσης δυνατό να παραχθεί μόνο το ενδιάμεσο Python πρόγραμμα, χωρίς να δημιουργηθεί +κανένα network namespace ή άλλη κατάσταση στο σύστημα. +Για παράδειγμα: + +\begin{minted}{bash} +python3 source/build_network.py exercise/topology.json --emit [Optional file name] +\end{minted} + +Η μορφή αυτή δεν απαιτεί δικαιώματα root και είναι χρήσιμη για την επιθεώρηση του αποτελέσματος της +μεταγλώττισης ή για τον εντοπισμό σφαλμάτων πριν από την πραγματική εκτέλεση. +Το \texttt{--emit} μπορεί επιπλέον να δεχθεί συγκεκριμένο path για το παραγόμενο αρχείο. + +Πριν από την εκτέλεση μπορεί επίσης να πραγματοποιηθεί έλεγχος του περιβάλλοντος με: + +\begin{minted}{bash} +python3 source/build_network.py --env-check +\end{minted} + +Ο έλεγχος επιβεβαιώνει την παρουσία του Mininet, του Open vSwitch και των εργαλείων Linux που απαιτούνται από +τον builder και τα πειράματα, όπως τα \texttt{ip}, \texttt{tc}, \texttt{sysctl}, \texttt{dnsmasq}, +\texttt{dhclient}, \texttt{tcpdump} και \texttt{ping}. +Ο ίδιος έλεγχος πραγματοποιείται αυτόματα πριν από την πραγματική εκτέλεση μιας παραγόμενης τοπολογίας. + +\subsubsection{Διαχωρισμός περιγραφής τοπολογίας και runtime κατάστασης} + +Βασική σχεδιαστική επιλογή είναι ο \textbf{διαχωρισμός της δηλωμένης τοπολογίας από την κατάσταση που δημιουργείται + κατά την εκτέλεσή της}. +Το αρχείο JSON περιγράφει την επιθυμητή διαμόρφωση και τις πηγές από τις οποίες θα προκύψει η παραμετροποίηση, +χωρίς να επιχειρεί να αποθηκεύσει την παροδική κατάσταση ενός εκτελούμενου δικτύου. + +Για παράδειγμα, η δήλωση: + +\begin{minted}{json} +"net0": { + "addressing": "dhcp" +} +\end{minted} + +δεν καθορίζει ποια διεύθυνση IP θα έχει τελικά ο host. +Δηλώνει ότι η διεύθυνση πρέπει να αποκτηθεί δυναμικά από μία υπηρεσία DHCP κατά την εκτέλεση της τοπολογίας. +Αντίστοιχα, ένας στατικός σύνδεσμος στο JSON οδηγεί στη δημιουργία πραγματικών virtual Ethernet interfaces, +χωρίς τα τελικά ονόματα αυτών των interfaces να χρειάζεται να εμφανίζονται στην αρχική περιγραφή. + +Η ίδια διάκριση ισχύει για τις DHCP leases, τον ARP neighbor table, τους μετρητές πακέτων και τα αρχεία +\texttt{pcap}, τα οποία αποτελούν \emph{runtime state} και δεν ανήκουν στη δηλωτική γλώσσα. +Για τον ίδιο λόγο ο builder δεν εκκινεί αυτόματα το \texttt{dhclient} στους hosts που έχουν δηλωθεί ως DHCP +clients, καθώς η απόκτηση της διεύθυνσης αποτελεί μέρος της πειραματικής διαδικασίας της εργασίας. + +Η αρχή αυτή αποτυπώνεται συνοπτικά ως: + +\begin{verbatim} +Declarative topology Runtime state + +static address -------> configured IP address +static gateway -------> routing-table entry +DHCP addressing -------> dynamically acquired lease +link declaration -------> veth / Mininet interfaces +service declaration -------> running process +ARP entries +packet captures +counters +\end{verbatim} + +\subsubsection{Compiler-like αρχιτεκτονική} + +Η εσωτερική αρχιτεκτονική του builder σχεδιάστηκε με λογική παρόμοια με αυτή ενός \textbf{μεταγλωττιστή}. +Αντί η εφαρμογή να διαβάζει ένα JSON και να καλεί άμεσα συναρτήσεις του Mininet, η περιγραφή περνά από +διαδοχικά στάδια, καθένα από τα οποία έχει σαφώς περιορισμένη ευθύνη. + +Η συνολική ροή είναι: + +\begin{verbatim} + topology.json + ↓ + [load] + ↓ + raw JSON dictionary + ↓ + [parse] + ↓ +typed Topology model + ↓ + [validate] + ↓ + validated Topology + ↓ + [plan] + ↓ + ExecutionPlan + ↓ + [render] + ↓ +topology.generated.py + ↓ + [execute] + ↓ + Mininet CLI + ↓ + [cleanup] +\end{verbatim} + +Ο διαχωρισμός αυτός επιτρέπει σε κάθε στάδιο να εξετάζεται ανεξάρτητα και μεταφέρει σταδιακά την περιγραφή από +μία υψηλού επιπέδου δήλωση πρόθεσης σε μία πλήρως συγκεκριμένη ακολουθία ενεργειών Mininet και Linux. +Παράλληλα, κάθε κατηγορία σφάλματος ανήκει στο στάδιο που διαθέτει την απαραίτητη πληροφορία για να την εντοπίσει. + +\paragraph{Φόρτωση -- \texttt{topology\_loader.py}.} + +Το πρώτο στάδιο αφορά αποκλειστικά την πρόσβαση στο αρχείο και την ανάλυση της σύνταξης JSON. +Η δημόσια συνάρτηση \texttt{load\_topology()} διαβάζει το αρχείο και επιστρέφει ένα +\texttt{Dict[str, Any]}, χωρίς να γνωρίζει οτιδήποτε για τη σημασιολογία της DSL. + +\begin{verbatim} +raw = load_topology("exercise/topology.json") + +JSON file + | + `--> Dict[str, Any] +\end{verbatim} + +Σφάλματα όπως ανύπαρκτο αρχείο, μη έγκυρο JSON ή root αντικείμενο διαφορετικό από JSON object αναφέρονται ως +\texttt{TopologyLoadError}. +Στο σημείο αυτό δεν εξετάζεται ακόμη αν ένα \texttt{type} είναι έγκυρο ή αν ένας σύνδεσμος αναφέρεται σε +υπαρκτό κόμβο. + +\paragraph{Parsing -- \texttt{topology\_parser.py}.} + +Το δεύτερο στάδιο μετατρέπει την ακατέργαστη δομή JSON στο \textbf{τυποποιημένο σημασιολογικό μοντέλο} της DSL. +Η δημόσια συνάρτηση \texttt{parse\_topology()} κατασκευάζει αντικείμενα όπως \texttt{Topology}, \texttt{Node}, +\texttt{Interface}, \texttt{Link} και \texttt{Service}, χρησιμοποιώντας \texttt{Enum} για τα κλειστά σύνολα τιμών. + +Για παράδειγμα, ένα τμήμα JSON όπως: + +\begin{minted}{json} +{ + "node": "s1", + "interface": "auto" +} +\end{minted} + +δεν παραμένει ένα γενικό dictionary, αλλά μετατρέπεται εννοιολογικά σε: + +\begin{minted}{python} +LinkEndpoint( + node="s1", + interface=LinkInterfaceSelector.AUTO +) +\end{minted} + +Το στάδιο αυτό εφαρμόζει επίσης την \emph{αυστηρή γραμματική} της γλώσσας. +Άγνωστα πεδία ή μη υποστηριζόμενες τιμές προκαλούν \texttt{TopologyParseError}, αντί να αγνοούνται σιωπηρά. + +\paragraph{Validation -- \texttt{topology\_validator.py}.} + +Μετά το parsing η δομή είναι γραμματικά έγκυρη, αυτό όμως δεν συνεπάγεται ότι περιγράφει και συνεπές δίκτυο. +Η δημόσια συνάρτηση \texttt{validate()} πραγματοποιεί τους ελέγχους που απαιτούν γνώση περισσότερων από ενός +αντικειμένων της τοπολογίας. + +Για παράδειγμα, το ακόλουθο JSON μπορεί να αναλυθεί συντακτικά, αλλά δεν περιγράφει έγκυρη στατική διεπαφή: + +\begin{minted}{json} +"net0": { + "addressing": "static" +} +\end{minted} + +Το validation θα απορρίψει τη συγκεκριμένη περιγραφή επειδή απουσιάζει η στατική διεύθυνση. +Αντίστοιχα ελέγχονται αναφορές σε ανύπαρκτους κόμβους, επαναχρησιμοποίηση interfaces, διευθύνσεις και gateways, +διαθεσιμότητα ports για \texttt{auto}, καθώς και η συνέπεια των ρυθμίσεων της υπηρεσίας DHCP. + +Σε αντίθεση με ένα απλό fail-fast μοντέλο, ο validator συλλέγει τα προβλήματα σε αντικείμενα +\texttt{ValidationIssue} και τα επιστρέφει συγκεντρωτικά μέσω ενός \texttt{TopologyValidationError}. +Με αυτόν τον τρόπο ο χρήστης μπορεί να διορθώσει περισσότερα από ένα προβλήματα σε έναν κύκλο εκτέλεσης. + +\paragraph{Planning -- \texttt{topology\_plan.py}.} + +Το planning είναι το σημείο στο οποίο η έγκυρη πλέον περιγραφή μετατρέπεται σε μία +\textbf{πλήρως επιλυμένη ενδιάμεση αναπαράσταση}. +Η δημόσια συνάρτηση \texttt{plan()} παράγει ένα \texttt{ExecutionPlan}, στο οποίο δεν παραμένουν αφηρημένοι +selectors όπως \texttt{auto} ή άλλες αποφάσεις που πρέπει να ληφθούν από τον backend. + +Για παράδειγμα, έστω ένας switch(node) με δύο ρητά δηλωμένες λογικές διεπαφές: + +\begin{minted}{json} +{ + "name": "s1", + "type": "switch", + "interfaces": { + "client": {}, + "uplink": {} + } +} +\end{minted} + +και δύο σύνδεσμοι, από τους οποίους ο πρώτος χρησιμοποιεί \texttt{auto}, ενώ ο δεύτερος ζητά ρητά τη διεπαφή +\texttt{uplink}: + +\begin{minted}{json} +{ + "endpoints": [ + {"node": "h1", "interface": "net0"}, + {"node": "s1", "interface": "auto"} + ] +}, +{ + "endpoints": [ + {"node": "r0", "interface": "lan"}, + {"node": "s1", "interface": "uplink"} + ] +} +\end{minted} + +Πριν από την επίλυση των \texttt{auto}, ο planner εντοπίζει όλες τις ρητές αναφορές σε interfaces και δεσμεύει +τη \texttt{uplink}. +Το διαθέσιμο σύνολο διεπαφών του \texttt{s1} για αυτόματη επιλογή περιέχει επομένως μόνο τη \texttt{client}. + +\begin{minted}{python} + reserved["s1"] = {"uplink"} + free_interfaces["s1"] = ["client"] +\end{minted} + +Κατά το planning, το \texttt{auto} του πρώτου συνδέσμου επιλύεται συνεπώς στη λογική διεπαφή \texttt{client}. +Στο συγκεκριμένο παράδειγμα οι λογικές διεπαφές αντιστοιχίζονται στη συνέχεια και στα συγκεκριμένα ονόματα +διεπαφών που θα χρησιμοποιήσει το Mininet: + +\begin{verbatim} +h1:net0 -> h1-eth0 +s1:client -> s1-eth0 + +r0:lan -> r0-eth0 +s1:uplink -> s1-eth1 +\end{verbatim} + +Με αυτόν τον τρόπο μία προηγούμενη αυτόματη επιλογή δεν μπορεί να καταλάβει interface που έχει ζητηθεί ρητά από +μεταγενέστερο link. +Το \texttt{auto} λειτουργεί επομένως ως \emph{επιλογέας διαθέσιμης λογικής διεπαφής} και όχι ως όνομα +διεπαφής. + +Η συμπεριφορά είναι διαφορετική όταν το πεδίο \texttt{interfaces} έχει παραλειφθεί πλήρως από έναν κόμβο. +Σε αυτή την περίπτωση ο planner δημιουργεί συνθετικά λογικά ονόματα, όπως \texttt{auto0} και \texttt{auto1}, +τα οποία αντιστοιχίζονται στη συνέχεια σε φυσικά ονόματα όπως \texttt{s1-eth0} και \texttt{s1-eth1}. + +Στο ίδιο στάδιο αποφασίζονται και backend-specific λεπτομέρειες που δεν πρέπει να εμφανίζονται στη DSL. +Έτσι, η σημασιολογία ενός απλού Layer-2 switch μετατρέπεται από τον planner στην επιλογή +\texttt{switch\_fail\_mode = "standalone"} για το Open vSwitch. + +Ένα απλοποιημένο τμήμα του \texttt{ExecutionPlan} για το προηγούμενο παράδειγμα μπορεί επομένως να θεωρηθεί ότι +έχει τη μορφή: + +\begin{minted}{python} + PlannedLinkEndpoint( + node="s1", + logical_interface="client", + interface_name="s1-eth0" + ) + + PlannedLinkEndpoint( + node="s1", + logical_interface="uplink", + interface_name="s1-eth1" + ) + + PlannedNode( + name="s1", + type=NodeType.SWITCH, + switch_fail_mode="standalone" + ) +\end{minted} + +Ο planner δεν δημιουργεί interfaces και δεν τα εισάγει στο Mininet. +Η ευθύνη του τελειώνει όταν όλες οι αποφάσεις που απαιτούνται για την εκτέλεση έχουν αποτυπωθεί στο +\texttt{ExecutionPlan}. + +\paragraph{Rendering -- \texttt{topology\_renderer.py}.} + +Το renderer δέχεται το πλήρως επιλυμένο \texttt{ExecutionPlan} και το μετατρέπει σε ένα ολοκληρωμένο Python +πρόγραμμα μέσω της δημόσιας συνάρτησης \texttt{render\_python()}. +Σε αυτό το στάδιο \textbf{δεν πραγματοποιείται νέα σημασιολογική απόφαση}: ο renderer αποτυπώνει σε κώδικα τις +επιλογές που έχουν ήδη γίνει από τον planner. + +Για το προηγούμενο παράδειγμα μπορούν να παραχθούν εντολές της μορφής: + +\begin{minted}{python} + nodes['h1'] = net.addHost('h1', ip=None) + nodes['r0'] = net.addHost('r0', ip=None) + nodes['s1'] = net.addSwitch('s1', failMode='standalone') + + net.addLink( + nodes['h1'], + nodes['s1'], + intfName1='h1-eth0', + intfName2='s1-eth0', + ) + + net.addLink( + nodes['r0'], + nodes['s1'], + intfName1='r0-eth0', + intfName2='s1-eth1', + ) +\end{minted} + +Παρατηρείται ότι στο παραγόμενο πρόγραμμα δεν υπάρχει πλέον ο selector \texttt{auto}. +Η επιλογή \texttt{s1:client} έχει ήδη πραγματοποιηθεί από τον planner και ο renderer γνωρίζει μόνο το πλήρως +επιλυμένο ζεύγος \texttt{s1:client} και \texttt{s1-eth0}. + +Η χρήση του \texttt{ip=None} εμποδίζει το Mininet να εκχωρήσει τις δικές του προεπιλεγμένες διευθύνσεις στους +hosts, ώστε η διευθυνσιοδότηση να παραμένει αποκλειστικά υπό τον έλεγχο της DSL. +Ανάλογα με το σχέδιο, ο renderer παράγει επίσης εντολές για IP addresses, routes, sysctls, \texttt{TCLink} και +εκκίνηση του \texttt{dnsmasq}. + +Το παραγόμενο πρόγραμμα περιλαμβάνει ακόμη το πλήρες lifecycle του δικτύου: + +\begin{minted}{python} + net.build() + net.start() + + # interface configuration + # routes + # sysctls + # services + + CLI(net) + + # finally: + # stop started services + # net.stop() +\end{minted} + +\paragraph{Το παραγόμενο Python ως ενδιάμεση ``assembly''.} + +Το αρχείο \texttt{topology.generated.py} έχει σκόπιμα κεντρικό ρόλο στην αρχιτεκτονική και δεν αποτελεί απλώς +ένα προσωρινό implementation detail. +Μπορεί να θεωρηθεί ως η \emph{``assembly'' της DSL}: είναι χαμηλότερου επιπέδου από το JSON, πλήρως συγκεκριμένο, +άμεσα εκτελέσιμο και ταυτόχρονα αρκετά αναγνώσιμο ώστε να μπορεί να επιθεωρηθεί από τον χρήστη. + +Η αντιστοίχιση μπορεί να συνοψιστεί ως: + +\begin{verbatim} +topology.json: declarative source +Topology: typed semantic representation +ExecutionPlan: resolved intermediate representation +topology.generated.py: executable "assembly" +Mininet / Linux: runtime +\end{verbatim} + +Ο coordinator αποθηκεύει πάντοτε το παραγόμενο Python πριν από την εκτέλεση και στη συνέχεια εκτελεί ακριβώς +αυτό το αρχείο. +Δεν υπάρχει δεύτερος, ανεξάρτητος executor που να μεταφράζει απευθείας το \texttt{ExecutionPlan} σε Mininet +operations, αποφεύγοντας έτσι τον κίνδυνο διαφορετικής συμπεριφοράς μεταξύ του inspectable artifact και του +πραγματικού runtime. + +\paragraph{Εκτέλεση και συντονισμός -- \texttt{build\_network.py}.} + +Το \texttt{build\_network.py} συνθέτει τα προηγούμενα στάδια μέσω της συνάρτησης +\texttt{compile\_topology()}: + +\begin{minted}{python} + topology = parse_topology(load_topology(path)) + validate(topology) + execution_plan = plan(topology) + source = render_python(execution_plan) +\end{minted} + +Το παραγόμενο source γράφεται στο \texttt{topology.generated.py} και, στην κανονική λειτουργία, εκτελείται ως +ξεχωριστό Python process με τα ίδια δικαιώματα με τον coordinator. +Η πραγματική εκτέλεση απαιτεί root privileges, ενώ η φόρτωση, το parsing, το validation, το planning και το +rendering μπορούν να πραγματοποιηθούν χωρίς αυτά. + +Το generated πρόγραμμα δημιουργεί τους κόμβους και τα links, εφαρμόζει τη δικτυακή παραμετροποίηση, εκκινεί τις +προβλεπόμενες υπηρεσίες και παραδίδει τον έλεγχο στον χρήστη μέσω του Mininet CLI. +Η έξοδος από το CLI οδηγεί σε δομημένο cleanup μέσω \texttt{finally}, όπου τερματίζονται οι service processes που +ξεκίνησε το ίδιο το πρόγραμμα και στη συνέχεια καλείται το \texttt{net.stop()}. + +\subsubsection{Έλεγχος των επιμέρους σταδίων} + +Η ανεξαρτησία των σταδίων αξιοποιείται και κατά την ανάπτυξη και τον εντοπισμό σφαλμάτων. +Κάθε βασικό module του pipeline διαθέτει ένα μικρό \textbf{self-test του δημόσιου interface του}, το οποίο μπορεί +να εκτελεστεί χωρίς να δημιουργηθεί πραγματικό Mininet δίκτυο. + +Για παράδειγμα: + +\begin{minted}{bash} + python3 source/topology_loader.py + python3 source/topology_parser.py + python3 source/topology_validator.py + python3 source/topology_plan.py + python3 source/topology_renderer.py +\end{minted} + +Μία επιτυχής εκτέλεση καταλήγει σε μήνυμα της μορφής: + +\begin{verbatim} +topology_parser: self-test passed +\end{verbatim} + +Τα tests δεν περιορίζονται στην απλή εισαγωγή των modules, αλλά ελέγχουν την κύρια συμπεριφορά του αντίστοιχου +δημόσιου API. +Ο parser, για παράδειγμα, ελέγχει τόσο σωστή μετατροπή σε typed objects όσο και απόρριψη άγνωστων πεδίων, ενώ ο +validator εξετάζει τόσο έγκυρες όσο και πολλαπλά λανθασμένες τοπολογίες. + +Αντίστοιχα, ο planner ελέγχει την επίλυση του \texttt{auto}, την παραγωγή των physical interface names, την +επιλογή \texttt{standalone} για τους switches και την παραγωγή των απαιτούμενων sysctls. +Ο renderer ελέγχει ότι το παραγόμενο source είναι συντακτικά έγκυρο Python και ότι περιλαμβάνει τις αναμενόμενες +κλήσεις Mininet, τις υπηρεσίες και το cleanup. + +Ο διαχωρισμός αυτός αποδείχθηκε ιδιαίτερα χρήσιμος κατά την ανάπτυξη, καθώς ένα σφάλμα μπορεί να απομονωθεί στο +στάδιο στο οποίο εμφανίζεται, χωρίς να απαιτείται κάθε φορά εκκίνηση του Mininet με δικαιώματα root. +Το \texttt{--emit} συμπληρώνει αυτή τη διαδικασία, επιτρέποντας την επιθεώρηση της τελικής +\emph{``assembly''} πριν από οποιαδήποτε μεταβολή της πραγματικής δικτυακής κατάστασης του συστήματος. + + + +% ========================= Πείραμα 1 ========================= + +\section{Πείραμα 1 -- DHCP και διαδικασία D.O.R.A.} + +\subsection{Σκοπός και πειραματική διαδικασία} + +Σκοπός του πρώτου πειράματος είναι η παρατήρηση της διαδικασίας μέσω της οποίας ένας host χωρίς στατική +διευθυνσιοδότηση αποκτά τις απαραίτητες ρυθμίσεις δικτύου από έναν DHCP server. +Ειδικότερα, εξετάζεται η ακολουθία \textbf{Discover--Offer--Request--ACK (D.O.R.A.)} και τα αντίστοιχα πεδία των +Ethernet, IP και UDP headers. + +Η τοπολογία εκκινήθηκε από τον κατάλογο \texttt{exercise/} με την εντολή: + +\begin{minted}{bash} + sudo python3 ../source/build_network.py topology.json +\end{minted} + +Πριν από την καταγραφή αφαιρέθηκε το αποθηκευμένο lease του \texttt{dhclient}, ώστε ο \texttt{h1} να ξεκινήσει +τη διαδικασία χωρίς να επιχειρήσει να επαναχρησιμοποιήσει διεύθυνση από προηγούμενη εκτέλεση. +Αφαιρέθηκε επίσης τυχόν προηγούμενο αρχείο καταγραφής και στη συνέχεια ξεκίνησε το \texttt{tcpdump} στη διεπαφή +\texttt{h1-eth0}. + +Οι εντολές που εκτελέστηκαν στο Mininet CLI ήταν: + +\begin{minted}{bash} + minted> h1 rm -f /var/lib/dhcp/dhclient.leases + minted> h1 rm -f /tmp/dhcp.pcap + minted> h1 tcpdump -i h1-eth0 -n -w /tmp/dhcp.pcap & + minted> h1 ps aux | grep tcpdump + minted> h1 dhclient h1-eth0 + minted> h1 pkill -INT tcpdump + minted> h1 tcpdump -n -e -vv -r /tmp/dhcp.pcap +\end{minted} + +Η επιλογή \texttt{-e} κατά την ανάγνωση της καταγραφής επιτρέπει την εμφάνιση των Ethernet headers και επομένως +των MAC διευθύνσεων που απαιτούνται για την ανάλυση. +Η καταγραφή ολοκληρώθηκε χωρίς απώλειες από το \texttt{tcpdump}, με 12 πακέτα να έχουν καταγραφεί συνολικά. + +Η πλήρης συνεδρία της εκτέλεσης βρίσκεται στο \href{\dhcpExecutionUrl}{\texttt{execution.txt}}. +Το αρχικό αρχείο καταγραφής διατίθεται στο \href{\dhcpPcapUrl}{\texttt{dhcp.pcap}}, ενώ η αναλυτικά +αποκωδικοποιημένη μορφή του βρίσκεται στο \href{\dhcpDecodedUrl}{\texttt{dhcp-decoded.txt}}. + +\subsection{Αποτελέσματα καταγραφής -- Ζητούμενο 1.1} + +Η καταγραφή περιλαμβάνει την αναμενόμενη ακολουθία +\textbf{Discover $\rightarrow$ Offer $\rightarrow$ Request $\rightarrow$ ACK}, η οποία ολοκληρώθηκε επιτυχώς. +Στην πραγματική εκτέλεση καταγράφηκαν δύο DHCP Discover με το ίδιο transaction ID πριν από το πρώτο Offer. + +Η χρονική ακολουθία των σχετικών DHCP μηνυμάτων ήταν: + +\begin{verbatim} +10:58:29.655251 DHCP Discover +10:58:32.214530 DHCP Discover +10:58:32.670897 DHCP Offer +10:58:32.671193 DHCP Request +10:58:32.673025 DHCP ACK +10:58:32.678132 DHCP Offer +\end{verbatim} + +Μεταξύ του πρώτου Discover και του πρώτου Offer παρατηρήθηκαν τρία ARP probes από τον DHCP server για τη +διεύθυνση \texttt{192.168.1.131} και στη συνέχεια ένα ICMP Echo Request προς την ίδια διεύθυνση. +Ο έλεγχος αυτός εισήγαγε καθυστέρηση στην πρώτη απάντηση του server, με αποτέλεσμα ο \texttt{dhclient} να +επαναμεταδώσει το Discover περίπου τρία δευτερόλεπτα μετά το πρώτο. + +Και τα δύο Discover χρησιμοποιούν το ίδιο transaction ID, \texttt{0x0ecb5a2e}, επομένως αποτελούν μέρος της +ίδιας προσπάθειας απόκτησης διεύθυνσης και όχι δύο ανεξάρτητες διαδικασίες DHCP. +Παρά την επαναμετάδοση, η διαδικασία ολοκληρώθηκε κανονικά με Offer, Request και ACK και ο \texttt{h1} έλαβε τη +διεύθυνση \texttt{192.168.1.131}. +Μετά το ACK καταγράφηκε ακόμη ένα Offer, χωρίς αυτό να επηρεάζει την ήδη ολοκληρωμένη παραχώρηση της διεύθυνσης. + +Η βασική τετράδα D.O.R.A. δίνει τα ακόλουθα στοιχεία: + +\begin{table}[H] + \centering + \small + \begin{tabularx}{\textwidth}{ + >{\raggedright\arraybackslash}p{1.3cm} + >{\raggedright\arraybackslash}p{5.2cm} + >{\raggedright\arraybackslash}p{2.0cm} + >{\raggedright\arraybackslash}X + } + \textbf{Μήνυμα} & + \textbf{IP} & + \textbf{UDP port} & + \textbf{MAC} \\ \hline + +% \textbf{Μήνυμα} & +% \textbf{από $\rightarrow$ προς} & +% \textbf{UDP port από $\rightarrow$ προς} & +% \textbf{MAC από $\rightarrow$ προς} \\ \hline + + Discover & + \texttt{0.0.0.0 $\rightarrow$ 255.255.255.255} & + \texttt{68 $\rightarrow$ 67} & + \texttt{12:07:f8:bf:6e:ff $\rightarrow$ ff:ff:ff:ff:ff:ff} \\ + + Offer & + \texttt{192.168.1.1 $\rightarrow$ 192.168.1.131} & + \texttt{67 $\rightarrow$ 68} & + \texttt{82:3b:16:e9:bb:17 $\rightarrow$ 12:07:f8:bf:6e:ff} \\ + + Request & + \texttt{0.0.0.0 $\rightarrow$ 255.255.255.255} & + \texttt{68 $\rightarrow$ 67} & + \texttt{12:07:f8:bf:6e:ff $\rightarrow$ ff:ff:ff:ff:ff:ff} \\ + + ACK & + \texttt{192.168.1.1 $\rightarrow$ 192.168.1.131} & + \texttt{67 $\rightarrow$ 68} & + \texttt{82:3b:16:e9:bb:17 $\rightarrow$ 12:07:f8:bf:6e:ff} \\ + \end{tabularx} + \caption{Διευθύνσεις και UDP θύρες των μηνυμάτων της διαδικασίας D.O.R.A.} +\end{table} + +\subsection{Ανάλυση της διαδικασίας D.O.R.A.} + +Στο \textbf{Discover} ο \texttt{h1} δεν διαθέτει ακόμη διεύθυνση IPv4 και αναζητά διαθέσιμο DHCP server στο +τοπικό δίκτυο. +Για τον λόγο αυτό χρησιμοποιεί ως source IP την \texttt{0.0.0.0} και μεταδίδει το μήνυμα προς την περιορισμένη +broadcast διεύθυνση \texttt{255.255.255.255}, με Ethernet destination \texttt{ff:ff:ff:ff:ff:ff}. + +Στο \textbf{Offer} ο DHCP server του \texttt{r0}, με διεύθυνση \texttt{192.168.1.1}, προσφέρει στον client τη +διεύθυνση \texttt{192.168.1.131}. +Στο ίδιο μήνυμα περιλαμβάνονται επίσης η μάσκα \texttt{255.255.255.0}, η broadcast διεύθυνση +\texttt{192.168.1.255} και η προεπιλεγμένη πύλη \texttt{192.168.1.1}. + +Ο \texttt{h1} απαντά με \textbf{Request}, στο οποίο δηλώνει τόσο τον server που επέλεξε όσο και τη διεύθυνση που +ζητά να του εκχωρηθεί. +Τα αντίστοιχα options που καταγράφηκαν είναι: + +\begin{minted}{text} +Server-ID Option: 192.168.1.1 +Requested-IP Option: 192.168.1.131 +\end{minted} + +Τέλος, με το \textbf{ACK} ο server επιβεβαιώνει την παραχώρηση της \texttt{192.168.1.131} και αποστέλλει τις +τελικές παραμέτρους του lease. +Στην καταγραφή το lease time είναι \texttt{43200} δευτερόλεπτα και η προεπιλεγμένη πύλη που παρέχεται στον +client είναι η \texttt{192.168.1.1}. + +\subsection{Broadcast μετάδοση του DHCP Request -- Ζητούμενο 1.2} + +Το DHCP Request της αρχικής διαδικασίας απόκτησης διεύθυνσης μεταδόθηκε ως \textbf{broadcast} τόσο στο επίπεδο +Ethernet όσο και στο επίπεδο IP. +Στην καταγραφή παρατηρούνται συγκεκριμένα: + +\begin{minted}{text} +Ethernet destination: ff:ff:ff:ff:ff:ff +IP destination: 255.255.255.255 +UDP ports: 68 -> 67 +\end{minted} + +Κατά τη στιγμή αποστολής του Request η παραχώρηση της διεύθυνσης δεν έχει ακόμη ολοκληρωθεί και ο client +συνεχίζει να χρησιμοποιεί την \texttt{0.0.0.0} ως source IP. +Η broadcast μετάδοση επιτρέπει επιπλέον σε όλους τους DHCP servers του τοπικού δικτύου να παρατηρήσουν ποια +προσφορά επέλεξε ο client. + +Ο επιλεγμένος server αναγνωρίζεται από το \texttt{Server-ID} του Request, ενώ τυχόν άλλοι servers μπορούν να +διαπιστώσουν ότι οι δικές τους προσφορές δεν επιλέχθηκαν. +Το ACK του \texttt{192.168.1.1} ολοκληρώνει τελικά τη διαδικασία και επιβεβαιώνει ότι η +\texttt{192.168.1.131} μπορεί πλέον να χρησιμοποιηθεί από τον \texttt{h1}. + + + +% ========================= Πείραμα 2 ========================= + +\section{Πείραμα 2 -- Πρωτόκολλο ARP} + +\subsection{Σκοπός και πειραματική διαδικασία} + +Σκοπός του δεύτερου πειράματος είναι η παρατήρηση της διαδικασίας αντιστοίχισης μιας γνωστής διεύθυνσης IPv4 +στην αντίστοιχη διεύθυνση MAC μέσω του πρωτοκόλλου \textbf{ARP}. +Ειδικότερα, εξετάζεται η αρχική επίλυση της διεύθυνσης του \texttt{h2} από τον \texttt{h1} και η διαφορετική +μορφή μετάδοσης του ARP Request και του ARP Reply. + +Η τοπολογία εκκινήθηκε εκ νέου και οι δύο hosts του Subnet A απέκτησαν διευθύνσεις μέσω DHCP. +Οι διευθύνσεις που εκχωρήθηκαν κατά τη συγκεκριμένη εκτέλεση ήταν: +\begin{itemize} + \item \texttt{\textbf{192.168.1.131/24}} για τον \texttt{\textbf{h1}} και + \item \texttt{\textbf{192.168.1.164/24}} για τον \texttt{\textbf{h2}}. +\end{itemize} + +Οι αρχικές εντολές της εκτέλεσης ήταν: + +\begin{minted}{bash} + sudo python3 ../source/build_network.py topology.json + + minted> h1 ip -4 -br addr + minted> h2 ip -4 -br addr + minted> h1 dhclient h1-eth0 + minted> h2 dhclient h2-eth0 + minted> h1 ip -4 -br addr + minted> h2 ip -4 -br addr +\end{minted} + +Πριν από το ping διαγράφηκε ο neighbor table του \texttt{h1}, ώστε να μην υπάρχει ήδη γνωστή αντιστοίχιση +μεταξύ της IP και της MAC διεύθυνσης του \texttt{h2}. +Η κενή κατάσταση του πίνακα επιβεβαιώθηκε με την εντολή \texttt{ip neigh show}. + +\begin{minted}{bash} + minted> h1 ip neigh flush all + minted> h1 ip neigh show + minted> h1 rm -f /tmp/arp.pcap + minted> h1 tcpdump -i h1-eth0 -n arp -w /tmp/arp.pcap & + minted> h1 ping -c 1 192.168.1.164 + minted> h1 ip neigh show + minted> h1 pkill -INT tcpdump + minted> h1 tcpdump -n -e -vv -r /tmp/arp.pcap +\end{minted} + +Το φίλτρο \texttt{arp} του \texttt{tcpdump} περιορίζει την καταγραφή στα ARP frames, ενώ η επιλογή \texttt{-e} +κατά την ανάγνωση εμφανίζει τα Ethernet headers και επομένως τις MAC διευθύνσεις πηγής και προορισμού. +Η καταγραφή ολοκληρώθηκε χωρίς απώλειες, με τέσσερα ARP frames να έχουν καταγραφεί συνολικά. + +Η πλήρης συνεδρία της εκτέλεσης βρίσκεται στο \href{\arpExecutionUrl}{\texttt{execution.txt}}. +Το αρχικό αρχείο καταγραφής διατίθεται στο \href{\arpPcapUrl}{\texttt{arp.pcap}}, ενώ η αποκωδικοποιημένη μορφή του βρίσκεται στο +\href{\arpDecodedUrl}{\texttt{arp-decoded.txt}}. + +\subsection{Αποτελέσματα καταγραφής} + +Μετά την εκκαθάριση του neighbor table, το πρώτο ping από τον \texttt{h1} προς τον \texttt{h2} απαίτησε την +επίλυση της MAC διεύθυνσης που αντιστοιχεί στην \texttt{192.168.1.164}. +Το πρώτο ζεύγος πακέτων της καταγραφής ήταν: + +\begin{minted}{text} +4a:6f:2a:18:f4:80 > ff:ff:ff:ff:ff:ff +Request who-has 192.168.1.164 tell 192.168.1.131 + +82:c0:6d:ae:3f:56 > 4a:6f:2a:18:f4:80 +Reply 192.168.1.164 is-at 82:c0:6d:ae:3f:56 +\end{minted} + +Από την καταγραφή προκύπτει επομένως ότι στη συγκεκριμένη εκτέλεση οι δύο hosts είχαν τα ακόλουθα στοιχεία: + +\begin{table}[H] + \centering + \begin{tabular}{lll} + \textbf{Host} & \textbf{IPv4} & \textbf{MAC} \\ \hline + \texttt{h1} & \texttt{192.168.1.131} & \texttt{4a:6f:2a:18:f4:80} \\ + \texttt{h2} & \texttt{192.168.1.164} & \texttt{82:c0:6d:ae:3f:56} \\ + \end{tabular} + \caption{Διευθύνσεις των hosts που συμμετέχουν στο πείραμα ARP.} +\end{table} + +Το ping ολοκληρώθηκε επιτυχώς και, μετά την ανταλλαγή ARP, ο neighbor table του \texttt{h1} περιείχε (λογικά) την +αντιστοίχιση: + +\begin{minted}{text} +192.168.1.164 dev h1-eth0 lladdr 82:c0:6d:ae:3f:56 REACHABLE +\end{minted} + +Το αποτέλεσμα αυτό επιβεβαιώνει ότι ο \texttt{h1} έμαθε τη MAC διεύθυνση του \texttt{h2} μέσω της προηγούμενης +ανταλλαγής ARP και μπορεί πλέον να δημιουργεί απευθείας Ethernet frames προς αυτόν. + +\subsection{Ανάλυση του ARP Request και Reply -- Ζητούμενο 2.1} + +Κατά την αποστολή του αρχικού ARP Request ο \texttt{h1} γνωρίζει τη διεύθυνση IP του προορισμού, αλλά +\textbf{δεν γνωρίζει ακόμη τη MAC διεύθυνσή του}. +Δεν μπορεί επομένως να δημιουργήσει ένα unicast Ethernet frame προς τον \texttt{h2}. + +Για τον λόγο αυτό το ARP Request μεταδίδεται προς την Ethernet broadcast διεύθυνση: + +\begin{minted}{text} +Source MAC: 4a:6f:2a:18:f4:80 +Destination MAC: ff:ff:ff:ff:ff:ff + +Who has 192.168.1.164? +Tell 192.168.1.131 +\end{minted} + +Όλοι οι κόμβοι του ίδιου Layer-2 broadcast domain μπορούν να λάβουν το Request, αλλά μόνο ο host στον οποίο +ανήκει η \texttt{192.168.1.164} πρέπει να απαντήσει. +Στην συγκεκριμένη περίπτωση ο host αυτός είναι ο \texttt{h2}. + +Το ARP Reply, αντίθετα, μεταδίδεται ως \textbf{unicast}: + +\begin{minted}{text} +Source MAC: 82:c0:6d:ae:3f:56 +Destination MAC: 4a:6f:2a:18:f4:80 + +192.168.1.164 is-at 82:c0:6d:ae:3f:56 +\end{minted} + +Ο \texttt{h2} μπορεί να στείλει την απάντηση απευθείας στον \texttt{h1}, επειδή το ARP Request περιλαμβάνει τα +στοιχεία του αποστολέα και επομένως παρέχει στον \texttt{h2} τη MAC διεύθυνση στην οποία πρέπει να απαντήσει. +Δεν υπάρχει συνεπώς ανάγκη το Reply να μεταδοθεί σε όλους τους κόμβους του broadcast domain. + +\textbf{Η MAC προορισμού του αρχικού ARP Request είναι επομένως \texttt{ff:ff:ff:ff:ff:ff}, +ενώ το ARP Reply επιστρέφει ως unicast στη MAC \texttt{4a:6f:2a:18:f4:80} του \texttt{h1}.} + +\subsection{Πρόσθετη παρατήρηση} + +Στην καταγραφή εμφανίστηκε περίπου πέντε δευτερόλεπτα αργότερα και ένα δεύτερο ζεύγος ARP Request/Reply προς +την αντίθετη κατεύθυνση: + +\begin{minted}{text} +82:c0:6d:ae:3f:56 > 4a:6f:2a:18:f4:80 +Request who-has 192.168.1.131 tell 192.168.1.164 + +4a:6f:2a:18:f4:80 > 82:c0:6d:ae:3f:56 +Reply 192.168.1.131 is-at 4a:6f:2a:18:f4:80 +\end{minted} + +Σε αντίθεση με το αρχικό Request, το δεύτερο Request έχει ήδη ως Ethernet destination τη MAC του +\texttt{h1} και επομένως είναι unicast. +Η ανταλλαγή αυτή σχετίζεται με τη διαχείριση και επιβεβαίωση της κατάστασης του neighbor cache από το Linux και +δεν αποτελεί την αρχική επίλυση που προκαλεί το ping. + +Για το ζητούμενο του πειράματος εξετάζεται συνεπώς το \textbf{πρώτο ζεύγος Request/Reply}, στο οποίο φαίνεται +καθαρά η μετάβαση από broadcast αναζήτηση σε unicast απάντηση. +Παρόλα αυτά το γεγονός ότι υπήρχε δεύτερο ζεύγος μας προβλημάτισε ιδιαίτερα μέχρι να ανακαλύψουμε τον λόγο ύπαρξής του! + + + + + + + + + \subsection{Συμπεράσματα}