You are on page 1of 10

Licence 3 I

20092010

Reseaux
T.T. Dang Ngoc
dntt@u-cergy.fr

Examen1`
ere session- R
eseaux

(Date : mardi 4 mai 2010 - duree : 3 heures)


Seule une feuille A4 recto-verso est autorisee pour toute documentation. La reponse `a certaines questions devront se faire
sur la fiche ci-jointe `a remettre `a la fin de lepreuve.

Soit le reseau de votre organisation structure logiquement de la mani`ere suivante :

Internet
RFAI
rseau rf

a
le rseau de votre organisation

R1
b
rseau r1
a

A1

R3

R2
c

b
rseau r2

B1
rseau r3

C1

B2

rseau r4
a

B3

D1

R5
b

R4

C2

rseau r5
a

R6
b

F1

F2

E1
rseau r6

F3

Tout au long de lexamen, nous designerons par Eth(Rni ) ladresse ethernet de linterface i du routeur Rn et par IP (Rni )
ladresse IP de linterface i du routeur Rn. De la meme facon, pour les hotes A1, B1, ...F1 et F2, nous designerons par Eth(N )
(resp. IP (N )), ladresse ethernet (resp. IP) de lhote N .

Question 1 Dessinez sur votre copie le schema materiel en representant tous les equipements reseaux et les cables
utilises.

Question 2 Votre fournisseur vous attribue la plage dadresse publique : 200.10.20.128 de masque 255.255.255.128.
1. de combien dadresses IP disposez-vous ainsi (en comptant les adresses reseaux et de diffusion) ?
2. numerotez les differents reseaux de votre organisation `a laide du decoupage de cette plage. Vous justifierez bri`evement
vos calculs et reporterez les adresses attribuees sur la fiche de reponse que vous noublierez pas de joindre `
a votre copie.
Vous ferez en sorte de choisir vos adresses reseaux de sorte que la machine C1 ai pour adresse IP 200.10.20.161, que
la machine D1 ai pour adresse IP 200.10.20.180 et que la machine F 1 ai pour adresse IP 200.10.20.210

3. ladresse du routeur RFAI IP (RF AIb ) = 198.18.43.166 avec pour masque 255.255.255.248. Donnez une adresse
valide pour IP (R1a ) en justifiant bri`evement votre reponse.
4. donnez les adresses IP pour chacune des interfaces des routeurs et des hotes en respectant votre plan dadressage. Vous
ecrirez ces adresses sur la fiche annexe.

Question 3
Vous ecrirez pour chaque routeur et chaque hote, la table de routage qui lui est associee. Vous noublierez pas de faire
figurer le routage par defaut. Vous ne ferez pas figurer les reseaux sur le(s) lien(s) local(aux) dans les tables de routage de
chaque routeur et h
ote. Lors de la conception de vos tables de routage, vous prendrez garde `a ce que les paquets circulant
dans votre reseau ne risquent pas de tourner en boucle et de prendre le plus court chemin.

Question 4
Vous interceptez un paquet (donne sur la fiche reponse) sur le reseau rf sur linterface R1a en entree de votre reseau.
En vous aidant de lannexe et du tableau de fiche de la question Q2.3&4, vous :
1. repondrez aux questions de la fiche (adresses ethernet et IP de la source et de la destination, protocole, port source et
destination, nom du service).
2. sachant que le paquet avait une duree de vie (TTL) de 64 (en decimal) lorsquil a ete emis, que pouvez vous en deduire
du nombre de routeurs traverses avant darriver sur le reseau rf ?

Question 5
Le paquet franchit `
a present le routeur et se retrouve sur le reseau r1.
dapr`es ladresse de destination du paquet, par quel(s) routeur(s) devra-t-il passer successivement avant darriver `
a
destination ?
Quelle modification le paquet aura-t-il subit en se retrouvant sur le reseau r1 ? Vous reporterez sur la trame de la fiche
toutes les modifications ainsi subies par le paquet.
Meme question pour chacun des autres reseaux traverses par le paquet avant darriver `a destination.

