Admin Reseau
Admin Reseau
Histoire
Normalisation
Le modèle de l'Internet
Exemples de couches liaison
IP
UDP et TCP
Administration réseau
Une histoire des
réseaux
La préhistoire: du tam-tam de brousse à
Edison
Le support
Tam-tam et signaux de fumée
L ’électricité et la radio
Le codage
Signaux de fumée et code Baudot
L ’acheminement
Tam-tam et « broadcast »
Le télégraphe de Chapes: mode non
connecté
Muraille de Chine et routage
Le téléphone: la commutation de circuit
La liaison série
Tous connectés!
Une histoire des réseaux
Application APDU
Présentation PPDU
Session SPDU
Transport TPDU
Réseau Paquet
Liaison Trame
Physique Bit
Le modèle OSI
Les unités de donnée:
Data
AH Data
PH Data
SH Data
TH Data
NH Data
DH Data DT
Bits
Le modèle OSI
La couche physique
-câbles électriques
-câble coaxial
-fibres optiques
-ondes radio (satellites, par exemple)
-...
-celles-ci comportent:
-des numéros de sérialisation
-une séquence permettant de contrôler
leur intégrité
-notion d acquittement
-notion de retransmission
-notion de séquencement
-notion d ’adressage
-notion de routage
-notion de comptabilité
-notion d ’interconnexions
-notion de congestion
Le modèle OSI
La couche transport
-découpage en paquets.
-concerne maintenant:
-X25 (Transpac,...)
-X500 (LDAP)
-SNA (???)
-Decnet/OSI
-l ’explosion de TCP/IP
Modèle Internet
Internet Protocol: historique
-étude financée par le DoD pour un réseau
à commutation de paquets au milieu des
années 70.
-à l ’origine: Arpanet
-sous sa forme actuelle vers 1977-1979
-normalisation par les RFCs (RFC 2400)
-IP: RFC 791
Architecture TCP/IP:
IP
Référence: http://alis.isoc.org/codage/
Codes ascii
0 1 2 3 4 5 6 7
0 NUL DLE 0 @ P ` p
1 SOH XON ! 1 A Q a q
2 STX DC2 ¨ 2 B R b r
3 ETX XOFF # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ‘ 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
C FF FS , < L \ l |
D CR GS - = M ] m }
E SO RS . > N ^ n ~
0 1 2 3 4 5 6 7
Codes ISO8859-15
Couche liaison: série
Transmission des données
Signaux:
Transmit A, B
Receive A, B
Control A,B
Indication A,B
Clock A,B
Prise DB15
Principe:
Bits 8 8 8 16 8
F A C Data CRC F
Trames de supervision:
RR (Receive Ready) 00
REJ (Reject) 01
RNR (Receiver Not Ready) 10
SREJ (Selective Reject) 11
802.3 : CSMA/CD
802.4 : Token Bus
802.5 : Token Ring
Codage Manchester : 0 = 1=
( -0,85/+0,85 Volts )
Isolant externe
Tresse métallique
1,27cm Isolant
Ame
Tranceiver
« Drop »
Bouchon
Prise « DIX »
Préambule - 7*10101010+10101011
Adresse destination - 48 bits
CRC - 32 bits
vendeur numéro
1:locale, 0:globale
0:unique, 1:groupe
Vendeur: AA 00 04 : Dec
00 00 0C : Cisco
08 00 09 : HP
08 00 11 : Tektro
Broadcast: FF FF FF FF FF FF
Types: IP 0800
Decnet 600x
ARP 0806
... (RFC 1700)
Couche liaison:Ethernet
Les répéteurs:
E1 E2 E3 E4
Avantages:
-coût
-facilité d ’installation
Inconvénients:
-fragilité
Couche liaison:Ethernet
L ’évolution vers 10BaseT:
Fonctionne sur:
-câble 2 paires: 100Base-TX (100m)
-câble 4 paires: 100Base-T4 (100m)
-fibre multi-mode: 100Base-FX (2km)
Commutation Ethernet
Couche liaison: Wi-Fi
S'intègre dans la série 802.x
Ethernet
routeur
hdlc
ppp
IP
Les adresses IP:
4 octets, notation décimale pointée:
xxx.xxx.xxx.xxx
Notion de réseau:
classe A : 0... :0.0.0.0 à 127.0.0.0
classe B : 10... : 128.0.0.0 à 191.255.0.0
classe C : 110... : 192.0.0.0 à 223.255.255.0
classe D : 1110... : adresses de « multicast
classe E : 11110...: réservées
Masque de sous-réseau:
type: ip : 0x0800
arp : 0x0806
rarp : 0x8035
1 1 1 3 2 octets
< 8 octets >
IP
Trouver l ’adresse physique d ’une machine:
ARP (Address Resolution Protocol)
(RFC 826) (RARP: RFC 903)
2 2 1 1 2 octets
type h. type p. h.l. p.l. op.
ethernet source ip.src
ethernet destination
ip destination 28 octets
adresse source
données
IP
Le paquet IP: contenu des champs
-V: Version: 4
-hl:Longueur de l ’en-tête en mots de 32 bits
-TOS: Type de service
0 1 2 3 4 5 6 7
priorité D T R
-Longueur totale en octets
-F: Drapeaux (pour la fragmentation)
-Indice de fragment (multiples de 8 octets)
-TTL: Durée de vie
-Protocole (icmp:1,tcp:6,udp:17)
-CRC: Somme de contrôle
-Adresse source
-Adresse destination
-Options
-Bourrage pour avoir un multiple de 32 bits
IP
Fragmentation des paquets:
Exemple:
en-tête en-tête
longueur 1480 longueur 5
MF, indice 0 indice 1480
IP
Les options IP:
-enregistrement de route
(Record Route) (7)
-Horodatage (68)
octets 1 1 1 1
code (7) longueur pointeur
première adresse IP
deuxième adresse IP
...
IP
ICMP : Internet Control Message Protocol
RFC792
Différents types:
0 : Réponse d ’écho
3 : Destination inaccessible
4 : Limitation de ressource
5 : Redirection
8 : Demande d ’écho
11 : Fin de vie d ’un datagramme
12 : Paramètre invalide
13 : Demande de top horaire
14 : Top horaire
17 : Demande de masque
18 : Réponse de masque
IP
ICMP
-test d ’accessibilité:
1 1 2 octets
0 ou 8 0 crc
id seq
données (facultatives)
-destination inaccessible:
1 1 2 octets
3 code crc
0
en-tête + 64 premiers bits
codes: 0 : réseau inaccessible
1 : machine inaccessible
...
9 : communication avec ce réseau
interdite
IP
ICMP
-contrôle de flux
(Source Quench)
-synchronisation d ’horloges
(Time Stamp Request/Reply)
Les solutions:
Le futur:
adresse source
adresse destination
IP V6
• Adressses:
• 3bits: Type
• 45bits: Préfixe FAI
• 16bits; Sous-réseau
• 64bits: Identification de l'hôte
• Implications:
– Check-sum TCP/UDP
– Entrées AAAA dans le
serveur de nom
– Modifications de ARP et
ICMP
Le routage IP
Principes:
un datagramme IP comprend une adresse
source et une adresse destination. Le but du
« jeu » est de remettre le datagramme a
l ’adresse destination
IP est un protocole « routable »: les adresses
IP sont structurées en « réseau »+ »machine »
entre deux machines du même réseau, on
peut avoir une remise directe
entre deux machines de réseaux différents,
il faut passer par une machine ayant une
adresse dans chaque réseau: un routeur
ce processus se répète de routeur en routeur
jusqu ’à la machine destinatrice
le routage IP est l ’ensemble des processus
qui permettent de choisir la prochaine étape
localement, la correspondance entre un
réseau et le prochain routeur s ’appelle une
route, l ’ensemble des route la table de
routage
ce processus est basé uniquement sur
l ’adresse de destination
Le routage IP
M1 N2->R M2
N2->R
réseau N1
routeur R
Réseau N2
N1->R
M3
Le routage IP
Les processus mis en jeux:
paquet
mise à jour IP
des routes
tables de choix du
routage « next hop »
niveau IP
niveau physique
trame
envoyée à
l ’adresse physique
du « next hop »
Le routage IP
la gestion des tables de routage peut être
faite manuellement (routage statique), ou
confiée à un protocole de routage (routage
dynamique)
réseau N
Sur la machine:
-elle-même sur l ’interface « loopback »
-réseau N à travers son interface ethernet
-le reste du monde à travers le routeur
netstat -rn:
Destination Gateway Genmask Flags MSS Window irtt Iface
134.158.136.0 0.0.0.0 255.255.248.0 U 1500 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
Conséquences:
-boucles de routage
-routes asymétriques
- «trous noirs »
-routages aberrants
-...
-destination « unreachable »
- «TTL exceeded »
- «redirect »
Le routage IP
Routage dynamique
- « distance-vector » (Bellman-Ford)
Chaque routeur diffuse périodiquement à
tous les routeurs qu ’il contacte la liste des
réseaux qu ’il connaît ainsi que le routeur à
utiliser et le nombre de routeurs à traverser.
Chaque routeur met alors à jour sa liste en
fonction des informations reçues.
Avantage: la simplicité
Inconvénients:
-le calcul des routes est réparti sur tous les
routeurs et peut converger lentement
-la taille des informations échangées dépend
directement de la taille du réseau
Le routage IP
Routage dynamique
Avantages:
-chaque routeur calcule indépendamment la
carte du réseau à partir des mêmes
informations que les autres.
-la taille des messages ne dépend pas du
nombre de réseau.
AS 2
R1
AS 1 R2
Le routage IP
Le protocole s ’initialise par la connexion
au
routeur voisin (« neighbor acquisition »).
Réseau source
R1 R3
R2
N1 N2 N3
R4
N4
Le routage IP
Ce n ’est pas un « vrai » protocole de
routage dans le sens où il ne transporte
pas d ’information de distance universelle
permettant de choisir une route.
Conséquences:
la connexion générale repose sur la racine
de l ’arbre (le système central de l ’Internet).
tout le trafic entre deux systèmes autonomes
passe par le même chemin physique.
In2p3 Cern
192.70.69.9 192.70.69.10
AS 789 AS 513
Le routage IP
RIP (Routing Information Protocol)
HELLO:
Historique, utilisé dans les routeurs « fuzzball »
du routage central de NSFNET.
Utilise comme métrique le délai de propagation.
Les messages sont des datagrammes IP de
protocole 63.
Assure de plus la synchronisation des horloges
des routeurs et est par certains cotés un ancêtre
de ntp.
Ref: RFC891
RIP:
Initialement conçu par Xerox.
Implémenté sur Unix (routed).
A servi de base pour de nombreux autres
protocoles (AppleTalk, Novel, 3Com, ...)
Les messages sont des datagrammes udp sur
le port 520.
Ref: RFC 1058 (version 1) 1388 (version 2)
Le routage IP
Protocoles internes:
Distance-vector:
IGRP:
Protocole propriétaire de Cisco.
Dérive de RIP.
La métrique combine les délais de propagation,
la bande passante, la fiabilité, la charge ainsi
qu ’un compte des routeurs traversés pour
éviter les boucles.
Permet la répartition du trafic sur plusieurs
lignes.
Le routage des sous-réseaux est possible.
Les messages sont des paquets IP de
protocole 63.
Ref: http://www.cisco.com/warp/public/103
Le routage IP
Protocoles internes:
link-state:
OSPF:
Le routage est hiérarchisé: le système autonome
est découpé en « area ».
Le routage dans une area est fait par des
« intra-area router ».
Les différentes « area » communiquent par
des « area border router » qui constituent le
« backbone » du domaine.
Le routage équilibré sur des chemins de coûts
égaux est supporté.
Le routage suivant le type de service est
supporté.
Le routage des sous-réseaux est possible.
Le protocole inclus un système
d ’authentification des messages échangés.
Les messages sont des paquets IP de
protocole 89.
Ref: RFC2328 (version 2)
Le routage IP
Protocoles externes:
EGP:
Historiquement, le premier des protocoles
externes.
Nombreuses limitations (topologie en
arbre, back-up, ...).
Les messages sont des datagrammes IP de
protocole 8.
Ref: RFC904
BGP:
Le protocole moderne de routage externe.
Ni vraiment « link-state », ni vraiment
« distance-vector ».
Le protocole inclut un système
d ’authentification des messages échangés.
Les échanges se font sur un transport tcp
(port 179), ce qui permet des mises à jour
incrémentale.
Supporte CIDR
Ref: RFC1267 (version 3) 1771 (version 4)
UDP et TCP
Présentation:
IP
Les « sockets »:
Fichier /etc/services
UDP et TCP
Le paquet UDP
Numéro de protocole: 17
adresse IP source
adresse IP destination
CRC =00 estproto long.àUDP
équivalent pas de CRC
7 ECHO (-)
9 DISCARD
11 USERS (-)
13 DAYTIME
19 CHARGEN (-)
37 TIME
42 NAMESERVER
67 BOOTPS
68 BOOTPC
69 TFTP
111 SUNRPC
123 NTP
161 SNMP
162 SNMP-TRAP
(-) inutilisables!
UDP et TCP
TCP: un flot de données fiable et
bidirectionnel.
Numéro de protocole: 6.
données
envoyées et données pouvant
acquittées être envoyées
données envoyées et immédiatement données en dehors
non encore acquittées de la fenêtre
UDP et TCP
TCP: format du paquet
16 bits port source 16 bits port destination
options (facultatives)
données
HL : taille de l ’en-tête
flags:URG:données urgentes présentes
ACK: accusé de réception valide
PSH : à passer immédiatement à l ’application
RST : Réinitialisation
SYN : Synchronisation des numéro de séquence
FIN: Demande de fermeture
UDP et TCP
Options:
End of list
0
No operation
1
2 4 mss
Window
code scalelongueur
factor
3 3 f
Timestamp
A B
SYN, séq=x
ACK y+1
CLOSE
LISTEN
rcv SYN
snd SYN, ACK SEND
snd SYN
rcv FIN
rcv ACK of FIN snd ACK
CLOSING LAST-ACK
timeout: 2*msl
rcv FIN TIME WAIT CLOSED
snd ACK
(msl = Maximum Segment Live ~2 mins)
UDP et TCP
TCP: temporisations et retransmissions
M = temps mesuré
RTO = R ( = 2 )
Par le récepteur:
-diminution de la fenêtre
Par l émetteur:
Utilisées par:
7 ECHO
9 DISCARD
11 USERS
13 DAYTIME
20 Données FTP
21 Controle FTP
23 TELNET
25 SMTP
37 TIME
42 NAMESERVER
79 FINGER
119 NNTP
143 IMAP
UDP et TCP
Etat des connexions: la commande netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 lyoserv1.in2p3.f.1412 lyohp4.in2p3.fr.6000 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.2654 lyoserv1.in2p3.f.2655 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.2655 lyoserv1.in2p3.f.2654 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.2653 lyotx20.in2p3.fr.6000 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.2643 lyonfs2.in2p3.fr.1031 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.2648 lyotx20.in2p3.fr.6000 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.4720 lyotx60.in2p3.fr.6000 ESTABLISHED
tcp 0 0 lyoserv1.in2p3.f.1910 lyotx22.in2p3.fr.6000 TIME_WAIT
tcp 0 0 lyoserv1.in2p3.f.2622 lyotx20.in2p3.fr.6000 ESTABLISHED
tcp 0 0 lyonfs2.in2p3.fr.1031 lyoserv2.in2p3.f.4186 ESTABLISHED
Performances de TCP:
Création du « socket »
#include <...>
int socket( int domain, int type, int protocol )
domain: AF_INET
type: SOCK_DGRAM : udp
SOCK_STREAM : tcp
protocol: 0
Structure adresse:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
UDP et TCP
Programmation socket:
Attende de connexion:
Dialogue:
Manipulation de la mémoire:
getsockopt, setsockopt
Historique
SNMP: principes
La MIB
Utilisation pratique
SNMP Version 2
Administration
réseau
Historique
Notions de
-gestion de système
-gestion de couche
-opération de couche
- la gestion de la sécurité
Administration
réseau
SNMP: Simple Network Management
Protocol ( RFC 1157 ), choisi par l ’IAB
(Internet Activity Board) en 1988.
agent SNMP
udp port 161
GetResponse
démon
Trap
udp port 162
Administration
réseau
SNMP: messages échangés
-coldStart (0)
-warmStart (1)
-linkDown (2)
-linkUp (3)
-authenticationFailure (4)
-egpNeighborLoss (5)
-enterpriseSpecific (7)
Administration
réseau
SNMP: les variables
Format:
objet.identificateur_de_l ’instance
iso.org.dod.internet.mgmt.mib.groupe. ...
1. 3. 6. 1. 2. 1. x. ...
MIB(1)
pour l ’administration(2)
de l ’Internet(1)
géré par le DoD(6)
en tant qu ’organisme(3)
enregistré par l ’ISO(1)
Administration
réseau
SNMP: les groupes de variables
-system (1)
-interfaces (2)
-ip (4)
-icmp (5)
-tcp (6)
-udp (7)
-egp (8)
-...
Administration
réseau
SNMP: exemple de variables
Variable simple:
iso.org.dod.internet.mgmt.mib.system.sysDescr.0
1. 3. 6. 1. 2. 1. 1. 1. 0
Tableau:
iso.org.dod.internet.mgmt.mib.interfaces.ifTable.ifEntry.IfSpeed.2
1. 3. 6. 1. 2. 1. 2. 2. 1. 5. 2
NetworkAddress::=
CHOICE {
internet
IpAddress
}
ipAddress::=
[APPLICATION 0]
IMPLICIT OCTET STRING(SIZE(4))
Counter::=
[APPLICATION 1]
IMPLICIT INTEGER(0..4294967295)
Gauge::=
[APPLICATION 2]
IMPLICIT INTEGER(0..4294967295)
TimeTicks::=
[APPLICATION 3]
IMPLICIT INTEGER(0..4294967295)
Opaque::=
[APPLICATION 4]
IMPLICIT OCTET STRING
END
Administration
réseau
MIB: exemple d ’entrée
{ system 1 }
ou
1.3.6.1.2.1.1.1
sysDescr OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS mandatory
::= { system 1 }
Administration
réseau
Messages échangés:
Description en ASN1:
Message::=
SEQUENCE {
version
INTEGER {
version - 1 (0)
},
community toujours 0
OCTET STRING,
data
ANY
} authentification
PDUs::=
CHOICE {
get-request PDU
GetRequest-PDU,
get-next
GetNestRequest-PDU,
get-response
GetResponse-PDU,
set-request
SetRequest-PDU,
trap
Trap-PDU
}
Administration
réseau
Messages échangés, exemple de get-response
GetResponse-PDU::=
[2]
IMPLICIT SEQUENCE {
request-id
RequestID,
INTEGER
error-status
ErrorStatus,
error-index INTEGER
ErrorIndex,
variable-bindings INTEGER
VarBindList
}
VarBindList::=
SEQUENCE OF
VarBind
VarBind::=
Sequence {
name
ObjectName,
value
ObjectSyntax
}
Administration
réseau
Messages échangés: exemple
Message::=
{
version version-1,
community « public »,
data {
getResponse {
request-ID 17,
error-status noError,
error-index 0,
variable-binding {
{
name 1.3.6.1.2.1.1.1.0,
value {
simple {
string « unix »
}
}
}
}
}
}
}
Administration
réseau
Message: encodage par BER (Binary Encoding
Rules, ISO 8825 )
Format général:
Type:
simple/composé
87654321
00 universal
01 application-wide
10 context specific
11 private
Exemples:
-entiers x ’02 ’
-chaîne x ’04 ’
-identificateur x ’06 ’
-séquence x ’30 ’
-choix[2] x ’A2 ’
Administration
réseau
Message: encodage de l ’exemple précédent:
type=séquence
longueur=42
type=entier
longueur=1 type=chaîne
30 2A valeur=0 longueur=6
02 01 00 valeur=« public »
04 06 70 75 62 6C 69 63
A2 1D type=choix[2], longueur=30
02 01 11 type=entier, longueur=1, valeur=17
02 01 00 type=entier, longueur=1, valeur=0
02 01 00 type=entier, longueur=1, valeur=0
30 12 type=séquence, longueur=18
30 10 type=séquence, longueur=16
06 08 2B 06 01 02 01 01 01 00
04 04 75 6E 69 78
type=identificateur,
longueur=8,
valeur=1.3.6.1.2.1.1.1.0
type=chaîne,
longueur=4, x ’2B ’=1*40+3
valeur=« unix »
Administration
réseau
Utilisation pratique: