Feat: Ajout de la description des topologies et des scénarios
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Bertrand Benjamin 2021-02-02 21:36:08 +01:00
parent c45cdd3ec6
commit e3b9fc1383
7 changed files with 433 additions and 493 deletions

View File

@ -1,5 +1,4 @@
import yaml
#import cairosvg
from weasyprint import HTML, CSS
import jinja2
from pathlib import Path
@ -15,45 +14,77 @@ def graph(roles):
g.add_edge(str(role["num"]), str(list(lien.keys())[0]))
return g
def build_topo(topo, roles):
plt.figure(figsize=(2,2))
def topo_logo(topo, roles):
plt.figure(figsize=(2, 2))
ax = plt.gca()
#ax.set_title(f"Forme du réseau: {topo}")
# ax.set_title(f"Forme du réseau: {topo}")
g = graph(roles)
nx.draw(g,
with_labels=True,
node_color='white',
node_size=100,
ax=ax)
_ = ax.axis('off')
nx.draw(g, node_color="white", node_size=100, ax=ax)
_ = ax.axis("off")
plt.margins(0.2)
plt.subplots_adjust(left=0, right=1, top=1, bottom=0)
plt.savefig(f"{topo}/forme.png",
transparent=True,
)
plt.savefig(
f"{topo}/logo.png",
transparent=True,
)
plt.cla()
def role_card(role, topo, template, css):
plt.figure(figsize=(4, 4))
ax = plt.gca()
# ax.set_title(f"Forme du réseau: {topo}")
g = graph(roles)
nx.draw(
g,
with_labels=True,
font_color="#fff",
font_size=20,
font_weight="bold",
node_color="#333",
node_size=1000,
ax=ax,
)
_ = ax.axis("off")
plt.margins(0.2)
plt.subplots_adjust(left=0, right=1, top=1, bottom=0)
plt.savefig(
f"{topo}/shape.png",
transparent=True,
)
plt.cla()
def topo_card(topo="", description="", scenarios=[], template="", css=[], **kwrds):
card = template.render(topo=topo, description=description, scenarios=scenarios)
dest = f"{topo}/topo.html"
with open(dest, "w") as f:
f.write(card)
HTML(dest).write_pdf(dest.replace("html", "pdf"), stylesheets=css)
def role_card(role, topo, template, css=[], **kwrds):
card = template.render(topo=topo, **role)
dest = f"{topo}/role{role['num']}.html"
with open(dest, "w") as f:
f.write(card)
#cairosvg.svg2pdf(url=dest, write_to=dest.replace("svg", "pdf"))
HTML(dest).write_pdf(dest.replace("html", "pdf"), stylesheets=[css])
HTML(dest).write_pdf(dest.replace("html", "pdf"), stylesheets=css)
with open("roles.yml", "r") as f:
topos = yaml.load(f, Loader=yaml.SafeLoader)
with open("role.html", "r") as f:
template = jinja2.Template(f.read(), undefined=jinja2.StrictUndefined)
css = CSS("role.css")
with open("config.yml", "r") as f:
config = yaml.load(f, Loader=yaml.SafeLoader)
for topo, desc in topos.items():
css = [CSS(config["css"])]
templates = {}
for name, template_file in config["templates"].items():
with open(template_file, "r") as f:
templates[name] = jinja2.Template(f.read(), undefined=jinja2.StrictUndefined)
for topo, desc in config["levels"].items():
Path(topo).mkdir(exist_ok=True)
build_topo(topo, desc["roles"])
topo_logo(topo, desc["roles"])
topo_card(**desc, topo=topo, template=templates["topo"], css=css)
for role in desc["roles"]:
role_card(role, topo, template, css)
role_card(role=role, topo=topo, template=templates["roles"], css=css)

View File

