Feat: topo mesh et mesh dns
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Bertrand Benjamin 2021-02-02 12:18:51 +01:00
parent 90d082ba08
commit c45cdd3ec6
2 changed files with 157 additions and 8 deletions

View File

@ -21,6 +21,7 @@ def build_topo(topo, roles):
#ax.set_title(f"Forme du réseau: {topo}") #ax.set_title(f"Forme du réseau: {topo}")
g = graph(roles) g = graph(roles)
nx.draw(g, nx.draw(g,
with_labels=True,
node_color='white', node_color='white',
node_size=100, node_size=100,
ax=ax) ax=ax)
@ -34,7 +35,6 @@ def build_topo(topo, roles):
def role_card(role, topo, template, css): def role_card(role, topo, template, css):
card = template.render(topo=topo, **role) card = template.render(topo=topo, **role)
Path(topo).mkdir(exist_ok=True)
dest = f"{topo}/role{role['num']}.html" dest = f"{topo}/role{role['num']}.html"
with open(dest, "w") as f: with open(dest, "w") as f:
f.write(card) f.write(card)
@ -49,6 +49,9 @@ with open("role.html", "r") as f:
css = CSS("role.css") css = CSS("role.css")
for topo, desc in topos.items(): for topo, desc in topos.items():
Path(topo).mkdir(exist_ok=True)
build_topo(topo, desc["roles"]) build_topo(topo, desc["roles"])
for role in desc["roles"]: for role in desc["roles"]:

View File

