Académique Documents
Professionnel Documents
Culture Documents
Martin Heusse
Routage IP etc.
1
Plan
• Le routage : présentation du problème
• Comment ça peut marcher ?
– Le modèle en couches
– Les adresses correspondantes
– La hiérarchisation (des réseaux IPv4)
– affectation automatique d’adresse
– IPv6
1
Plan
• Le routage : présentation du problème
• Comment ça peut marcher ?
– Le modèle en couches
– Les adresses correspondantes
– La hiérarchisation (des réseaux IPv4)
– affectation automatique d’adresse
– IPv6
• Comment ça marche ?
– Commutation au niveau 2 ou au niveau 3
– Algorithmes de routages :
3 Vecteur de distance (Distance Vector )
Routage IP etc.
2
Routage IP etc.
3
Exemple de paquet
• Ethernet : niveau 2
Destination: 00:07:ec:cd:18:ca (Cisco_cd:18:ca)
Source: 00:03:93:59:cb:54 (Apple_59:cb:54)
Type: IP (0x0800)
• IP : nivau 3
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 60
Identification: 0x037e
Flags: 0x04
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0x7ef9
Source: flocon.imag.fr (129.88.38.153)
Destination: www.google.com (216.239.55.100)
Routage IP etc.
4
• TCP : niveau 4
Source port: 49156 (49156)
Destination port: http (80)
Sequence number: 3653725605
Ack number: xxxxxxxx
Header length: 40 bytes
Flags: 0x0002 (SYN)
Window size: 32768
Checksum: 0xb873
Options: (20 bytes)
Routage IP etc.
5
Paquet IPv4
RFC 791
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Routage IP etc.
6
Routage IP etc.
7
Traduction d’adresse
Routage IP etc.
8
Un exemple : ARP
• Ethernet : une trame portant l’adresse ff:ff:ff:ff:ff:ff est cap-
turée par tout le monde
• Exemple (utilisation de la diffusion au niveau 2) : Arp
requête Arp :
0:3:93:59:cb:54 Broadcast arp 42:
arp who-has delos.imag.fr tell flocon.imag.fr
réponse Arp :
0:10:83:35:34:4 0:3:93:59:cb:54 arp 64:
arp reply delos.imag.fr is-at 0:10:83:35:34:4
⇒ Transmission vers la bonne station
– Ce sont l’adresse de la destination et le sous réseau sur lequel on se trouve qui
déterminent si une requête ARP est émise
• IPv6 : Pas de protocole ARP !
Tout se passe au niveau IP Neighbor Discovery :
– Envoi d’un paquet ICMP « neighbor solicitation »
– Réponse « neighbor advertisement »
Mécanisme semblable pour la découverte du routeur
Routage IP etc.
9
Adresses IPv4
• 32 bits
– a.b.c.d (a, b, c, d ∈ [0, 255])
• <adresse-réseau><h^ ote>
• L’« adresse-réseau » est commune à toutes les stations du sous-
réseau pour lesquelles (par exemple) une requête ARP sera générée.
Architecture recommandée :
réseau niveau 2 ⇐⇒ sous-réseau IP
VLAN (réseau virtuel) ⇐⇒ sous-
réseau IP
• La taille du sous-réseau (et le nombre de bits qui l’identifient) est
variable, et spécifiée par le masque de sous-réseau
• masque « + » adresses IP → adresse de broadcast IP
en0: flags=8863<UP,BROADCAST,b6,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 129.88.38.153 netmask 0xffffff00 broadcast 129.88.38.255
ether 00:03:93:59:cb:54
Routage IP etc.
10
• Adresses privées
– 10.0.0.0/8 ; 172.16.0.0/12 ; 192.168.0.0/16
– utilisables librement en interne ⇒ pas de routage à l’extérieur du réseau privé
• Adresses réservées
– 127.0.0.1 : interface de loopback (moi !)
– 0.0.0.0 : adresse inconnue : utilisée comme adresses source par les postes qui ne
connaissent pas encore leur adresse.
– 169.254.0.0/16 « link local » (utilisé par qq clients DHCP par exemple)
• Adresses de diffusion
– 255.255.255.255 : diffusion sur le réseau de niveau 2
Elle n’est jamais routée
– la derniére adresse du champs d’adressage du sous-réseau : diffusion sur tout le
sous-réseau (niveau 2) désigné... qui n’est pas forcément local.
Ce comportement (diffusion à distance) n’est pas assuré, et il est prudent de le
désactiver.
Routage IP etc.
11
Routage IP etc.
12
129.88.38.0/24 129.88.37.0/24
…
batd-net.imag.fr irma2-net.imag.fr
Routage IP etc.
13
Routage IP etc.
14
Dimensionnement
Routage IP etc.
15
• Problématiques :
∗ Pas assez d’adresses disponibles !
∗ Construction d’un sous-réseau indépendant (Pas de connexion entrante, sauf ex-
ception)
∗ Équilibrage de charge (une adresse → N serveurs)
• Solution :
– Utilisation d’adresses privées
– le routeur fait la correspondance
numéro de port ↔ adresse privée ou bien
numéro de port ↔ adresse privée & autre numéro de port
– Ce n’est pas une opération aussi simple qu’elle en a l’air... (les adresses IP peuvent
apparaı̂tre ailleurs que dans les entêtes)
Routage IP etc.
16
NAT et Firewall
• Deux opérations différentes, mais qui font appel aux mêmes fonction-
nalités du noyau du routeur.
• Firewall : simple filtrage des paquets
• Même besoin de prendre des décisions (et de faire des modifications)
sur des informations de niveau 4
Routage IP etc.
17
• IPv4
– DHCP (Dynamic Host Configuration Protocol )
3 modes de fonctionnement :
◦ Un fichier contient la correspondance @eth / @IP sur le serveur : adresses
permanentes
◦ @ permanentes allouées automatiquement
◦ @ allouées dynamiquement (accueil de visiteurs)
DHCP permet de spécifier des informations complémentaires : routeur par défaut,
serveur DNS. . .
– DHCP : extension de BOOTP
– PPP : affectation de l’@IP par le serveur
– RARP
• IPv6
– Attribution d’une adresse « link local » unique (qui comprend l’adresse MAC)
– Adresse changée dès qu’un serveur DHCP peut en fournir une
Routage IP etc.
18
DHCP : principe
Routage IP etc.
19
DHCP (2)
Routage IP etc.
20
• Adresse IP
• DNS primaire / secondaire
• Compression d’entête. . .
Routage IP etc.
21
IPv6
Routage IP etc.
22
IPv6 header
Simplification de l’entête IPv4
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Routage IP etc.
24
Routage IP etc.
25
Le routage
• Aiguillage
• Acheminement
• Routage
• Le cas de IP
– Acheminement implicite
– Mais, en pratique, mise en cache des routes utilisées
• Le cas ATM
– Aiguillage : commutation de cellule
– Acheminement : établissement des VC/VP
– Routage : manuel ou PNNI
Routage IP etc.
26
Routage au niveau 2
Hub Switch
Routage IP etc.
27
Routage au niveau 2
(avec mémorisation...)
(Structure d’arbre assurée par STP : Spanning Tree Protocol )
Routage IP etc.
28
Switch
Switch
Switch
Routeur
Routage IP etc.
29
Routage au niveau 3
• Aiguillage
3
destination interface vers
1 1 1
2 2
0
4 4
3 1 4 2
Routage IP etc.
30
Routage IP etc.
31
Choix de l’interface
' $
Routage IP etc.
32
Routage IP etc.
33
Routage dynamique
Routage IP etc.
34
b b 1 b e 3 b b 1
c e 2 a e 2 c c 1
d e 3 d d 1 d c 2
e e 1 e e 1 e e 1
f e 2 f e 2 f e 2
g e 4 g d 2 g c 3
Routage IP etc.
35
DV (2)
Routage IP etc.
36
algorithmes DV : problème
Comptage à l’infini
a b c d e
1 2 3 4 init. : a fonctionne
3 2 3 4 après 1 échange
3 4 3 4 après 2 échanges
5 4 5 4 après 3 échanges
5 6 5 6 après 4 échanges
Routage IP etc.
37
Routage IP etc.
38
Base de données
Routage IP etc.
39
OSPF
Routage IP etc.
40
Inondation
Routage IP etc.
41
Paquets OSPF
• HELLO
– Découverte des voisins, détection de leur disparition. Multicast à tous les routeurs
OSPF
• DATABASE DESCRIPTION
– Description de la base de données. Unicast, échange maı̂tre-esclave
• LINK STATE REQUEST
• LINK STATE UPDATE
• LINK STATE ACK
Routage IP etc.
42
• Type
1. router-LSAs - states of the router’s interfaces
2. network-LSAs - the set of routers attached to the network
3. summary-LSAs - summary routes to networks (émise par les ABR)
4. summary LSAs - summary routes to AS boundary routers
5. AS-external-LSAs - routes to destinations external to the Autonomous System
• LS ID (par type)
1. The originating router’s Router ID.
2. The IP interface address of the network’s DR
3. The destination network’s IP address
4. The Router ID of the described AS boundary router
5. The destination network’s IP address
Routage IP etc.
43
Routage IP etc.
44
AS2
AS1
AS3
' $
Routage IP etc.
45
AS (domaine admin.)
Domaine
IS IS de routage
niveau 1 niveau 2
Domaine IS
de routage niveau 3
ES
AS
IS: Intermediate System
ES: End System Domaine
de routage
Routage IP etc.
46
Système
Autonome
Aire x Aire 0
backbone
ABR
Aire y ASBR
Système
Aire Autonome
Un ABR a des interfaces dans des
aires différentes
Routage IP etc.
47
Routage IP etc.
48
BGP 4
• Le protocole EGP
• Pas de notion de distance, C’est le nombre d’AS traversés qui compte
• Éventuellement, plusieurs chemins vers une destination
• La structure de données de routage est un vecteur de chemins
→ pas de boucle
• Possibilité de spécifier un filtrage des routes en fonction des contrats
passés, ou des préférence (IBM veut atteindre Motorola sans passer pas
un réseau opéré par intel)
• Toute publication est volontaire (commande network)
Routage IP etc.
49
Routage IP etc.
50
New York
San Francisco
ISP network
9 10
Dallas
30th NANOG 3
Hot-Potato Routing
dst
New York
San Francisco
ISP network
failure 10
9
planned maintenance 11
Routage IP etc.
traffic engineering
52
BGP : important
• Les routeurs voisins communiquent par TCP. Les voisins sont explicite-
ment déclarés à la configuration du routeur. Les échanges commencent
après l’établissement de la connexion.
• voisinage interne / externe :
iBGP : le protocole BGP entre routeurs d’un même AS.
Ils forment un graphe complet !
• Les connexions internes sont généralement établies avec des interfaces
de loopback
⇒ connexions indépendantes de l’état des liens « intérieurs » du routeur
Routage IP etc.
53
BGP administation
R1 R2
RR1 RR — Client
Routage IP etc.
54
Un exemple :
Routage IP etc.
55
Routage IP etc.
56
Multicast
Routage IP etc.
57
Routage IP etc.
58
Routage IP etc.
59
Routage IP etc.
60
• IPv6
11111111 flag Portée Group ID
8 bits 4 bits 4 bits 112 bits
• Portée :
1 locale à l’hôte
2 link local
5 locale au site
8 organisation
E globale
• Flag : adresse permanente ou non
Routage IP etc.
61
Routage multicast
• Construction d’un arbre de poids faible
(6= de l’arbre formé des plus courts chemins)
D D
D S D S
D D
Routage IP etc.
62
Routage IP etc.
63
• Proxy ARP
– Motivations :
3 Réseau de niveau 2 6= sous-réseau niveau 3
– Principe :
3 L’hôte qui a accès directement au reste du réseau IP répond aux requêtes ARP
• ICMP redirect
– ICMP permet de signaler les erreurs
Problème de TTL (→ traceroute) ; problème de taille de paquet non segmentable
(TCP par exemple : flag don’t fragment)
– Possibilité de signaler une meilleure route : ICMP REDIRECT
(Émis par exemple si un routeur reçoit sur une interface un paquet destiné à une
machine se trouvant sur cette interface.)
Routage IP etc.
64
à bientôt !
Routage IP etc.
65
Algorithme de Bellman-Ford
Routage IP etc.
66
Algorithme de Dijkstra
On cherche à construire la distance du sommet s à tous les sommets du graphe (V, E).
• Structures de données :
Ensemble de sommets marqués : M ; distance à s pour chaque sommet (d(i)) ;
prédécesseur de chaque sommet (p(i)).
• Initialisation :
M = {s} ; d(s) = 0 ; d(j) = dsj pour tout j ∈ N (s), ∞ sinon ;
p(j) = s ∀j ∈ N (s).
• étape 1 : mise à jour des étiquettes
trouver i ∈/ M tq. d(i) = minj ∈M / (d(j)) ; M ← M ∪ {i}.
Si M = V on s’arrête.
• étape 2 : Mise à jour des distances
∀j ∈ N (i) tq. j ∈/M :
Si d(j) > mink∈N (j)(d(k) + dkj ) Alors :
p(j) ← inf k∈N (j)(d(k) + dkj ) ; d(j) ← mink∈N (j)(d(k) + dkj ) ; fin si
retour à l’étape 1.
Routage IP etc.
67
Exemple de graphe
I 3 K 3 D
2 1
S 1 M
1 2
J 2 L
Routage IP etc.