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