@ -0,0 +1,328 @@
---
css: role.css
templates:
roles: role.tpl.html
topo: topo.tpl.html
levels:
linéaire:
description: Les routeurs forment une chaine où chacun connait ses deux voisins.
scenarios:
- 1: Envoyer des messages.
- 2: Sommes nous tous fiables.
roles:
- num: 1
IP: 192.168.0.1
objectifs:
- Envoyer un message à 192.168.3.1
particularites:
liens:
- 2: 192.168.1.1
- num: 2
IP: 192.168.1.1
objectifs:
- Envoyer un message à 192.168.3.1
particularites:
- 2: Ne marche plus après avoir transmis 3 messages
liens:
- 1: 192.168.0.1
- 3: 192.168.2.1
- num: 3
IP: 192.168.2.1
objectifs:
- Envoyer un message à 192.168.0.1
particularites:
liens:
- 2: 192.168.1.1
- 4: 192.168.3.1
- num: 4
IP: 192.168.3.1
objectifs:
- Envoyer un message à 192.168.5.1
particularites:
liens:
- 3: 192.168.2.1
- 5: 192.168.4.1
- num: 5
IP: 192.168.4.1
objectifs:
- Envoyer un message à 192.168.1.1
particularites:
liens:
- 4: 192.168.3.1
- 6: 192.168.5.1
- num: 6
IP: 192.168.5.1
objectifs:
- Envoyer un message à 192.168.2.1
particularites:
- 2: Ne marche plus après avoir transmis 3 messages
liens:
- 5: 192.168.4.1
anneau:
description: Les routeurs forment une cercle où chacun connait ses deux voisins.
scenarios:
- 1: Envoyer des messages et enregistré ce que l'on transmet.
- 2: Sommes nous tous fiables?
roles:
- num: 1
IP: 10.10.0.1
objectifs:
- Envoyer un message à 10.10.3.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
liens:
- 6: 10.10.5.1
- 2: 10.10.1.1
- num: 2
IP: 10.10.1.1
objectifs:
- Envoyer un message à 10.10.5.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
liens:
- 1: 10.10.0.1
- 3: 10.10.2.1
- num: 3
IP: 10.10.2.1
objectifs:
- Envoyer un message à 10.10.4.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
- 2: Ne marche plus après avoir transmis 5 messages
liens:
- 2: 10.10.1.1
- 4: 10.10.3.1
- num: 4
IP: 10.10.3.1
objectifs:
- Envoyer un message à 10.10.0.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
liens:
- 3: 10.10.2.1
- 5: 10.10.4.1
- num: 5
IP: 10.10.4.1
objectifs:
- Envoyer un message à 10.10.1.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
liens:
- 4: 10.10.3.1
- 6: 10.10.5.1
- num: 6
IP: 10.10.5.1
objectifs:
- Envoyer un message à 10.10.3.1
particularites:
- Tiens un tableau où les IP des messages transmis sont notés.
liens:
- 5: 10.10.4.1
- 1: 10.10.0.1
étoile:
description: Les terminaux sont reliés à un seul routeur.
scenarios:
- 1: Le routeur tente de survivre.
- 2: Le routeur espion.
roles:
- num: 1
IP: 77.82.0.1
objectifs:
particularites:
- Après 10 transmissions, ne marche plus.
- 2: Ouvrir et noter tous les messages transmis.
liens:
- 2: 77.82.1.1
- 3: 77.82.2.1
- 4: 77.82.3.1
- 5: 77.82.4.1
- 6: 77.82.5.1
- num: 2
IP: 77.82.1.1
objectifs:
- Envoyer un message à 77.82.10.1
- Envoyer un message à 77.82.5.1 et demander une réponse
particularites:
liens:
- 1: 77.82.0.1
- num: 3
IP: 77.82.2.1
objectifs:
- Envoyer un message à 77.82.3.1
particularites:
liens:
- 1: 77.82.0.1
- num: 4
IP: 77.82.3.1
objectifs:
- Envoyer un message à 77.82.4.1
- Envoyer un message à 77.82.2.1 et demander une réponse
particularites:
liens:
- 1: 77.82.0.1
- num: 5
IP: 77.82.4.1
objectifs:
- Envoyer un message à 77.82.5.1
particularites:
liens:
- 1: 77.82.0.1
- num: 6
IP: 77.82.5.1
objectifs:
- Envoyer un message à 77.82.1.1
- Envoyer un message à 77.82.4.1 et demander une réponse
particularites:
liens:
- 1: 77.82.0.1
mesh:
description: Les terminaux sont reliés à un seul routeur et les routeurs sont connectés à plusieurs routeurs.
scenarios:
- 1: Les messages doivent trouver leur destinataire. Aurons-nous une réponse?
- 2: Sommes nous tous fiables.
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:
- 2: À 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:
particularites:
- Après 3 messages transmis, enregistre tous les messages qu'il transmet.
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:
description: Un réseau mesh pour faire du web.
scenarios:
- 1: Utilisation du serveur DNS pour accéder aux pages HTML.
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

View File

@ -36,7 +36,7 @@ header > * {
min-width: 100%;
vertical-align: middle;
}
#ip {
#title {
font-size: 2em;
display: flex;
justify-content: center;
@ -67,4 +67,9 @@ main > * {
border-width: medium 0 medium 0;
}
#description > img{
display: block;
margin: auto;
height: 200px;
width: 200px;
}

View File

@ -1,164 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07, custom)"
sodipodi:docname="role.svg">
<defs
id="defs2">
<rect
x="141.54318"
y="-27.129943"
width="121.71338"
height="102.64229"
id="rect971" />
<rect
x="0"
y="235.85597"
width="210"
height="61.144028"
id="rect40" />
<rect
x="14.790587"
y="147.87104"
width="181.01243"
height="64.921287"
id="rect32" />
<rect
x="14.093271"
y="66.389189"
width="195.90673"
height="81.350752"
id="rect26" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.45464743"
inkscape:cx="73.57707"
inkscape:cy="476.54345"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-page="true"
inkscape:window-width="1366"
inkscape:window-height="743"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#ff8080;stroke:#000000;stroke-width:1"
id="rect10"
width="210"
height="52.691414"
x="0"
y="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.7px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="10.563576"
y="36.444286"
id="text14"><tspan
sodipodi:role="line"
id="tspan12"
x="10.563576"
y="36.444286"
style="font-size:12.7px;stroke-width:0.264583">IP = {{IP}}</tspan></text>
<path
style="fill:#ff2a2a;stroke:#000000;stroke-width:1"
id="path18"
sodipodi:type="arc"
sodipodi:cx="210"
sodipodi:cy="0"
sodipodi:rx="52.018276"
sodipodi:ry="52.018276"
sodipodi:start="1.5707963"
sodipodi:end="3.1369896"
sodipodi:arc-type="slice"
d="M 210,52.018276 A 52.018276,52.018276 0 0 1 157.98227,0.23944207 L 210,0 Z" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="176.42413"
y="24.483652"
id="text22"><tspan
sodipodi:role="line"
id="tspan20"
x="176.42413"
y="24.483652"
style="stroke-width:0.264583">#{{num}}</tspan></text>
<text
xml:space="preserve"
id="text24"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect26);fill:#000000;fill-opacity:1;stroke:none;"><tspan
x="14.09375"
y="75.752412"><tspan>Objectifs:
</tspan></tspan><tspan
x="14.09375"
y="88.981538"><tspan>{{objectifs}}</tspan></tspan></text>
<text
xml:space="preserve"
id="text30"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect32);fill:#000000;fill-opacity:1;stroke:none;"><tspan
x="14.791016"
y="157.23483"><tspan>Particularités:
</tspan></tspan><tspan
x="14.791016"
y="170.46396"><tspan>{{particularites}}</tspan></tspan></text>
<rect
style="fill:#ffccaa;stroke:#000000;stroke-width:1"
id="rect36"
width="210"
height="61.144024"
x="0"
y="235.85597" />
<text
xml:space="preserve"
id="text38"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect40);fill:#000000;fill-opacity:1;stroke:none;"
transform="translate(9.2673019,8.9560368)"><tspan
x="0"
y="245.21921"><tspan>Lié à :
</tspan></tspan><tspan
x="0"
y="258.44833"><tspan>{{liens}}</tspan></tspan></text>
<text
xml:space="preserve"
id="text969"
style="fill:black;fill-opacity:1;line-height:1.25;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:10.58333333px;white-space:pre;shape-inside:url(#rect971);" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -10,9 +10,9 @@
<body>
<header>
<span id="layout">
<img src="../{{topo}}/forme.png">
<img src="../{{topo}}/logo.png">
</span>
<span id="ip">
<span id="title">
<p>IP: {{IP}}</p>
</span>
<span id="number">
@ -35,7 +35,7 @@
{% if particularites %}
<ul>
{% for p in particularites %}
<li>{{ p }}</li>
<li>{{ p | replace("{", "") | replace("}", "") | replace("'", "")}}</li>
{% endfor %}
</ul>
{% else %}
@ -47,7 +47,7 @@
{% if liens %}
<ul>
{% for l in liens %}
<li>{{ l | replace("{", "") | replace("}", "")}}</li>
<li>{{ l | replace("{", "") | replace("}", "") | replace("'", "")}}</li>
{% endfor %}
</ul>
{% endif %}

View File

