0% ont trouvé ce document utile (0 vote)
22 vues6 pages

Rappel sur Python pour la Virtualisation

Ce document présente un TP sur la virtualisation des réseaux avec Mininet en Python. Il contient des explications sur des concepts de base de Python comme les variables, les listes et les dictionnaires. Le TP montre ensuite comment créer et tester des topologies simples sur Mininet avec des scripts Python.

Transféré par

abderrahmen.akkez
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues6 pages

Rappel sur Python pour la Virtualisation

Ce document présente un TP sur la virtualisation des réseaux avec Mininet en Python. Il contient des explications sur des concepts de base de Python comme les variables, les listes et les dictionnaires. Le TP montre ensuite comment créer et tester des topologies simples sur Mininet avec des scripts Python.

Transféré par

abderrahmen.akkez
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

3 IRS

Année Universitaire : 2023-2024


________________________________________________________

TRAVAUX PRATIQUES N°2


________________________________________________________
Module : Virtualisation des réseaux - 3IRS
Enseignante : Mme G.e.m. ZHIOUA

Objectifs :
- Rappel sur le langage Python
- Création de topologies sur Mininet avec des scripts Python

Partie 1 : Rappel sur Python


1- Pour lancer Python sur votre machine, faire la commande suivante
$python3

2- Utiliser l’interpréteur pour


a. Imprimer un string
>>> ‘hello World !’

b. Faire un calcul
>>> 2+3
>>> 20/5
>>> 3**2

c. Créer et utiliser une variable


>>> x=3
>>> x*5
>>> "test"*x

d. Concaténer plusieurs variables string


>>> str1="travaux"
>>> str2="pratique"
>>> str3="python"
>>> space=" "
>>> print(str1+space+str2+space+str3)
>>> print(str1,str2,str3)

1/6
3 IRS

e. Afficher plusieurs types de données


>>> x=3
>>> print("The value of x is " + str(x))
>>> type(x)
>>> x=str(x)
>>> type(x)

f. Quitter
>>> quit ()

3- Plusieurs types de données sont supportées, nous allons manipuler les 4 types :
int, float, string, Boolean. Utiliser la commande type() pour déterminer le type
de variable. Donner le résultat de ces commandes
a. >>> type (98)
b. >>> type(98.6)
c. >>> type("Hi!")
d. >>> type(True)

4- Une variable de type list est utilisée pour enregistrer plusieurs informations
dans la même variable, similaire au tableau dans d’autres langages de
programmation
a. Donner le résultat de ces commandes
>>> hostnames=["R1","R2","R3","S1","S2"]
>>> type(hostnames)
>>> len(hostnames)
>>> hostnames

b. Le premier élément de la variable list est indexé 0 et le dernier -1.


Donner le résultat de ces commandes

>>> hostnames[0]
>>> hostnames[-1]
>>> hostnames[0]="RTR1"
>>> hostnames
>>> del hostnames[3]
>>> hostnames

5- Les variables de type dictionary


>>>ipAddress={"R1":"[Link]","R2":"[Link]","R3":"[Link]"}
>>> type(ipAddress)

2/6
3 IRS

a. Donner le résultat des instructions suivantes


>>> ipAddress
>>> ipAddress['R1']
>>> ipAddress["S1"]="10.1.
>>> ipAddress

b. Donner le résultat des instructions suivantes


>>> ipAddress["R3"]=["[Link]","[Link]","[Link]"]
>>> ipAddress

6- La fonction input
>>> firstName = input("What is your first name? ")
What is your first name? User_Name
>>> print("Hello " + firstName +"!")
Hello User_Name!
>>>

7- La fonction if/elif/else
a. Copier le script suivant dans un fichier nommé [Link]
aclNum = int(input("What is the IPv4 ACL number? "))
if aclNum >= 1 and aclNum <= 99:
print("This is a standard IPv4 ACL.")
elif aclNum >=100 and aclNum <= 199:
print("This is an extended IPv4 ACL.")
else:
print("This is not a standard or extended IPv4 ACL.")

b. Exécuter plusieurs fois le script pour tester chaque condition

Partie 2 : Plus de détails.

8- Lire le cours suivant sur Python en suivant le lien ci-dessous :


[Link]
cours/introduction/

3/6
3 IRS

Partie 3 : Application

9- Le code Python suivant permet de créer un client h1 connecté directement au


client h2 et ce dernier connecté à un switch h2.

from [Link] import Topo


class Test_Topo (Topo):
def _init_(self):
“create P2P topology”

#initialize tpology
Topo._init_(self)
#Add hosts and switches
h1 = [Link](‘h1’)
h2 = [Link](‘h2’)
s1 = [Link](‘s1’)

#Add links
[Link](h2,s1)
[Link](h1,s1)
topos = {‘toptest’: (lambda: Test_Topo())}

a. Copier et Sauvegarder de code ci-dessus dans un fichier nommé par


exemple [Link]. Exécuter le code avec la commande

$ sudo mn --custom /home/mininet/mytopos/[Link]

Explorer la configuration de la topologie créée en utilisant les commandes


précédemment vues dans le TP1.

b. Combien d’interfaces disposent h1 et h2 ?


c. Quelles sont les adresses assignées
d. Configurer par le CLI l’interface réseau du client h1 et l’interface du
client h2 qui est connecté à h1 en attribuant respectivement les adresses

4/6
3 IRS

suivantes 192.168.01. et [Link] avec le netmask [Link].


Utiliser la commande ifconfig
e. Vérifier la configuration des interfaces
f. Tester par un ping la connectivité entre les machines h1 et h2

10-Soit le code Python suivant :

#!/usr/bin/python

from [Link] import Topo


from [Link] import Mininet
from [Link] import dumpNodeConnections
from [Link] import setLogLevel
from [Link] import CLI

class SingleSwitchTopo(Topo):
"Single switch connected to n hosts."
def build(self, n=2):
switch = [Link]('s1')
# Python's range(N) generates 0..N-1
for h in range(n):
host = [Link]('h%s' % (h + 1))
[Link](host, switch)

def simpleTest():
"Create and test a simple network"
topo = SingleSwitchTopo(n=4)
net = Mininet(topo)
[Link]()
print "Dumping host connections"
dumpNodeConnections([Link])
print ("Testing network connectivity")
[Link]()
CLI(net)

if __name__ == '__main__':
# Tell mininet to print useful information
setLogLevel('info')
simpleTest()

5/6
3 IRS

a. Copier et sauvegarder de code ci-dessus dans un fichier nommé par


exemple [Link]. Exécuter le code.

$ sudo mn --custom /home/mininet/mytopos/[Link]

b. Décrire les instructions

c. Dessiner la topologie obtenue en renseignant les adresses des nœuds

d. Faire des tests de ping entre les nœuds

Bon Travail

6/6

Vous aimerez peut-être aussi