Question 6
La zone examen.fr est deleguee par les serveurs DNS de la zone f r. `a votre machine A1, ainsi que la zone inverse.
Vous recopierez et compl`eterez le tableau suivant pour les informations enumerees ci-apr`es le tableau.
nom (FQDN)

type de ressources

donnees de la ressources

Attention, le format FQDN (Fully Qualified Domain Name - Nom de Domaine Totalement Qualifie) est demande pour chaque
nom `
a resoudre dans le tableau.
1. les serveurs DNS de la zone examen.f r. sont A1, C1 ainsi quune machine exterieur nommee pontoise.cdc.ucergy.f r.
dadresse IP 193.54.113.3.
2. le serveur primaire de la zone examen.fr. est A1. Ladresse e-mail du responsable de la zone est hostmaster@examen.f r.
La synchronisation avec les serveurs secondaires se fait toutes les heures (et au cas o`
u la synchronisation echouerait,
toutes les demi-heures). La zone expire au bout dun mois, et la duree de vie minimum du fichier de zone est dune
heure.
3. les serveurs de courriers sont C1 ainsi quune machine exterieur nommee mail.linux.eu.org. dadresse IP : 193.50.38.3.
La machine C1 sera utilisee preferentiellement.
4. le noms des machines adopte la convention de nommage nom machine.examen.fr. Par exemple, la machine F1 dadresse
IP 200.10.20.210 aura pour nom DNS : f1.examen.fr.

5. la machine c1.examen.f r est egalement connue sous lalias mailhost.examen.f r ainsi que sous lalias pop3.examen.f r.
6. la machine f 2.examen.f r est egalement connue sous lalias www.examen.f r.
7. les resolutions inverses necessaires devront egalement figurer dans le tableau (format FQDN).

Question 7
Un paquet est emis par la machine D1 `
a destination de ladresse IP de diffusion du reseau.
1. Vers quelle adresse de destination IP ce paquet est-il emis ?
2. Vers quelle adresse de destination ethernet ce paquet est-il emis ?
3. Parmi les protocoles de transports suivants : ICMP, TCP et UDP, le(s)quel(s) permet(tent) demettre un paquet vers
une telle adresse de diffusion ?
4. Sur quel(s) reseau(x) ce paquet est-il transmis ?

Question 8
Le but de cet exercice est de realiser en C un programme permettant de surveiller la charge et laccessibilite des machines
du reseau. Pour cela, un serveur UDP appele gardien tourne en permanence sur le port UDP/8888 de chaque machine du
reseau. Lorsque ce serveur recoit un message de la forme : DEMANDE ETAT , le serveur retourne `a lappelant une reponse
u etat machine est une chaine decrivant letat de la machine (tr`es chargee, moyennement
REPONSE ETAT etat machine o`
chargee, peu chargee).
Le client UDP appele surveillant est lance sur une machine (par exemple F1) et interroge successivement le gardien
de chaque machine quil surveille
Pour illustrer lutilisation de ces programmes, imaginons que ladministrateur travaille sur la machine F1 et quil doit
surveiller les machines C1, C2, B1, B3, et D1. Le programme gardien est installe et tourne sur chaque h
ote du reseau.
Ladministrateur reseau qui travaille sur la machine F1 installe sur sa machine F1, le programme surveillant. Imaginons
qu`
a un instant donner, il desire connatre letat des machines C1, C2, B1, B3, et D1. Dans ce cas, il tapera :
./surveillant IP(C1) IP(C2) IP(B1) IP(B3) IP(D1)
(o`
u IP (X) est ladresse IP de la machine X).
1. ecrivez le programme serveur gardien
2. ecrivez le programme client surveillant
3. il arrive quune machine ne reponde pas (machine en panne, routeur ou reseau intermediaire inaccessible, etc.) dans ce
cas, au bout de 3 secondes, le surveillant affiche son etat comme etant inaccessible et poursuit ensuite sa t
ache. Donnez
les modifications `
a apporter afin de realiser cela.
Pour vous aider dans la conception de votre programme, vous pourrez utiliser les fonctions suivantes (que vous navez
pas a
` implementer !).
Fonctions externes :
retourne une chaine de caract`ere correspondant `a letat de la machine
extern char *calcule etat ()
Fonctions de manipulation de chanes :
copie la chaine src dans la chaine dest. char *strcpy(char *dest, const char *src)
concat`ene la chaine ch `
a la chaine dest et met le resultat dans dest. char *strcat(char *dest, const char *ch)
retourne 0 si les chaines ch1 et ch2 sont egales. int strcmp(const char *ch1, const char *ch2)
`
a partir dune chaine REPONSE ETAT etat machine renvoie la sous-chaine de caract`ere correspondant `
a etat machine.
char *extrait etat chaine (char *chaine reponse)
Rappel de quelques structures :

struct in_addr {
uint32_t s_addr;
};

/* Adresse IP binaire */

struct hostent {
char *h_name;
/*
char **h_aliases; /*
int
h_addrtype; /*
int
h_length;
/*
char **h_addr_list;/*
};

Nom officiel de lh^


ote */
Liste dalias
*/
Type dadresse de lh^
ote*/
Longueur de ladresse
*/
Liste dadresses
*/

struct sockaddr_in {
sa_family_t
sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};

struct timeval {
long
tv_sec;
long
tv_usec;
};

/*
/*
/*
/*

AF_INET */
Num
ero de port */
Adresse IP */
Z
ero */

/* secondes
*/
/* microsecondes */

Fonctions manipulees en programmation reseau.


Creation dune socket du c
ote client ou du cote serveur int socket (int famille, int type, int protocole)
Manipulation des options associees `
a une socket
int setsockopt(int s, int level, int optname, const void *optval, socklen t optlen)
Attache un point de communication (sockaddr) `a une socket. int bind (int s, struct sockaddr *adr, int lg)
Pour indiquer que la socket pourra accepter des connexions entrantes. int listen (int s, int nbmax)
Permet la connexion en acceptant un appel. int accept (int s, struct sockaddr *cli addr, int *cli len)
Permet detablir une connexion avec un serveur. int connect (int s, struct sockaddr *serv addr, int serv len)
Envoi de donnees dans la socket
ssize t write(int s, const void *buf, size t len)
ou ssize t send(int s, const void *buf, size t len, int flags)
Reception de donnees de la socket
ssize t read(int s, void *buf, size t len) ou ssize t recv(int s, void *buf, size t len, int flags)
Fermeture de socket int close(int socket)
Recevoir un message en mode non connecte
int recvfrom (int s, char *buf, int nb, int flags, struct sockaddr *from, int *len)
Envoyer un message en mode non connecte
sendto (int s, char *buf, int len, int flags, struct sockaddr *to, int tolen)
Fonctions de conversion des donnees entre lordre des octets de lhote et du reseau.
htonl : host to network (long)
htons : host to network (short)
ntohs : network to host (long)
ntohl : network to host (short)
Convertir une adresse IP sous la forme XXX.YYY.ZZZ.TTT en struct in addr et inversement.
in addr t inet addr(const char *cp)
char *inet ntoa(struct in addr in)
Obtenir ladresse dune machine connaissant son nom struct hostent *gethostbyname (char *nom)
Obtenir le nom dune machine connaissant son adresse
struct hostent *gethostbyaddr (char *adr, int lg, int type)
Multiplexage dentrees/sorties synchrones
int select(int n, fd set *readfds, fd set *writefds, fd set *exceptfds, struct timeval *timeout)
FD ZERO(fd set *set) initialisation
FD SET(int fd, fd set *set) ajout dun descripteur
FD CLR(int fd, fd set *set) supprime un descripteur
FD ISSET(int fd, fd set *set) verifie si le descripteur est dans lensemble

Fiche de r
eponse `
a rendre avec lexamen
Rappel du numero de copie : _____________________________________________

Q2.2 : Adressage des r


eseaux
Reseau

adresse reseau

masque

adresse de diffusion

CIDR

r1
r2
r3
r4
r5
r6

Q2.3 & Q2.4 : Adressage des interfaces des routeurs et h


otes
Ne vous preoccupez pas pour linstant de la premi`ere colonne (adresse ethernet), elle servira pour la question 4.

Eth(R1a ) = 00 : f a : 67 : e9 : 6f : ee

IP (R1a )

Eth(R1b ) = 00 : 00 : 5a : 24 : 55 : 8f

IP (R1b )

Eth(R2a ) = 00 : 17 : 34 : 91 : f c : 67

IP (R2a )

Eth(R2b ) = 00 : 12 : a8 : e8 : bc : 98

IP (R2b )

Eth(R2c ) = 00 : f f : 81 : aa : 00 : f e

IP (R2c )

Eth(R3a ) = 00 : f e : 98 : af : 90 : aa

IP (R3a )

Eth(R3b ) = 00 : 14 : 27 : cc : 91 : ab

IP (R3b )

Eth(R4a ) = 00 : 12 : 22 : 88 : 7b : cd

IP (R4a )

Eth(R4b ) = 00 : 87 : 19 : 76 : bf : e8

IP (R4b )

Eth(R5a ) = 00 : 18 : 12 : 91 : bb : d9

IP (R5a )

Eth(R5b ) = 00 : 98 : bc : f 1 : ca : dd

IP (R5b )

Eth(R6a ) = 00 : 91 : cb : ee : 93 : f 7

IP (R6a )

Eth(R6b ) = 00 : 53 : 98 : e9 : 91 : 18

IP (R6b )

Eth(A1) = 00 : 18 : af : e1 : 71 : d8

IP (A1)

Eth(B1) = 00 : f 1 : 9c : 19 : 69 : 12

IP (B1)

Eth(B2) = 00 : 12 : 18 : 82 : d8 : 65

IP (B2)

Eth(B3) = 00 : 98 : 54 : b4 : 12 : 29

IP (B3)

Eth(C1) = 00 : 23 : 02 : 4f : b1 : b2

IP (C1)

= 200.10.20.161

Eth(C2) = 00 : 19 : 29 : c2 : 8b : 1b

IP (C2)

Eth(D1) = 00 : 20 : 14 : b1 : 54 : cb

IP (D1)

= 200.10.20.180

Eth(E1) = 00 : 12 : 11 : 19 : 87 : 98

IP (E1)

Eth(F 1) = 00 : 43 : dd : 2c : 44 : 76

IP (F 1)

= 200.10.20.210

Eth(F 2) = 00 : f b : d9 : 2d : 1c : 99

IP (F 2)

Eth(F 3) = 00 : c1 : 98 : d1 : 2d : 42

IP (F 3)

Q3 : Tables de routage
Pour simplifier le remplissage de la table, vous pouvez utiliser la notation IP (RXi) pour les adresses IP, et les noms rx
pour les adresses reseaux.

Machine adresse du reseau `


a atteindre
R1

R2

R3

adresse IP du routeur vers


ce reseau
Machine adresse du reseau `a atteindre
A1

B1, B2,
B3

C1, C2

D1
R4

E1
R5

F1, F2,
F3
R6

adresse IP du routeur vers


ce reseau

Q4 : Analyse de trames
00
00
14
e7
f0
af
75
dd
f1
a6
8f
1e
ce

fa
b4
d2
79
d1
6c
b7
6f
44
38
fc
88
38

67
e4
00
58
15
cc
c6
48
57
ad
a5
ff

e9
f1
c2
d6
07
eb
52
93
a6
24
6f
16

6f
00
00
2f
db
ae
38
7b
d4
c2
50
18

ee
00
a1
85
26
ec
f4
39
eb
52
6f
35

00
3a
00
38
37
cb
21
9c
51
d0
fd
6e

17
11
a0
91
1a
53
37
d6
68
c8
a7
83

f2
62
6a
5a
eb
e7
ce
f3
77
9f
fb
ee

2d
89
fb
96
f8
80
59
37
61
8e
c4
b6

7e
c1
d9
44
4c
fc
e1
a5
f9
c9
22
03

de
14
3f
1d
ba
f7
a7
ae
a1
d1
2d
50

08
86
97
ba
54
62
31
90
a6
6d
2e
b2

00
aa
1c
df
d1
81
9c
05
c0
68
71
32

45
c8
44
32
51
0a
5f
42
b1
71
2c
71

00
0a
ce
3d
64
b3
87
cd
78
31
f7
d8

Completez les informations suivantes :


Adresse ethernet source : ___________________
Adresse ethernet destination : _______________
Adresse IP source : ________________________
Adresse IP destination : ____________________
Donnees transportees :
2 ICMP
2 TCP
2 UDP
Port source : _____________________________
Port destination : _________________________
Nom du service auquel est adresse le paquet :____

Q5 : Propagation de la trame
Reportez les modifications en barrant les sequences concernees et en les remplacant proprement de facon lisible par les
nouvelles sequences. Utilisez autant de paquets que de reseaux traverses. Vous navez pas `a recalculer les sommes de contr
ole
(checksum) eventuellement modifiees, simplement `a indiquer leur emplacement.
Sur le reseau r1 :

00
00
14
e7
f0
af
75
dd
f1
a6
8f
1e
ce

fa
b4
d2
79
d1
6c
b7
6f
44
38
fc
88
38

67
e4
00
58
15
cc
c6
48
57
ad
a5
ff

e9
f1
c2
d6
07
eb
52
93
a6
24
6f
16

6f
00
00
2f
db
ae
38
7b
d4
c2
50
18

ee
00
a1
85
26
ec
f4
39
eb
52
6f
35

1e 88 ff 16 18 35 6e 83 ee b6 03 50 b2 32 71 d8
ce 38
00
3a
00
38
37
cb
21
9c
51
d0
fd
6e

17
11
a0
91
1a
53
37
d6
68
c8
a7
83

f2
62
6a
5a
eb
e7
ce
f3
77
9f
fb
ee

2d
89
fb
96
f8
80
59
37
61
8e
c4
b6

7e
c1
d9
44
4c
fc
e1
a5
f9
c9
22
03

de
14
3f
1d
ba
f7
a7
ae
a1
d1
2d
50

08
86
97
ba
54
62
31
90
a6
6d
2e
b2

00
aa
1c
df
d1
81
9c
05
c0
68
71
32

45
c8
44
32
51
0a
5f
42
b1
71
2c
71

00
0a
ce
3d
64
b3
87
cd
78
31
f7
d8

08
86
97
ba
54
62
31
90
a6
6d
2e

00
aa
1c
df
d1
81
9c
05
c0
68
71

45
c8
44
32
51
0a
5f
42
b1
71
2c

00
0a
ce
3d
64
b3
87
cd
78
31
f7

Sur le reseau _________ (completer) :


00
00
14
e7
f0
af
75
dd
f1
a6
8f

fa
b4
d2
79
d1
6c
b7
6f
44
38
fc

67
e4
00
58
15
cc
c6
48
57
ad
a5

e9
f1
c2
d6
07
eb
52
93
a6
24
6f

6f
00
00
2f
db
ae
38
7b
d4
c2
50

ee
00
a1
85
26
ec
f4
39
eb
52
6f

00
3a
00
38
37
cb
21
9c
51
d0
fd

17
11
a0
91
1a
53
37
d6
68
c8
a7

f2
62
6a
5a
eb
e7
ce
f3
77
9f
fb

2d
89
fb
96
f8
80
59
37
61
8e
c4

7e
c1
d9
44
4c
fc
e1
a5
f9
c9
22

de
14
3f
1d
ba
f7
a7
ae
a1
d1
2d

Sur le reseau _________ (completer) :

00
00
14
e7
f0
af
75
dd
f1
a6
8f
1e
ce

fa
b4
d2
79
d1
6c
b7
6f
44
38
fc
88
38

67
e4
00
58
15
cc
c6
48
57
ad
a5
ff

e9
f1
c2
d6
07
eb
52
93
a6
24
6f
16

6f
00
00
2f
db
ae
38
7b
d4
c2
50
18

ee
00
a1
85
26
ec
f4
39
eb
52
6f
35

00
3a
00
38
37
cb
21
9c
51
d0
fd
6e

17
11
a0
91
1a
53
37
d6
68
c8
a7
83

f2
62
6a
5a
eb
e7
ce
f3
77
9f
fb
ee

2d
89
fb
96
f8
80
59
37
61
8e
c4
b6

7e
c1
d9
44
4c
fc
e1
a5
f9
c9
22
03

de
14
3f
1d
ba
f7
a7
ae
a1
d1
2d
50

08
86
97
ba
54
62
31
90
a6
6d
2e
b2

00
aa
1c
df
d1
81
9c
05
c0
68
71
32

45
c8
44
32
51
0a
5f
42
b1
71
2c
71

00
0a
ce
3d
64
b3
87
cd
78
31
f7
d8

08
86
97
ba
54
62
31

00
aa
1c
df
d1
81
9c

45
c8
44
32
51
0a
5f

00
0a
ce
3d
64
b3
87

Sur le reseau _________ (completer).

00
00
14
e7
f0
af
75

fa
b4
d2
79
d1
6c
b7

67
e4
00
58
15
cc
c6

e9
f1
c2
d6
07
eb
52

6f
00
00
2f
db
ae
38

ee
00
a1
85
26
ec
f4

00
3a
00
38
37
cb
21

17
11
a0
91
1a
53
37

f2
62
6a
5a
eb
e7
ce

2d
89
fb
96
f8
80
59

7e
c1
d9
44
4c
fc
e1

de
14
3f
1d
ba
f7
a7

dd 6f 48 93 7b 39 9c d6 f3 37 a5 ae 90 05 42 cd
f1 44 57 a6 d4 eb 51 68 77 61 f9 a1 a6 c0 b1 78
a6 38 ad 24 c2 52 d0 c8 9f 8e c9 d1 6d 68 71 31

8f fc a5 6f 50 6f fd a7 fb c4 22 2d 2e 71 2c f7
1e 88 ff 16 18 35 6e 83 ee b6 03 50 b2 32 71 d8
ce 38

Annexes
Trame Ethernet
0

16

24

lexercice... Ne considerez donc pas ces deux champs.


Code du Protocole ICMP (en hexadecimal) : 01
Code du Protocole TCP (en hexadecimal) : 06
Code du Protocole UDP (en hexadecimal) : 11

31

ADRESSE ETHERNET DESTINATION

ADRESSE ETHERNET SOURCE


TYPE

Segment TCP

Donnes

...
0

Type IP (en hexadecimal) : 0800

8 10

16

Port source TCP

24

31

Port destination TCP

Numro de squence
Numro dacquittement
Longueur
entete Rserv

Datagramme IP

Taille de la fenetre

Code

Somme de controle

Pointeur urgent

Options

16

24

Longueur

Version dentete Type de service


Identification
Dure de vie

Remplissage
Donnes

31

...

Longueur totale
Drapeau

Protocole

Dcalage fragment

Somme de controle dentete

Adresse IP Source

Datagramme UDP

Adresse IP destination
Options IP

Remplissage

Donnes

...

8 10

16

Port source UDP

24

31

Port destination UDP

Longueur du message

Somme de controle
Donnes

Note : options IP et Remplissage peuvent ne pas etre


presents dans la trame. Et ils ne sont pas presents dans

...

Quelques conversions hexad


ecimales vers d
ecimales
Hex.
Dec.

00
0

Hex.
Dec.

A0
160

08
8
A1
161

0A
10

11
17

AA
170

14
20
B4
180

17
23

1C
28

2D
45

C1
193

C2
194

C8
200

3A
58
CE
206

3F
63
D2
210

44
68

45
69
D9
217

62
98

67
103

6A
106

6F
111

7E
126

86
134

89
137

97
151

DE
222

E4
228

E9
233

EE
238

F1
241

F2
242

FA
250

FB
251

Quelques services bien connus


ftp-data (20/tcp), ftp (21/tcp), fsp (21/udp), ssh (22/tcp), telnet (23/tcp), smtp (25/tcp), nameserver (42/tcp), whois
(43/tcp), domain (53/tcp), domain (53/udp), mtp (57/tcp), bootps (67/udp), bootpc (68/udp), tftp (69/udp), www (80/tcp),

rtelnet (107/tcp), pop3 (110/tcp), snmp (161/udp), irc (194/tcp), ldap (389/tcp), login (513/tcp), who (513/udp), syslog
(514/udp), printer (515/tcp), nfs (2049/udp),

You might also like