@ -1,5 +1,5 @@
--- ---
lineaire: linéaire:
roles: roles:
- num: 1 - num: 1
IP: 192.168.0.1 IP: 192.168.0.1
@ -49,6 +49,7 @@ lineaire:
- Ne marche plus après avoir transmis 3 messages - Ne marche plus après avoir transmis 3 messages
liens: liens:
- 5: 192.168.4.1 - 5: 192.168.4.1
anneau: anneau:
roles: roles:
- num: 1 - num: 1
@ -101,12 +102,14 @@ anneau:
- 5: 10.10.4.1 - 5: 10.10.4.1
- 1: 10.10.0.1 - 1: 10.10.0.1
etoile: étoile:
roles: roles:
- num: 1 - num: 1
IP: 77.82.0.1 IP: 77.82.0.1
objectifs: objectifs:
particularites: particularites:
- Après 10 transmissions, ne marche plus.
- (*) Ouvrir et noter tous les messages transmis.
liens: liens:
- 2: 77.82.1.1 - 2: 77.82.1.1
- 3: 77.82.2.1 - 3: 77.82.2.1
@ -116,36 +119,179 @@ etoile:
- num: 2 - num: 2
IP: 77.82.1.1 IP: 77.82.1.1
objectifs: objectifs:
- Envoyer un message à 77.82.5.1 - Envoyer un message à 77.82.10.1
- Envoyer un message à 77.82.5.1 et demander une réponse
particularites: particularites:
liens: liens:
- 1: 77.82.0.1 - 1: 77.82.0.1
- num: 3 - num: 3
IP: 77.82.2.1 IP: 77.82.2.1
objectifs: objectifs:
- Envoyer un message à 77.82.4.1 - Envoyer un message à 77.82.3.1
particularites: particularites:
liens: liens:
- 1: 77.82.0.1 - 1: 77.82.0.1
- num: 4 - num: 4
IP: 77.82.3.1 IP: 77.82.3.1
objectifs: objectifs:
- Envoyer un message à 77.82.0.1 - Envoyer un message à 77.82.4.1
- Envoyer un message à 77.82.2.1 et demander une réponse
particularites: particularites:
liens: liens:
- 1: 77.82.0.1 - 1: 77.82.0.1
- num: 5 - num: 5
IP: 77.82.4.1 IP: 77.82.4.1
objectifs: objectifs:
- Envoyer un message à 77.82.1.1 - Envoyer un message à 77.82.5.1
particularites: particularites:
liens: liens:
- 1: 77.82.0.1 - 1: 77.82.0.1
- num: 6 - num: 6
IP: 77.82.5.1 IP: 77.82.5.1
objectifs: objectifs:
- Envoyer un message à 77.82.3.1 - Envoyer un message à 77.82.1.1
- Envoyer un message à 77.82.4.1 et demander une réponse
particularites: particularites:
liens: liens:
- 1: 77.82.0.1 - 1: 77.82.0.1
mesh:
roles:
- num: 1
IP: 77.82.1.1
objectifs:
particularites:
- Envoyer message à 131.240.1.1 et demander une réponse.
liens:
- 2: 77.82.0.1
- num: 2
IP: 77.82.0.1
objectifs:
particularites:
- À partir du 2e message transmis, ouvre les messages, barre ce qui est écrit et écrit quelque chose d'autre.
liens:
- 1: 77.82.1.1
- 3: 131.240.0.1
- 7: 51.12.0.1
- num: 3
IP: 131.240.0.1
objectifs:
- Après 5 messages transmis, arrête de transmettre les messages.
particularites:
liens:
- 4: 131.240.1.1
- 2: 77.82.0.1
- 5: 151.10.0.1
- 7: 51.12.0.1
- num: 4
IP: 131.240.1.1
objectifs:
- Envoyer message à 151.10.1.1 et demander une réponse.
particularites:
liens:
- 3: 131.240.0.1
- num: 5
IP: 151.10.0.1
objectifs:
particularites:
liens:
- 6: 151.10.1.1
- 3: 131.240.0.1
- 7: 51.12.0.1
- num: 6
IP: 151.10.1.1
objectifs:
- Envoyer message à 51.12.1.1 et demander une réponse.
particularites:
liens:
- 5: 151.10.0.1
- num: 7
IP: 51.12.0.1
objectifs:
- Après 3 messages transmis, enregistre tous les messages qu'il transmet.
particularites:
liens:
- 8: 51.12.1.1
- 2: 77.82.0.1
- 3: 131.240.0.1
- 5: 151.10.0.1
- num: 8
IP: 51.12.1.1
objectifs:
- Envoyer message à 77.81.1.1 et demander une réponse.
particularites:
liens:
- 7: 51.12.0.1
mesh_dns:
roles:
- num: 1
IP: 77.82.1.1
objectifs:
- Se connecter à 2gt1.stex pour demander la page HTML
particularites:
- Utilisateur du web.
- Connaît le serveur DNS à l'adresse 131.82.0.1
liens:
- 2: 77.82.0.1
- num: 2
IP: 77.82.0.1
objectifs:
particularites:
liens:
- 1: 77.82.1.1
- 3: 131.240.0.1
- 7: 51.12.0.1
- num: 3
IP: 131.240.0.1
objectifs:
particularites:
liens:
- 4: 131.240.1.1
- 2: 77.82.0.1
- 5: 151.10.0.1
- 7: 51.12.0.1
- num: 4
IP: 131.240.1.1
objectifs:
- Répondre aux requêtes DNS.
particularites:
- Serveur DNS, connait les noms de domaine suivants
- SNT.stex à l'adresse 131..240.1.1
- 2gt1.stex à l'adresse 151.10.1.1
liens:
- 3: 131.240.0.1
- num: 5
IP: 151.10.0.1
objectifs:
particularites:
liens:
- 6: 151.10.1.1
- 3: 131.240.0.1
- 7: 51.12.0.1
- num: 6
IP: 151.10.1.1
objectifs:
- Renvoyer une page HTML quand on nous le demande.
particularites:
- Serveur Web connu sous le nom de domaine 2gt1.stex
liens:
- 5: 151.10.0.1
- num: 7
IP: 51.12.0.1
objectifs:
particularites:
liens:
- 8: 51.12.1.1
- 2: 77.82.0.1
- 3: 131.240.0.1
- 5: 151.10.0.1
- num: 8
IP: 51.12.1.1
objectifs:
- Renvoyer une page HTML quand on nous le demande.
particularites:
- Serveur Web connu sous le nom de domaine SNT.stex
liens:
- 7: 51.12.0.1