Report: Small changes
This commit is contained in:
Binary file not shown.
+28
-28
@@ -298,8 +298,8 @@ Layer-3 διευθυνσιοδότηση και ενεργοποιημένη π
|
|||||||
|
|
||||||
Οι διεπαφές \textbf{ανήκουν στους κόμβους} και προσδιορίζονται από λογικά ονόματα, τα οποία δεν απαιτείται να
|
Οι διεπαφές \textbf{ανήκουν στους κόμβους} και προσδιορίζονται από λογικά ονόματα, τα οποία δεν απαιτείται να
|
||||||
ταυτίζονται με τα ονόματα που θα δημιουργηθούν τελικά στο Linux.
|
ταυτίζονται με τα ονόματα που θα δημιουργηθούν τελικά στο Linux.
|
||||||
Για παράδειγμα, μία διεπαφή με λογικό όνομα \texttt{lan} μπορεί κατά την υλοποίηση να αντιστοιχιστεί στη φυσική
|
Για παράδειγμα, μία διεπαφή με λογικό όνομα \texttt{lan} μπορεί κατά την υλοποίηση να αντιστοιχιστεί στη
|
||||||
διεπαφή \texttt{r0-eth0}.
|
συγκεκριμένη διεπαφή Linux/Mininet \texttt{r0-eth0}.
|
||||||
Η επιλογή αυτή επιτρέπει στο αρχείο JSON να χρησιμοποιεί ονόματα που εκφράζουν τον ρόλο μιας διεπαφής και όχι
|
Η επιλογή αυτή επιτρέπει στο αρχείο JSON να χρησιμοποιεί ονόματα που εκφράζουν τον ρόλο μιας διεπαφής και όχι
|
||||||
λεπτομέρειες της διαδικασίας δημιουργίας της.
|
λεπτομέρειες της διαδικασίας δημιουργίας της.
|
||||||
|
|
||||||
@@ -417,8 +417,8 @@ Layer-3 διευθυνσιοδότηση και ενεργοποιημένη π
|
|||||||
\item Το \texttt{topology\_plan.py} επιλύει τις αφηρημένες επιλογές της DSL και παράγει ένα πλήρως συγκεκριμένο
|
\item Το \texttt{topology\_plan.py} επιλύει τις αφηρημένες επιλογές της DSL και παράγει ένα πλήρως συγκεκριμένο
|
||||||
\texttt{ExecutionPlan}.
|
\texttt{ExecutionPlan}.
|
||||||
|
|
||||||
\item Το \texttt{topology\_renderer.py} μετατρέπει το σχέδιο αυτό σε εκτελέσιμο Python κώδικα για το Mininet, οποίος
|
\item Το \texttt{topology\_renderer.py} μετατρέπει το σχέδιο αυτό σε εκτελέσιμο Python κώδικα για το Mininet, ο οποίος
|
||||||
εξάγεται σε ξεχωριστό αρχείο και αποτελεί ένα ιδιότυπο \emph{python-listing} του renderer.
|
εξάγεται σε ξεχωριστό αρχείο και αποτελεί το εκτελέσιμο Python listing της πλήρως επιλυμένης τοπολογίας.
|
||||||
|
|
||||||
\item Τέλος, το \texttt{build\_network.py} αποτελεί τον \textbf{coordinator} και το μοναδικό user-facing entry point,
|
\item Τέλος, το \texttt{build\_network.py} αποτελεί τον \textbf{coordinator} και το μοναδικό user-facing entry point,
|
||||||
συνδέοντας τα επιμέρους στάδια και αναλαμβάνοντας την τελική εκτέλεση του παραγόμενου προγράμματος.
|
συνδέοντας τα επιμέρους στάδια και αναλαμβάνοντας την τελική εκτέλεση του παραγόμενου προγράμματος.
|
||||||
@@ -635,7 +635,7 @@ selectors όπως \texttt{auto} ή άλλες αποφάσεις που πρέ
|
|||||||
\texttt{uplink}:
|
\texttt{uplink}:
|
||||||
|
|
||||||
\begin{minted}{json}
|
\begin{minted}{json}
|
||||||
{
|
[{
|
||||||
"endpoints": [
|
"endpoints": [
|
||||||
{"node": "h1", "interface": "net0"},
|
{"node": "h1", "interface": "net0"},
|
||||||
{"node": "s1", "interface": "auto"}
|
{"node": "s1", "interface": "auto"}
|
||||||
@@ -646,7 +646,7 @@ selectors όπως \texttt{auto} ή άλλες αποφάσεις που πρέ
|
|||||||
{"node": "r0", "interface": "lan"},
|
{"node": "r0", "interface": "lan"},
|
||||||
{"node": "s1", "interface": "uplink"}
|
{"node": "s1", "interface": "uplink"}
|
||||||
]
|
]
|
||||||
}
|
}]
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
Πριν από την επίλυση των \texttt{auto}, ο planner εντοπίζει όλες τις ρητές αναφορές σε interfaces και δεσμεύει
|
Πριν από την επίλυση των \texttt{auto}, ο planner εντοπίζει όλες τις ρητές αναφορές σε interfaces και δεσμεύει
|
||||||
@@ -677,7 +677,7 @@ s1:uplink -> s1-eth1
|
|||||||
|
|
||||||
Η συμπεριφορά είναι διαφορετική όταν το πεδίο \texttt{interfaces} έχει παραλειφθεί πλήρως από έναν κόμβο.
|
Η συμπεριφορά είναι διαφορετική όταν το πεδίο \texttt{interfaces} έχει παραλειφθεί πλήρως από έναν κόμβο.
|
||||||
Σε αυτή την περίπτωση ο planner δημιουργεί συνθετικά λογικά ονόματα, όπως \texttt{auto0} και \texttt{auto1},
|
Σε αυτή την περίπτωση ο planner δημιουργεί συνθετικά λογικά ονόματα, όπως \texttt{auto0} και \texttt{auto1},
|
||||||
τα οποία αντιστοιχίζονται στη συνέχεια σε φυσικά ονόματα όπως \texttt{s1-eth0} και \texttt{s1-eth1}.
|
τα οποία αντιστοιχίζονται στη συνέχεια σε συγκεκριμένα ονόματα διεπαφών όπως \texttt{s1-eth0} και \texttt{s1-eth1}.
|
||||||
|
|
||||||
Στο ίδιο στάδιο αποφασίζονται και backend-specific λεπτομέρειες που δεν πρέπει να εμφανίζονται στη DSL.
|
Στο ίδιο στάδιο αποφασίζονται και backend-specific λεπτομέρειες που δεν πρέπει να εμφανίζονται στη DSL.
|
||||||
Έτσι, η σημασιολογία ενός απλού Layer-2 switch μετατρέπεται από τον planner στην επιλογή
|
Έτσι, η σημασιολογία ενός απλού Layer-2 switch μετατρέπεται από τον planner στην επιλογή
|
||||||
@@ -875,13 +875,13 @@ Ethernet, IP και UDP headers.
|
|||||||
Οι εντολές που εκτελέστηκαν στο Mininet CLI ήταν:
|
Οι εντολές που εκτελέστηκαν στο Mininet CLI ήταν:
|
||||||
|
|
||||||
\begin{minted}{bash}
|
\begin{minted}{bash}
|
||||||
minted> h1 rm -f /var/lib/dhcp/dhclient.leases
|
mininet> h1 rm -f /var/lib/dhcp/dhclient.leases
|
||||||
minted> h1 rm -f /tmp/dhcp.pcap
|
mininet> h1 rm -f /tmp/dhcp.pcap
|
||||||
minted> h1 tcpdump -i h1-eth0 -n -w /tmp/dhcp.pcap &
|
mininet> h1 tcpdump -i h1-eth0 -n -w /tmp/dhcp.pcap &
|
||||||
minted> h1 ps aux | grep tcpdump
|
mininet> h1 ps aux | grep tcpdump
|
||||||
minted> h1 dhclient h1-eth0
|
mininet> h1 dhclient h1-eth0
|
||||||
minted> h1 pkill -INT tcpdump
|
mininet> h1 pkill -INT tcpdump
|
||||||
minted> h1 tcpdump -n -e -vv -r /tmp/dhcp.pcap
|
mininet> h1 tcpdump -n -e -vv -r /tmp/dhcp.pcap
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
Η επιλογή \texttt{-e} κατά την ανάγνωση της καταγραφής επιτρέπει την εμφάνιση των Ethernet headers και επομένως
|
Η επιλογή \texttt{-e} κατά την ανάγνωση της καταγραφής επιτρέπει την εμφάνιση των Ethernet headers και επομένως
|
||||||
@@ -1037,12 +1037,12 @@ UDP ports: 68 -> 67
|
|||||||
\begin{minted}{bash}
|
\begin{minted}{bash}
|
||||||
sudo python3 ../source/build_network.py topology.json
|
sudo python3 ../source/build_network.py topology.json
|
||||||
|
|
||||||
minted> h1 ip -4 -br addr
|
mininet> h1 ip -4 -br addr
|
||||||
minted> h2 ip -4 -br addr
|
mininet> h2 ip -4 -br addr
|
||||||
minted> h1 dhclient h1-eth0
|
mininet> h1 dhclient h1-eth0
|
||||||
minted> h2 dhclient h2-eth0
|
mininet> h2 dhclient h2-eth0
|
||||||
minted> h1 ip -4 -br addr
|
mininet> h1 ip -4 -br addr
|
||||||
minted> h2 ip -4 -br addr
|
mininet> h2 ip -4 -br addr
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
Πριν από το ping διαγράφηκε ο neighbor table του \texttt{h1}, ώστε να μην υπάρχει ήδη γνωστή αντιστοίχιση
|
Πριν από το ping διαγράφηκε ο neighbor table του \texttt{h1}, ώστε να μην υπάρχει ήδη γνωστή αντιστοίχιση
|
||||||
@@ -1050,14 +1050,14 @@ UDP ports: 68 -> 67
|
|||||||
Η κενή κατάσταση του πίνακα επιβεβαιώθηκε με την εντολή \texttt{ip neigh show}.
|
Η κενή κατάσταση του πίνακα επιβεβαιώθηκε με την εντολή \texttt{ip neigh show}.
|
||||||
|
|
||||||
\begin{minted}{bash}
|
\begin{minted}{bash}
|
||||||
minted> h1 ip neigh flush all
|
mininet> h1 ip neigh flush all
|
||||||
minted> h1 ip neigh show
|
mininet> h1 ip neigh show
|
||||||
minted> h1 rm -f /tmp/arp.pcap
|
mininet> h1 rm -f /tmp/arp.pcap
|
||||||
minted> h1 tcpdump -i h1-eth0 -n arp -w /tmp/arp.pcap &
|
mininet> h1 tcpdump -i h1-eth0 -n arp -w /tmp/arp.pcap &
|
||||||
minted> h1 ping -c 1 192.168.1.164
|
mininet> h1 ping -c 1 192.168.1.164
|
||||||
minted> h1 ip neigh show
|
mininet> h1 ip neigh show
|
||||||
minted> h1 pkill -INT tcpdump
|
mininet> h1 pkill -INT tcpdump
|
||||||
minted> h1 tcpdump -n -e -vv -r /tmp/arp.pcap
|
mininet> h1 tcpdump -n -e -vv -r /tmp/arp.pcap
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
Το φίλτρο \texttt{arp} του \texttt{tcpdump} περιορίζει την καταγραφή στα ARP frames, ενώ η επιλογή \texttt{-e}
|
Το φίλτρο \texttt{arp} του \texttt{tcpdump} περιορίζει την καταγραφή στα ARP frames, ενώ η επιλογή \texttt{-e}
|
||||||
|
|||||||
Reference in New Issue
Block a user