Université BORDEAUX 1 | U.F.R. Mathématiques et Informatique |
Epreuve de J.Bétréma | 23 janvier 2002 |
Durée: 3 heures
Tous documents interdits.
Parmi les règles de configuration du pare-feu, il y a les deux suivantes :
> set norecurse > set debug > www.cs.chalmers.se Serveur: donaser.labri.u-bordeaux.fr Address: 147.210.8.187 ------------ Got answer: HEADER: opcode = QUERY, id = 2, rcode = NOERROR header flags: response, recursion avail. questions = 1, answers = 0, authority records = 4, additional = 4 QUESTIONS: www.cs.chalmers.se, type = A, class = IN AUTHORITY RECORDS: -> [...] -> [...] -> chalmers.se nameserver = ns.ckoia.chalmers.se ttl = 42710 (11 hours 51 mins 50 secs) -> chalmers.se nameserver = dns.uu.se ttl = 42710 (11 hours 51 mins 50 secs) ADDITIONAL RECORDS: -> [...] -> [...] -> ns.ckoia.chalmers.se internet address = 192.36.120.11 ttl = 42710 (11 hours 51 mins 50 secs) -> dns.uu.se internet address = 130.238.7.10 ttl = 13359 (3 hours 42 mins 39 secs)Expliquer :
> www.cs.chalmers.se 192.36.120.11 Serveur: [192.36.120.11] Address: 192.36.120.11 ------------ Got answer: HEADER: opcode = QUERY, id = 3, rcode = NOERROR header flags: response, auth. answer, recursion avail. questions = 1, answers = 1, authority records = 4, additional = 4 QUESTIONS: www.cs.chalmers.se, type = A, class = IN ANSWERS: -> www.cs.chalmers.se internet address = 129.16.237.85 ttl = 43200 (12 hours) AUTHORITY RECORDS: -> [...] -> [...] -> chalmers.se nameserver = ns.ckoia.chalmers.se ttl = 43200 (12 hours) -> chalmers.se nameserver = dns.uu.se ttl = 43200 (12 hours) ADDITIONAL RECORDS: -> [...] -> [...] -> ns.ckoia.chalmers.se internet address = 192.36.120.11 ttl = 43200 (12 hours) -> dns.uu.se internet address = 130.238.7.10 ttl = 8864 (2 hours 27 mins 44 secs)Expliquer les différences entre cette réponse et la précédente.
En déduire que quelqu'un a envoyé au serveur DNS du LaBRI une requête concernant le domaine chalmers.se huit minutes et dix secondes avant l'auteur de cet énoncé (ce n'est pourtant pas lui, juré) ! Quelle aurait été, à votre avis, la réponse du serveur du LaBRI sans cette coïncidence ?
Comment interpréter les ttl différents des deux enregistrements concernant dns.uu.se ?
> set type=MX > cs.chalmers.se 192.36.120.11 Serveur: [192.36.120.11] Address: 192.36.120.11 ------------ Got answer: HEADER: opcode = QUERY, id = 7, rcode = NOERROR header flags: response, auth. answer, recursion avail. questions = 1, answers = 2, authority records = 4, additional = 5 QUESTIONS: cs.chalmers.se, type = MX, class = IN ANSWERS: -> cs.chalmers.se MX preference = 0, mail exchanger = pheidippides.md.chalmers.se ttl = 43200 (12 hours) -> cs.chalmers.se MX preference = 100, mail exchanger = chalmers.se ttl = 43200 (12 hours) AUTHORITY RECORDS: -> [...] -> [...] -> [...] -> [...] ADDITIONAL RECORDS: -> pheidippides.md.chalmers.se internet address = 129.16.237.91 ttl = 43200 (12 hours) -> [...] -> [...] -> [...] -> [...]Expliquer la question posée et la réponse obtenue.
Expliquer pourquoi cela assure que toutes les erreurs doubles sont détectées dans un en-tête ATM.
En utilisant cette valeur z(10) = 13, construire des exemples d'erreurs quadruples non détectées dans un en-tête ATM.
La norme 802.3x est une extension du protocole 802.3, présenté en cours. Sauf à la dernière question, on considère le protocole original, et non l'extension 802.3x.
Ce protocole a été conçu pour un réseau half-duplex : une station peut émettre ou recevoir, mais pas les deux à la fois. Expliquer brièvement pourquoi ce fonctionnement half-duplex est une conséquence directe des principes essentiels du protocole.
Expliquer ce que sont les méthodes de contrôle de flux, pour éviter la congestion ou la surcharge du réseau.
Que signifie le sigle CSMA/CD ? Que signifie "diamètre" dans ce contexte ?
La norme pour un débit de 100 Mbits/sec prévoit que les trames (paquets) ont une taille minimale de 64 octets. Montrer que cette taille n'est plus suffisante pour un débit de 1 Gbit/sec, avec un diamètre de réseau de 200 mètres.
Note : ici et dans la suite on simplifiera les calculs en supposant que le signal se propage à 200 000 km/sec.
Que signifie CRC field ? Quel est l'intérêt de regrouper les petits paquets (packet bursting) ?
On suppose que la station A commence à émettre à l'instant 0, et la station B, distante de 200 mètres, à l'instant 0.8.
Expliquer brièvement comment on peut faire de l'Ethernet full-duplex, et accessoirement pourquoi rien de ce qui précède n'est utilisé (cf. paragraphe 1 : tous les produits sur le marché sont full-duplex).
En particulier, on utilise le codage en base 64 pour transformer un fichier binaire en un fichier ASCII : trois octets sont codés par quatre caractères (choisis parmi 64).
Ceci autorise la transmission de programmes (exécutables) par courrier électronique, qui peuvent être exécutés à la demande de l'utilisateur, ou même sans lui demander son avis si le lecteur de courrier est mal configuré ou défectueux.
Règle 2 : le pare-feu mémorise les adresses sources (en-tête IP) des paquets entrants récents, et les ports de destination (en-tête TCP), pour repérer d'éventuels attaquants à ajouter à la liste noire. Pour refuser les paquets issus de sites ainsi répertoriés, il suffit de consulter l'adresse source, dans l'en-tête IP.
Note : affirmer qu'un port actif permet ipso facto de prendre le contrôle de la machine est une absurdité qui dénote une absence de réflexion inquiétante concernant les principes d'Internet.
xyz.com MX cs.securite.frD'autre part, il sera recommandé d'enregistrer dans le cache du serveur DNS (et de mettre à jour régulièrement, en interrogeant un serveur DNS du domaine securite.fr), l'adresse IP du serveur de courrier externe :
cs.securite.fr A s1.s2.s3.s4
Note : les alias (enregistrements de type CNAME), qui permettent d'attribuer plusieurs noms à une même machine, n'ont rien à voir avec la question posée.
Note : les réponses qui proposent une attaque par déni de service, en submergeant de faux messages le serveur de courrier externe, ne sont pas valides, car une telle attaque est indépendante de la configuration du pare-feu qui fait l'objet de cet exercice.
Tous les RR retournés par ce serveur ont une durée de vie initialisée à 43200 secondes (12h), à l'exception du dernier (voir ci-dessous). Cela permet de calculer depuis combien de temps certains d'entre eux ont été placés dans le cache du serveur DNS du LaBRI, à savoir 43200 - 42710 = 490 secondes, soit 8 minutes et 10 secondes. Le serveur DNS du LaBRI a donc traité une requête récursive (c'est le cas normal) concernant le domaine chalmers.se 8 minutes et 10 secondes avant de traiter celle qui fait l'objet de ce devoir.
Sinon, le serveur DNS du LaBRI aurait ignoré les noms des serveurs ayant autorité sur chalmers.se, et aurait retourné la liste des serveurs ayant autorité sur le domaine "top-level" se (Suède). C'était d'ailleurs ce qu'attendait l'auteur de l'énoncé, qui a dû modifier son sujet en conséquence...
La réponse contient deux enregistrements concernant dns.uu.se : l'un, dans l'ensemble AUTHORITY RECORDS, est de type NS (name server), et fait partie de la base de données du serveur ns.ckoia.chalmers.se (qui, autrement dit, a autorité sur lui) : son TTL est donc initialisé à 12h ; l'autre, dans l'ensemble ADDITIONAL RECORDS, est de type A (adresse), et se trouve dans le cache du serveur ns.ckoia.chalmers.se (qui n'a pas autorité sur le domaine uu.se), d'où une durée de vie peu élevée.
Ce dernier enregistrement (RR) est curieux, car il n'est pas d'usage de considérer un noeud interne de l'arbre des noms (ici chalmers.se) comme un nom de machine, mais apparemmment rien ne l'interdit, l'ensemble ADDITIONAL RECORDS contenait une adresse IP pour ce noeud, qui a été effacée de l'énoncé pour ne pas troubler d'éventuels (mais rares) étudiants scrupuleux.
x8 + x2 + x + 1 | x + 1 | |||||||
| x7 + x6 + x5 + x4 + x3 + x2 + 1 |
x13 + x10 + 1 | x7 + x6 + x5 + x4 + x3 + x2 + 1 | |||||
| x6 + x5 + x3 + x2 + 1 |
Puisque h(x) divise 1 + x10 + x13 , on a aussi z(13) = 10.
En multipliant par x10, on obtient x10 + x20 + x23 = 0 modulo h(x), et en ajoutant les deux équations : 1 + x13 + x20 + x23 = 0 modulo h(x). Donc si les bits 0, 13, 20 et 23 sont inversés, l'erreur n'est pas détectée.
Un étudiant a fait remarquer fort justement que g(x) = x8 + x2 + x + 1 comporte quatre termes, et que donc une erreur portant sur les bits 0, 1, 2 et 8 (ou [1, 2, 3, 9], ou [2, 3, 4, 10], etc.) n'est pas détectée, ce qui fournit un exemple beaucoup plus direct d'erreur quadruple non détectée.
Lorsqu'un réseau Ethernet devient chargé, les collisions augmentent. Dans ce cas l'algorithme prévoit qu'une station attend un temps aléatoire avant de tenter d'émettre à nouveau, et ce temps aléatoire est doublé, en moyenne, chaque fois qu'une collision se répète. Cet algorithme assure que le débit provenant d'une station diminue lorsque la charge du réseau augmente.
Note : parler ici des méthodes TCP de contrôle de flux est une faute grave (il y a deux couches d'écart entre Ethernet et TCP), la phrase à commenter, recopiée en tête de cette question, est sans aucune ambiguïté. Le contrôle de flux par fenêtre coulissante est utilisé dans certains protocoles de la couche liaison (par exemple HDLC), dans le cas où il s'agit de gérer une liaison bidirectionnelle point à point (c'est-à-dire entre les deux extrémités de la ligne) ; ce n'est pas le cas d'Ethernet (d'ailleurs les trames 802.3 ne sont pas numérotées).
Notes : ajouter que les stations sont situées "dans un cercle" est périlleux, puisque toutes sont (conceptuellement) alignées sur le même bus.
CRC field désigne le code détecteur d'erreur, ajouté en fin de trame (Cyclic Redundant Code). On regroupe les petits paquets (packet bursting) pour éviter de les remplir avec des octets de bourrage (padding) afin d'atteindre la taille de 512 octets : ces octets de bourrage diminuent le débit utile du réseau.
Note : ces réponses ne demandent pas vraiment une page entière de calculs...
La durée d'émission de ce signal (100 bits) est 0.1 μs, donc B émet un brouillage entre les instants 1 et 1.1, et le canal devient libre pour A à l'instant 2.1 ; A émet un brouillage entre les instants 1.8 et 1.9, et le canal devient libre pour B à l'instant 2.9 .
Choix (1, 1) : A réémet à l'instant 8 (en laissant la tranche de temps entre 4 et 8 μs disponible), et B à l'instant 8.8, d'où nouvelle collision.
Choix (0, 1) : A réémet à l'instant 4, et comme la trame comporte au moins 512 octets, soit 4096 bits, sa durée d'émission dépasse 4 μs, donc à l'instant 8.8 le canal n'est pas libre pour B, qui doit attendre une tranche de temps ultérieure pour émettre.
Choix (1, 0) : B réémet à l'instant 4.8, et la durée d'émission dépasse 4 μs, donc à l'instant 8 le canal n'est pas libre pour A, qui doit attendre une tranche de temps ultérieure pour émettre.
Comme l'indique explicitement le document, Ethernet full-duplex exige que les stations soient reliées à un commutateur qui se charge de mettre en mémoire (buffer) les trames et de les aiguiller, ce qui supprime les collisions.
Note : doubler simplement le bus ne résout aucun problème, car le bus émetteur pour une station est forcément récepteur pour toutes les autres, et il faudrait donc autant de bus que de stations.