@ -1,297 +0,0 @@
---
linéaire:
roles:
- num: 1
IP: 192.168.0.1
objectifs:
- Envoyer un message à 192.168.3.1
particularites:
liens:
- 2: 192.168.1.1
- num: 2
IP: 192.168.1.1
objectifs:
- Envoyer un message à 192.168.3.1
particularites:
- Ne marche plus après avoir transmis 3 messages
liens:
- 1: 192.168.0.1
- 3: 192.168.2.1
- num: 3
IP: 192.168.2.1
objectifs:
- Envoyer un message à 192.168.0.1
particularites:
liens:
- 2: 192.168.1.1
- 4: 192.168.3.1
- num: 4
IP: 192.168.3.1
objectifs:
- Envoyer un message à 192.168.5.1
particularites:
liens:
- 3: 192.168.2.1
- 5: 192.168.4.1
- num: 5
IP: 192.168.4.1
objectifs:
- Envoyer un message à 192.168.1.1
particularites:
liens:
- 4: 192.168.3.1
- 6: 192.168.5.1
- num: 6
IP: 192.168.5.1
objectifs:
- Envoyer un message à 192.168.2.1
particularites:
- Ne marche plus après avoir transmis 3 messages
liens:
- 5: 192.168.4.1
anneau:
roles:
- num: 1
IP: 10.10.0.1
objectifs:
- Envoyer un message à 10.10.3.1
particularites:
liens:
- 6: 10.10.5.1
- 2: 10.10.1.1
- num: 2
IP: 10.10.1.1
objectifs:
- Envoyer un message à 10.10.5.1
particularites:
liens:
- 1: 10.10.0.1
- 3: 10.10.2.1
- num: 3
IP: 10.10.2.1
objectifs:
- Envoyer un message à 10.10.4.1
particularites:
- Ne marche plus après avoir transmis 5 messages
liens:
- 2: 10.10.1.1
- 4: 10.10.3.1
- num: 4
IP: 10.10.3.1
objectifs:
- Envoyer un message à 10.10.0.1
particularites:
liens:
- 3: 10.10.2.1
- 5: 10.10.4.1
- num: 5
IP: 10.10.4.1
objectifs:
- Envoyer un message à 10.10.1.1
particularites:
liens:
- 4: 10.10.3.1
- 6: 10.10.5.1
- num: 6
IP: 10.10.5.1
objectifs:
- Envoyer un message à 10.10.3.1
particularites:
liens:
- 5: 10.10.4.1
- 1: 10.10.0.1
étoile:
roles:
- num: 1
IP: 77.82.0.1
objectifs:
particularites:
- Après 10 transmissions, ne marche plus.
- (*) Ouvrir et noter tous les messages transmis.
liens:
- 2: 77.82.1.1
- 3: 77.82.2.1
- 4: 77.82.3.1
- 5: 77.82.4.1
- 6: 77.82.5.1
- num: 2
IP: 77.82.1.1
objectifs:
- Envoyer un message à 77.82.10.1
- Envoyer un message à 77.82.5.1 et demander une réponse
particularites:
liens:
- 1: 77.82.0.1
- num: 3
IP: 77.82.2.1
objectifs:
- Envoyer un message à 77.82.3.1
particularites:
liens:
- 1: 77.82.0.1
- num: 4
IP: 77.82.3.1
objectifs:
- Envoyer un message à 77.82.4.1
- Envoyer un message à 77.82.2.1 et demander une réponse
particularites:
liens:
- 1: 77.82.0.1
- num: 5
IP: 77.82.4.1
objectifs:
- Envoyer un message à 77.82.5.1
particularites:
liens:
- 1: 77.82.0.1
- num: 6
IP: 77.82.5.1
objectifs:
- Envoyer un message à 77.82.1.1
- Envoyer un message à 77.82.4.1 et demander une réponse
particularites:
liens:
- 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

View File

@ -0,0 +1,37 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link href="../role.css" rel="stylesheet">
<title>{{ topo }}</title>
<meta name="description" content="topologie">
</head>
<body>
<header>
<span id="layout">
<img src="../{{topo}}/logo.png">
</span>
<span id="title">
<p>Réseau: {{ topo }}</p>
</span>
<span id="number">
</span>
</header>
<main>
<section id="description">
<h2>Description:</h2>
<p>{{ description }}</p>
<h2>Mise en place</h2>
<p>Distribuez les rôles, positionnez vous puis reliez vous pour former le réseau suivant</p>
<img src="../{{topo}}/shape.png">
<h2>Scénarios: </h2>
<ul>
{% for s in scenarios %}
<li>{{ s | replace("{", "") | replace("}", "") | replace("'", "")}}</li>
{% endfor %}
</ul>
</section>
</main>
</body>
</html>