Cours Infra
Cours Infra
⊳ À chaque saut :
⋄ le routeur prend une décision autonome pour la sélection de la route empruntée par le data-
gramme : la meilleur décision en fonction de sa table de routage (Best effort) ;
⋄ un routeur n’a qu’une connaissance partielle du routage ;
⋄ la notion de «route par défaut» permet de réaliser un routage sans connaitre toutes les destina-
tions possibles.
□ Routage statique
⋄ Utilisation de la commande «ip address» pour la configuration d’une interface ;
⋄ Utilisation de la commande «ip route» qui permet d’indiquer un chemin vers : un réseau (net), un équipement (host)
ou une route par défaut (default).
Statique vs Dynamique
□ Routage statique
⋄ réalisation des tables de routage à la main : difficultés des mises à jour ;
⋄ convient pour des réseaux de taille réduite ou pour un réseau où la l’aspect sécurité est important ;
⋄ en cas de panne, le routage est modifié uniquement après la découverte de cette panne.
□ Routage dynamique
⋄ adaptation aux conditions du réseau ;
InfraRes – P-FB
∘ suivant un fonctionnement :
⋄ centralisé ou distribué ;
⋄ itératif (local) ou direct (global).
)3673589
:3;<:=58
6> 6? 6@
;#+.)D,&.E,FB)6')G)+#%&.)*AH,%&I)6AB)')J
! /*0%)7.,1.0,.??&2)2.,C
!"#
La préhistoire du routage : évolution
!"#$%&'#()*%)+#%&,-. 8
/.01('2%.)*%)345#+.)678&.94:
Technique du Core System
=C
=#%&.%+8
.<&.+(.8 =H =(
))5>=?)
=D =B
6@6/?A
=G =F +#%&.%+8)*%)0#+.
!"#$%&'()(*(+,-.(/011$203
'(&.+0#((.0&;.8
=E
$%&'()*'+),(-0.(&+,$'8;.-./)+'(+-01-%,2+'&1-3'%-4.5'2+-6
Organisation centralisée évitant le routage par défaut :
! 01*-3'**1%1001*-'(&.+(.8-'2-789,%1-*:*+1;8<-9,((')**1(+-0'-%,2+1-3,2%-'++1)(4%1-(=);3,%+1->21001-
⊳ les passerelles internes au «core system» connaissent la route pour atteindre n’importe quelle station (pas
*+'+),(-?3'*-41-%,2+1-3'%-4.5'2+@-A
de
! route par défaut) ;
01*-3'**1%1001*-.<&.+(.8-%,2+1(+-3'%-4.5'2+-/1%*-01-9,%1B
⊳ les passerelles externes routent par défaut vers le core.
C;3,**)D01-E-;1++%1-1(-,12/%1->2'(4-01-*:*+F;1-1*+-41-&%'(41-+')001-G
Impossible à mettre en œuvre quand le système est de grande taille !
! );3,**)D)0)+.-41-9,((19+1%-2(-(,;D%1-'%D)+%')%1-41-%.*1'2H-A
! 01*-+'D01*-41-%,2+'&1-41/)1((1(+-;(#+9.8B
⋆ le core ne connait qu’un seul réseau par routeur externe ;
InfraRes – P-FB
!"#
⋆ les tables de routage deviennent énormes.
La préhistoire du routage : évolution
!"#$%&'#()*%)+#%&,-. 9
/%&+.0)$'1'&.0)2#%+)$3%&'$'0,&'#()*.)+40.,%5)*.)-+,(*.0)&,'$$.0
Autres limites du modèle
456%7$8(9%:;901$
?@ ?B
7: 79 78
7-<7=>(9%:;901$
!"#$%&'()(*(+,-.(/011$203
?A ?C
$%&'()(*+'(,-./0.123,4025.-0.3,-6(0-'.7+*.8.)%(-'043,--09(,-./0.:+3;:,-0*.<
L’utilisation de « core » ne convient pas à l’interconnexion de backbones :
! ().09(*'0.7)&*(0&4*.3=,(9./0.4,&'0*.7,**(:)0*.0-'40./0&9.*'+'(,-*
∘ il faut maintenir la cohérence entre toutes les machines des deux backbones ;
)%&'()(*+'(,-./0.+#%&.)2,+)*46,%&.70&'.(-'4,/&(40./0*.:,&3)0*H
!
!"#
InfraRes – P-FB
COLUMBUS II
System Status On
System Length 11914 km
Latency 59.57 ms
InfraRes – P-FB
⋄ Le même protocole de routage «externe» doit être utilisé entre les différentes régions.
and represents an alternative to OSPF. It has been standardized in documents ISO/IEC
10589:1992 and ISO/IEC 10589:2002(E) [85] and IETF described it in RFCs 1142 [86]
and 1195 [87]. Being an ISO standard, IS–IS was designed to route a general layer-3
packet format, making it more flexible to work with different network protocols than
Internet et routage OSPF.: la
Thenotion
workingd’AS
principles of IS–IS are similar to those of OSPF. Although IS–IS is 14
L’AS ou «Autonomous System»
not as popular as OSPF, it is successfully employed within some autonomous systems,
especially in the case of large Internet service providers.
– il correspond au niveau hiérarchique le plus haut du partionnement d’Internet ;
– il représente un ensemble de réseaux et de routeurs soumis à la même entité administrative ;
AS 4
AS 3
IGP
AS 1
EGP
AS 2
AS 5
RA
Quelques
Fig.définitions
7.5 : of interconnected autonomous systems
A set
∘ les protocoles de routage internes à une AS sont appelés IGP, «Interior Gateway Protocol» ;
∘ ceux utilisés entre les AS sont appelés EGP, «Exterior Gateway Protocol» ;
InfraRes – P-FB
∘ une AS peut être partitionnée en RA, «Routing Area» suivant l’IGP utilisé.
198 Routing fundamentals and protocols
AS 4
AS 3
AS 1
AS 2
AS 5
The
Fig. 7.6 Seul les same network
routeurs topology shown
et leurs informations in Fig.
de routage 7.5visibles.
sont as seen by the exterior routing protocol
InfraRes – P-FB
Border Gateway Protocol (BGP) version 4 is the external protocol currently used for
routing between different Internet autonomous systems and is described in RFC 1771
Les AS ou domaine de routage 16
Définition de domaines de routage
Cela correspond à associer des réseaux et des routeurs sous la responsabilité d’une autorité unique.
L’architecture de routage est indépendante entre les systèmes autonomes.
À l’origine, les AS étaient connectés sur le noyau ARPANET (également considéré comme un AS).
Aujourd’hui, il existe seulement des AS interconnectés.
InfraRes – P-FB
Un exemple d’AS 17
xterm
whois -h [Link] [Link]/16
% Information related to '[Link]/16AS2200'
route: [Link]/16
descr: FR-U-LIMOGES
origin: AS2200
mnt-by: RENATER-MNT
source: RIPE # Filtered
aut-num: AS1935
as-name: FR-RENATER-LIMOUSIN
descr: Reseau Regional Limousin
descr: FR
import: from AS2200 action pref=100; accept ANY
export: to AS2200 announce AS1935
default: to AS2200 action pref=10; networks ANY
admin-c: GR1378-RIPE
tech-c: GR1378-RIPE
mnt-by: RENATER-MNT
source: RIPE # Filtered
InfraRes – P-FB
Un exemple d’AS 18
InfraRes – P-FB
[Link]
les liens avec l’AS2200 en 2021 22
InfraRes – P-FB
InterNet : une collection d’ASCHAPTER
organisées en «transit»,
13 Routing and Peering«Peer»
335 ou «Customer» 23
Internet se présente comme un maillage de FAI, ou ISP, «Internet Service Provider», auxquels sont connectés des entités privées,
gouvernementales et éducatives :
⋆ IX ou IXP : Internet eXchange Points : pour définir
Large ISPs Connect Heavily interconnected des points d’interconnexion de niveau 2 entre diffé-
public peering points
IXPs, POPs or rents réseaux (LANs ethernet).
Collocation Facilities
Appelés aussi «Public Peering».
Peu de suivi sur le trafic échangé entre les diffé-
Large, National ISPs rents réseaux interconnectés.
Customer
Customer [Link]
ISP A ISP B ⋆ POP : Points of Presence, où sont placés les IXPs
Customer Peer of ISP A, de manière logique ;
Customer of
ISP B Customer ⋆ collocation facilities : des lieux physiques d’intercon-
Regional ISPs Customer Customer
Customer nexion avec des liens redondants, des alimentations ;
Customer ⋆ ISP ou FAI : ils s’interconnectent entre eux pour don-
of ISP B
ner à leur client accès à Internet.
Customer
Customer
Customer Les liens entre ces FAIs sont des «peering agree-
Small, Local ISPs
Customer ment».
⋆ PNI, «Private Network Interconnect» : connexion di-
Customer
Customer Customer Customer
recte entre deux réseaux avec de la fibre ou au tra-
Customer Customer
vers d’un réseau de TelCo ;
High speed Medium speed Low speed Suivi précis du trafic et de sa métrologie.
FIGURE 13.2 exemple d’OVH : [Link]
⋆ The
leshaphazard
peers, «pairs», sont égaux entre eux : il sont en accord pour acheminer
way that ISPs are connected on today’s Internet, showing IXPs at the top.
gratuitement leur trafic réciproque, mais font payer
leur clients
Customers can; be individuals, organizations, or other ISPs.
⋆ les plus petits FAIs sont seulement clients d’un plus gros FAI ;
InfraRes – P-FB
⋆ treat
les débits
smallervarient
ISPs asdejust
100Mbps
another(Ethernet)
customer, àalthough
10 Gbpsit’s
(fibre
not optique).
all that unusual for small
regional ISPs to peer with each other.
Peering arrangements detail the reciprocal way that traffic is handed off from one
ISP (and that means AS) to another. Peers might agree to deliver each other’s packets
for no charge, but bill non-peer ISPs for this privilege, because it is assumed that the
Les IX de l’AS2200 en 2021 24
InfraRes – P-FB
Public vs Private Peering 25
Ces informations
FIGURE 13.3 de routage sont échangées par
BGP.
A simple example of a routing policy, showing how routes are announced (sent) and accepted
Suivant la «routing
(received). ISP A andpolicy» : peers.
ISP B are
ISP B
∘ elles peuvent ne pas être transmises ; Traffic with Sources Traffic with Sources
and Destinations and Destinations
∘ elles peuvent être ignorées. in ISP A and ISP B
Peer of ISP A and ISP C
in ISP C and ISP B
Is Okay Is Okay
No Direct Connections
Exist between ISP A
and ISP C
FIGURE 13.4
ISPs do not provide free transit services, and generally are either peers or customers of other
ISPs. Unless “arrangements” are made, ISP B will routinely block transit traffic between ISP A
or Web hosting sites often have a hard time peering with anyone. On the other hand,
ISPs with many casual, intermittent client users are courted by many peering suitors.
Even if match is not quite the same in size, if the traffic flows are symmetrical, peering
is always possible. The peering situation is often as shown in Figure 13.5. Keep in mind
Lesthat
«routing
other types policies»
of networks : le peering
(such as cable TV operators and DSL providers) have dif- 27
ferent peering goals than presented here.
Le peering
Without correspond
peering pour une AS à in
arrangements rechercher unerely
place, ISPs AS onpaire, afin exchange
public d’échangerand du trafic
peer- réseau.
Laing
démarche est «un
points like the peu»
IXPs similaire à celle des
for connectivity. Theopérateurs de téléphonie,
trend is toward mais avec
more private des difficultés :
peering
between pairs of peer ISPs.
– les «appels» sont des des flux de datagrammes ;
Private peering can be accomplished by installing a WAN link between the AS border
– un FAI peut être seulement un relais entre deux FAIs ;
routers of the two ISPs. Alternatively, peering can be done at a collocation site where the
– two
la règle
peers’durouters
«sender keeps sit
basically : c’est
all»side le premier
by side. FAI qui
Both types of reçoit l’argent
private des
peering areclients
[Link] le garde.
Cela fonctionne si le trafic dans un sens est équilibré avec celui dans l’autre sens.
Who will peer Les difficultés sont :
with ISP A? ⋆ il peut y avoir plusieurs FAIs entre un client
ISP A et un serveur ;
Traffic Flow Unbalanced ⋆ un client peut effectuer de nombreuses
Medium Infrastructure ISP A to ISP C: 1000
Traffic with Balance Mix of Clients and Servers packets per min. connexions successives et rapides (consul-
ISP A to ISP B: 1000
packets per min.
ISP C to ISP A: 10,000 tation Web) et il est dur de suivre ces connexions
packets per min.
ISP B to ISP A: 1000 (origine, chemin) ;
packets per min.
La solution : le «peering» :
∘ un accord, un «settlement» est défini entre
ISP B ISP C FAI pour ne pas faire payer entre pairs ;
Large Infrastructure Many Web Servers ∘ mais le trafic ne peut pas transiter par
with Many Clients on Lots of Server Farms l’intermédiaire d’un pair commun sans de-
venir client d’un des ISP.
(a) (b)
InfraRes – P-FB
Ici,FIGURE
le trafic de ISP A à ISP C ne peut pas passer par ISP B.
13.5
Good and bad peering candidates. Note that the goal is to balance the traffic flow as much as
possible. Generally, the more servers the ISP maintains, the harder it is to peer. (a) ISP A will
propose peering to ISP B; (b) ISP A will not want to peer with ISP C but will take them on as a
customer.
ing points like the IXPs for connectivity. The trend is toward more private peering
between pairs of peer ISPs.
Private peering can be accomplished by installing a WAN link between the AS border
routers of the two ISPs. Alternatively, peering can be done at a collocation site where the
Les «routing policies» : le peering 28
two peers’ routers basically sit side by side. Both types of private peering are common.
Le choix du pair
ISP B ISP C
(a) (b)
Tier-3 Tier-3
Tier-3 ∘ «multihomed AS» : les AS des deux sociétés, noodle et macrospot, ne relaient
ISP ϕ
ISP γ ISP η pas de trafic et sont connectées à deux AS ;
∘ «Stub AS» : celles ne possédant qu’une connexion à une AS.
[Link] [Link] Key:
$
Transit
γ’s customers
Peering
ϕ’s customers
η’s customers $ $
$
Tier-2
⊳ les relations de transit génèrent des revenus alors que celles de peering n’en génère pas (ou indirectement) ;
⊳ le peering :
⋄ peut réduire les coûts de transit et permet d’économiser pour l’ensemble des pairs ;
⋄ améliore la redondance en diminuant la dépendance envers un «transit provider» ;
⋄ améliore la performance en augmentant le nombre de chemins disponibles (éviter les «bottlenecks») ;
⋄ augmente la capacité en répartissant le trafic entre différents réseaux ;
⋄ facilite l’obtention de capacité supplémentaire en cas d’urgence (auprès des pairs).
Les règles :
AS γ AS η AS ϕ
⊳ Pour ses clients payants, une AS veut fournir
$ $
$
un service de transit illimité.
γ’s η’s ϕ’s
customers customers customers ⊳ Pour ses fournisseurs et pairs, une AS veut
(a) fournir un service de transit sélectif.
AS δ AS ε
$ $
$ a) les AS 𝜂 et 𝜙 bénéficie de leur statut de pee-
AS γ AS η AS ϕ AS γ AS η AS ϕ ring au profit de leur clients respectifs ;
$ $ $ $ $ $ b) l’AS 𝜂 pâtit du trafic entre 𝛾 et 𝜙 aux dépends
γ’s
customers
η’s
customers
ϕ’s
customers
γ’s
customers
η’s
customers
ϕ’s
customers de ses clients : 𝜂 ne va pas relayer leur tra-
(b) (c) fic et ils vont passer par les AS dont ils sont
clients (𝛿 et 𝜖).
c) l’AS 𝛿 se sert de son client 𝜂 pour atteindre
$
AS δ AS ε
$
AS δ AS ε
𝜙. L’AS 𝜂 pâtit de cette situation : elle paye 𝛿
pour le transit et elle ne veut pas fournir du
$
$ $ $
(d) (e)
Les liens entre AS : l’organisation des échanges entre AS 31
Comment implémenter les règles de transit et d’échange de trafic ?
Pour mettre en œuvre les décisions économiques et éviter les situations défavorables, une AS définit des «routing policies» :
⊳ si une AS veut éviter de fournir un transit entre deux AS dont elle est voisine, il suffit qu’elle n’annonce pas, «advertising»,
que l’une de ces AS peut être joignables de l’autre par son intermédiaire. Ces deux AS seront visibles l’une de l’autre par
l’intermédiaire d’autres AS.
⊳ pour ces clients pour le transit, une AS doit diffuser l’ensemble des réseaux qu’elle connaît (ils sont alors joignables,
«reachable» ou visibles) ;
⊳ pour ses pairs, une AS ne rend visible que ses propres clients pour le transit mais aucun de ses pairs ni de ses fournisseurs
de transit pour éviter d’avoir à relayer du trafic sans contrepartie ;
⊳ pour ses fournisseurs de transit, «transit provider», une AS doit rendre visible ses propres clients mais aucun de ses pairs
ni de ses autres fournisseurs de transit pour éviter tout abus.
⋆ l’AS 𝛼 et 𝛽 voient tous leurs réseaux car ils sont pairs et tous
[Link] [Link]
η’s customers
Les liens entre AS : l’organisation des échanges entre AS 32
Un protocole de routage : «Routing Path Vector»
Le routeur de l’AS 𝜙 veut diffuser le préfixe de destination [Link] [Link]
[Link]/24 : AS α
tion donnée :
A H I
D F
φ}
⋄ ce message contient uniquement au départ le numéro
AS
δ,
}
Sφ
{AS
de l’AS {𝐴𝑆𝜙 } ;
{AS AS δ
,A
AS φ φ} AS ε
Sδ
{A
⋄ un routeur de frontière, «border router», K dans l’AS𝛿
} {A
L Sδ, ASφ
{ASδ Sε
K O P ,A
Sδ
,A
reçoit ce message et le diffuse vers tous les routeurs M N Sφ
Q }
{AS
frontières dans l’AS𝛿 : AS γ AS η AS ϕ
δ, A
Sφ
S
⋆ ces routeurs à l’intérieur de l’AS𝛿 ajoute en entête
}
R stη}
{Custη
leur propre numéro d’AS au message de «chemin
de routage» qui devient {𝐴𝑆𝛿 , 𝐴𝑆𝜙 } γ’s customers ϕ’s customers
η’s customers
⋆ ces routeurs rediffusent ce nouveau message vers
les AS adjacentes.
⋄ l’AS𝜂 n’a pas d’intérêt économique à diffuser un chemin vers l’AS𝛿 à ses pairs comme l’AS𝜙, elle met à jour le
message avec un «chemin de routage» indiquant uniquement ses clients :{𝐶𝑢𝑠𝑡𝜂 }
⋄ l’AS𝜖 a un intérêt économique de diffuser les accès aux réseaux de l’AS𝛿 à ses propres clients : elle diffuse un
message modifié {𝐴𝑆𝜖 , 𝐴𝑆𝛿 , 𝐴𝑆𝜙 } ;
⋄ les routeurs de l’AS𝜙 mettent à jour leur tables de routage en fonction des messages reçus :
⋆ si un paquet à destination de [Link]/24 est envoyé depuis l’AS𝜙 il sera envoyé au «next hop»,
InfraRes – P-FB
l’AS𝜖.
Le routage dynamique : routage interne ou externe aux AS 33
Avantages
∘ adaptation à l’évolution du réseau ;
∘ ajout ou suppression de routeurs ;
∘ pertes ou ajouts de liaisons ;
∘ configuration simple de chaque routeur (configurer seulement les interfaces).
Contraintes
⋆ Optimisation : sélection des meilleurs routes ;
⋆ Cohérence : élimination des boucles de routage (routes circulaires) ;
⋆ Efficacité : peu de consommation de bande passante et de temps CPU ;
⋆ Stabilité : convergence (obtention du résultat global) et re-configurations rapides ;
⋆ Simplicité : configuration simple de chaque élément.
⋄ il est basé sur des «tables de chemin», «path vector routing», qui énumère les AS à emprunter jusqu’à la destination.
!"#$%&$'#()*%)+,)-%.$'#()*/)"0.%,/
CHAPITRE 11
123
Intégration dans IP 34
accès intradomaine
IP
∘ le protocole OSPF est intégré dans IP avec son propre numéro de protocole ;
%$&'%(!)(*&+,-.)(%/-00+$)',(%+*(+')(+'$1+)(2",*$1+)(-!'(!)(3-4&*$%)*(5-(3&'#,$&'(!)
∘ le protocole RIP est encapsulé dans UDP ;
)*.)'#)6(7)('&28*)(!/)',*")(!-'%(5)%(,-85)%(!)(*&+,-.)(!&$,(-+%%$(9,*)(5$2$,"(-!'(!)
∘ le protocole BGP est encapsulé dans TCP ;
∘ ceux concernant le multicast utilisent différentes encapsulations suivant le niveau de communication multicast :
&*#)*(5-(3&'#,$&'(!)(#&'4)*.)'#)6
⋄ accès local ;
&+,-.)( :;<( accès dans."'"*-5)2)',(
⋄ *)0&%)( un domaine ou AS ; %+*( 5/-5.&*$,=2)( !)( >$?@%,*-6( :5( %/-.$,( !/+'( -5.&A
InfraRes – P-FB
C’est un routage :
∘ «inter-domain», à l’intérieur d’un même domaine ;
∘ «exterior routing», entre différents AS.
Fonctionnement :
⊳ chaque routeur de frontière d’une AS, appelé «border» ou «edge router», diffuse les destinations qu’il peut atteindre
à ses routeurs voisins appartenant à d’autres AS ;
⊳ lorsqu’un routeur reçoit les chemins de ses voisins, il réalise une sélection de chemin en concaténant l’information
reçue avec celle existante dans son propre chemin.
Cette sélection de chemin se fait suivant une métrique comme dans le cas de l’algorithme par «vecteur de distance».
InfraRes – P-FB
Le «Path Vector Routing» 37
Path to α 1 δ
α β γ α β γ δ
From β
α 〈0 | α〉 〈10 | β〉 〈1 | γ〉 〈10 | α〉 〈0 | β〉 〈1 | γ〉 〈1 | δ〉 1 7
m γ
ro β 〈∞ | 〉 〈∞ | 〉 〈∞ | 〉 α β γ δ
F
From γ
γ 〈∞ | 〉 〈∞ | 〉 〈∞ | 〉 〈1 | γ〉 〈1 | β〉 〈0 | γ〉 〈7 | δ〉
Path to
α β γ δ
α 〈0 | α〉 〈2 | γ, β〉 〈1 | γ〉 〈8 | γ, δ〉
Routing table at node α: After 1st exchange: m
ro β 〈10 | α〉 〈0 | β〉 〈1 | γ〉 〈1 | δ〉
F
γ 〈1 | α〉 〈1 | β〉 〈0 | γ〉 〈7 | δ〉
⋆ il échange ces informations avec tous les routeurs à l’intérieur de son AS afin d’unifier la vision d’Internet vu par tous
les routeurs de l’AS, afin que :
⊳ tous les routeurs prennent la même décision de routage pour un datagramme ;
⊳ tous les routeurs partagent les tables de routage de tous les routeurs de bordure ;
⋆ il échange ses informations de routage avec tous les routeurs à l’intérieur de son AS, c-à-d avec :
⊳ ceux qui sont eux-mêmes des routeurs de bordure situés en frontière de l’AS («internal peering») ;
⊳ les autres qui ne font fonctionner qu’un IGP avec une seule table de routage ;
⋆ ces informations de routage contiennent :
⊳ des paires «(destination, port de sortie)» pour toutes les destinations possibles (le «port de sortie» correspond à l’@IP
InfraRes – P-FB
du routeur de prochain saut (sélection de la destination suivant le préfixe correspondant le plus long) ;
⊳ une entrée par défaut pour les adresses inconnues (seuls les AS «Tier-1» sont «default-free», car ils connaissent tous
les préfixes réseaux d’Internet).
Intégration routage Inter et Intra domaine 39
aux autres AS ; A
C
H I
φ}
AS
δ,
ce paquet est routé suivant le plus court chemin (déterminé par
}
Sφ
{AS
{AS AS δ
,A
AS φ φ} AS ε
Sδ
{A
un IGP à l’intérieur de AS𝜂 ) vers le routeur R qui le routera vers K
L Sδ, ASφ
{ASδ
}
O P
{A
Sε
,A
Sδ
{AS
∘ Exemple : le routeur B de l’AS𝛼 reçoit un paquet destiné à l’AS𝜙 ; AS γ AS η AS ϕ
δ, A
Sφ
S
}
⋄ B doit router ce paquet vers un autre «speaker» routeur, mais R tη}
{Custη
lequel ?
γ’s customers ϕ’s customers
η’s customers
⋄ A et F possèdent le même chemin vers l’AS𝜙 car les routeurs «speakers» ont diffusé leurs informations à l’intérieur de
l’AS à l’aide d’un IGP, ou d’une version adaptée de l’EGP (iBGP par exemple).
least-cost speaker.
Enter (x,O) in
forwarding table
BGP, «Border gateway Protocol», RFC 4271 40
∘ il est complexe :
⋄ dans l’implémentation dans les «BGP speakers», les routeurs de bordure, des contraintes «business»
⋄ pour la construction des chemins de routage ;
⋄ pour l’apprentissage des routes extérieures par les routeurs internes à l’AS.
∘ il met à jour de manière incrémentale les entrées de sa table de routage :
⋄ il n’y a pas d’échange périodique comme avec les IGPs tels que RIP ou OSPF ;
⋄ seules les modifications sont transmises ;
∘ une connexion TCP est maintenue avec chaque autre routeur BGP, «BGP session» :
⋄ une connexion reliant deux «speakers» routeurs appartenant à deux AS différentes ;
⋄ une connexion TCP entre deux «speakers» routeurs de la même AS pour réaliser du «internal peering» (on parlera
InfraRes – P-FB
de «BGP peers»).
BGP, «Border gateway Protocol» 41
AS α
AS β
B E
G
C J
A
H
F
D I
AS δ AS ε
P
L
O Q
K Key:
N Link-layer connection
M eBGP TCP session
iBGP TCP session
𝑛∗(𝑛−1)
⋆ les sessions internes : «iBGP» (besoin de 2
connexions TCP).
BGP : échange des informations de routage 42
!"#$%&'(%)*'!+%$&"%,-./$%.'0$"%$&)$%1""$/%$&"%2.-$".-)%',%$&"%*'+-2)*%.0*"3%/$).$-!+%4-$&%$&"%&-+&"/$%
(.-'.-$5%678%)!9%+'-!+%9'4!%$'%$&"%*'4"/$%(.-'.-$5%6:8;%
UP efix AT OP
DA
Prefix Next Hop
Pr S_P _H
TE 128 {A 92
A EXT
[Link]/24 [Link]
= H= =1
N
.34 Sφ .12
/16 }
AS δ AS ε
AS φ
.69
[Link] [Link]
.2
L O
0 .5
2.5
ASδ BGP routing table: 2.1
K 19 TE /16 φ}
[Link] N DA 8.34 , AS .1
Prefix Path Next Hop UP
fix= 12 {ASδ 2.62
= .1
2.1 Pre PATH = 192
P
[Link]/24 {ASδφ} [Link] M
.12
.6 AS_ T_HO
2
19 NEX
ASδ BGP routing table
+ ⇒ K’s forwarding table: N’s forwarding table:
⇒
+
K’s IGP routing table: Prefix Next Hop Prefix Next Hop N’s IGP routing table:
Destination Cost Next Hop [Link]/24 [Link] [Link]/24 [Link] Destination Cost Next Hop
[Link]/24 0 K’s BGP [Link]/24 2 Router M
Router K 2 Router M
⋆ tous les «speakers» routeurs de l’AS𝛿 , K & N, possèdent la même table de routage BGP, appelée «AS𝛿 BGP routing
table» (cette table est échangée par iBGP) ;
⋆ chaque routeur dispose de sa table de routage propre, appelée «forwarding table» et construite à partir d’un IGP ;
InfraRes – P-FB
⋆ chaque routeur associe ces deux tables pour décider de son routage inter et intra domaine.
BGP : l’évolution rapide des routes échangées 45
InfraRes – P-FB
[Link]
Présentation de l’AS2200 46
[Link]/AS2200
InfraRes – P-FB
Un «looking glass» : le réseau de l’Université vu depuis Hurricane Electric 47
[Link]
destination.
Algorithme de routage : vecteur de distance, «vector-distance» 49
Inconvénients
∘ La taille des informations de routage est proportionnelle au nombre de routeurs du domaine.
∘ La métrique est difficilement utilisable : lenteur de convergence ;
∘ Bouclage éventuellement à l’infini ;
∘ Pas de chemins multiples ;
∘ Coûts des routes externes arbitraires.
Protocole RIP, «Routing Internet Protocol»
Il existe différentes versions :
– RIPv1 :
⋄ qui ne gère pas les préfixes dans les informations de routage transmises, d’où l’impossibilité d’utiliser différents préfixes ou
de faire de l’aggrégation ;
⋄ qui ne supporte pas d’authentification : on peut facilement intercepter les paquets en les faisant router vers un routeur mal-
veillant ;
– RIPv2, RFC 1388, 1723, 2453 : authentification (MD5+secret+compteur), préfixes transmis avec les routes, utilisation du multicast
([Link]) ;
– RIPng, RFC 2080 : extension pour gérer IPv6.
L’équipement de routage diffuse (broadcast) toutes les 30s la liste des réseaux qu’il peut atteindre avec leur distance (nombre de
sauts).
Avantages
– très connu, implanté sur tous les équipements de routage, peu gourmand en ressources CPU/Mémoire ;
– s’adapte automatiquement (panne, ajout de réseau ...)
Désavantages
– la distance est une information réduite qui ne tient pas compte de la charge, du débit, du coût des lignes…
– distance maximale = 15 : d = 16 signifie réseau inaccessible (distance infinie) ;
InfraRes – P-FB
Utiliser RIP sur un petit réseau que l’on contrôle et où l’on fait confiance aux administrateurs réseau.
Algorithmes de routage dynamique 50
7.1 Routing algorithms
Les algorithmes de constructions des chemins de routage
189
Depuis le schéma d’interconnexion des différents routeurs, on déduit un graphe dont les arêtes sont
étiquetées par un poids :
1
1
2
4
4 1 3
2
3 1 4
5 6
7 1
Sur7.1
Fig. le graphe
A on ne prend
network en compte
topology que les
with seven routeurs
nodes and tenque l’on numérotera
bidirectional et pas
links and les réseaux auxquels
the corresponding weighted
directed connectés
ils sont directement graph pour simplifier la description du fonctionnement de l’algorithme.
The edge weight can be used to represent the specific cost of network links in all the
InfraRes – P-FB
situations where link characteristics must affect the choice of the path to be followed
by packets. Therefore, the cost of a link can be defined in different ways: the physical
distance covered by the link, the amount of traffic routed along the link, the inverse of the
link bandwidth, to name a few. The cost or distance of a network path is defined as the
graph,
for there
each hare
≥ no loops
1 and i ! =[Link] or zero length, this algorithm
y one The
solution. Figure
algorithm 7.2after
stops shows an example
a finite number of of iterations
application
h0 of
≤N the
, where N is the number
orithm. ParThe
of nodes. vecteur
value Ddeh0
distance
i obtained at the final step is the shortest distance over all possible 51
pathsLefrom node i to node
déroulement 1, i.e., Dih0 de
de l’algorithme =D i . Therefore, the shortest path from a generic
Belmann-Ford
node i ! = 1 to node 1 is given by
h =1 ℎ = 1 : Lehnœud
= 2 1 apprend la distance qui le
1
1 Di = minj [dij relie
+ Daux
j ].
nœuds
1 2, 4 et 3 : (7.1)
1 3 1 nœud2 distance
2
4 ni = j, such that Eq. (7.1) is satisfied.
1
1 4 22 2 par 42
2 4 3 3
6 2 or zero 5
1 If, in the directed graph, there are no 4loops 4ofpar 4
negative 5 length, this algorithm
always returns only one solution. Figure3 97.21 par 5
shows 6
3 an example of application of the
Bellman–Ford algorithm.
7
ℎ = 2 :1le nœud
h = 41 reçoit les informations
h = 1concernant
h =5 h =2
2 nœuds 5, 16 et 7 :
les 4 1 1 1
1
2 nœud distance
24 3 1
2 1 2
1 24
3
5 2 5 (3+2)1 par 224 1 1
1
3 4 3 2 4 3 2 4 3
2 4 2 3
5 6 5 2
3 76 5 (4+1)1 par 3 3 5
3
6
7 91(7+2)5par 2 4 6
5 4 6 9
5 6
7 6
et mets à jour : 5
7
nœud distance 7
InfraRes – P-FB
7
4 h =2
3 (1+1) par 3 h =4 h =5
–Ford algorithm
1 1
2 2 1
1 1 2
5 6 5
7 in the directed graph, there are no loops of negative2or zero 5length, this algori
1 If,
always returns only one solution. Figure 7.2 6
5 an example
1 9 shows of application of
Par vecteur de
7 distance
Bellman–Ford algorithm. 52
Le déroulement de l’algorithme de Belmann-Ford – Suite 7
h =3 ℎ = 31: le nœud
h =1
4 reçoit des informations
h = 1 concer-
h =5 h =2
2 1
1 4 1 nœud distance
1 1
2 2 42 1 3 1
2 1 2
1 3 1 16 3 (2+1) par
42 3 1
2 4 2 3 2 4 42 32 4 3 1 2 4 3
7 6 (5+1)
2 par 2 4 2 3
5
3
nant les
5 nœuds 76 et 6 3: 5 2
7 1
3
5 6 1 5 6 5
4 5 4 69
6 7 6
5
7 7 7
7
ℎ = 4 : le nœud 1 reçoit des informations
h = 3 concernant h =4 h =5
Fig. 7.2 Example of Bellman–Ford algorithm
le nœud 5, ce qui va modifier les informations
1 du 7 : 1
1
nœud distance 2 2
1 1 2
5 4 (3+1) par 3 2 4 2 3 2 4 2 3 1
2 4 2
5
7 6 (5+1) par 2 ⟶ à modifier... 3 3
3
5 6 5 6
4 5 4
6 6
5
7 7
InfraRes – P-FB
h =5 nœud distance
1 2 2 par 2
1 2 3 1 par 3
3 1
2 4 2 3 4 2 par 3
3
3 5 4 par 3
6
4 5 4 6
6 3 par 3
5
7 5 (4+1) par 3
7
InfraRes – P-FB
Par vecteur de distance 54
A 1 D
1 7
Pour le routeur A : C
∘ il reçoit les «vecteurs de distance» des routeurs B et C (sur l’exemple, on considère que ces informations arrivent
simultanément, ce qui est rarement le cas mais ne modifie pas le résultat de l’algorithme) :
Routing table at node A: Initial Routing table at node A: After 1st exchange
Distance to Received Distance Vectors Distance to
A B C A B C D A B C D
From B
A 0 10 1 10 0 1 1 A 0 2 1 8
From
B ∞ ∞ ∞ B 10 0 1 1
From
A B C D
From C
C ∞ ∞ ∞ 1 1 0 7 C 1 1 0 7
L’algorithme est distribué : Initial routing tables: After 1st exchange: After 2nd exchange: After 3rd exchange:
Routing table
at node A
– mets à jour sa table ; A 0 10 1 A 0 2 1 8 A 0 2 1 3 A 0 2 1 3
From
From
From
From
B B B B
– si la table est modifiée,
∞ ∞ ∞ 10 0 1 1 2 0 1 1 2 0 1 1
C C 1 1 0 7 C 1 1 0 2 C 1 1 0 2
il la rediffuse ;
∞ ∞ ∞
est stable. A B C D A B C D A B C D A B C D
Routing table
at node B
A ∞ ∞ ∞ ∞ A 0 10 1 ∞ A 0 2 1 8 A 0 2 1 3
B 10 0 1 1 B 2 0 1 1 B 2 0 1 1 B 2 0 1 1
From
From
From
From
C ∞ ∞ ∞ ∞ C 1 1 0 7 C 1 1 0 2 C 1 1 0 2
D ∞ ∞ ∞ ∞ D ∞ 1 7 0 D 8 1 2 0 D 3 1 2 0
A ∞ ∞ ∞ ∞ A 0 10 1 ∞ A 0 2 1 8 A 0 2 1 3
B ∞ ∞ ∞ ∞ B 10 0 1 1 B 2 0 1 1 B 2 0 1 1
From
From
From
From
C 1 1 0 7 C 1 1 0 2 C 1 1 0 2 C 1 1 0 2
D ∞ ∞ ∞ ∞ D ∞ 1 7 0 D 8 1 2 0 D 3 1 2 0
B ∞ ∞ ∞ B 10 0 1 1 B 2 0 1 1 B 2 0 1 1
From
From
From
From
C ∞ ∞ ∞ C 1 1 0 7 C 1 1 0 2 C 1 1 0 2
InfraRes – P-FB
D 1 7 0 D 8 1 2 0 D 3 1 2 0 D 3 1 2 0
Par vecteur de distance : les problèmes & solutions 56
From
From
shortest distance
C 1 1 0 2 to D, via C C 1 1 0 2
D 3 1 2 0 D 3 1 2 0
InfraRes – P-FB
Problème : les routeurs ont une vision limitée de la topologie du réseau, et C ne sait pas que sa route passe par B !
Par vecteur de distance : les problèmes & solutions 57
Lors d’une boucle de routage, le datagramme va rebondir d’un routeur à l’autre jusqu’à ce que son TTL devienne nul.
Les distances menant à la destination dans les tables de routages de ces deux routeurs ne cessent d’augmen-
ter :«counting-to-infinity».
Solutions :
– introduire un temps d’attente de modification, «hold-down», supérieur au temps de convergence de l’algorithme :
⋄ lorsque le routeur détecte une rupture il déclenche sa mesure du temps d’attente ;
⋄ il diffuse l’information de cette rupture à ses voisins ;
⋄ les voisins font de même et déclenchent leur mesure du temps d’attente ;
⋄ il ignore les mises à jour réalisée par des routeurs qui ignorent la rupture ;
⋄ à la fin du temps d’attente, on reprends l’algorithme en mode normal.
– utiliser la solution du «split-horizon» : «il est inutile d’envoyer une information concernant une destination vers un
routeur qui est le prochain saut vers cette destination»
Dans l’exemple précèdent, C n’aurait pas diffuser de route vers D à B et n’aurait pas créer de boucle.
IPv4 address
subnet mask
16
RIP route entry
bytes
next hop
distance metric
⋄ les paquets sont diffusés toutes les 30 secondes et un routeur qui ne donne plus de nouvelles depuis 180 secondes
(valeur du hold-down est considéré comme disparu.
RIP : les problèmes194 Routing fundamentals and protocols
59
Les mauvaises nouvelles se transmettent lentement !
A B C
period node B deletes the routing information to node C. On the other hand, B learns from
A’s distance vector that DAC = 2 and then it recomputes DBC = DBA + DAC = 3. Then
B informs A that its new distance to C is DBC = 3, forcing A to recompute DAC = 4. This
process could continue forever, although it is stopped by setting a maximum distance
si le lien entre R3 et R4 se casseDles routes se mettent à jour lentement pour atteindre un coût infini pour aller
max such that when Dij > Dmax , node j is assumed to be unreachable.
vers R4
Split horizon is a very simple technique useful for tackling the count-to-infinity prob-
lem. If node A forwards packets to a destination node C through node B, it does not
make any sense for node B to try to reach node C through node A. Therefore, it is useless
that node A informs B about its distance to C. This modification to the routing protocol
implies that a node now has to send different distance vectors to different neighbor nodes,
by properly selecting information from its table. This makes the distance vector creation
process a little more complicated.
Triggered update is a further improvement aimed at reducing the time required to
converge to the shortest path solution. It deals with the timing for sending updated
distance vectors to the neighbors. Besides the periodic updates sent by each node to
its neighbors, the triggered update technique requires that, if there is any change in
the routing table, a node immediately sends an updated distance vector. This behavior
reduces the chance of spreading wrong routing information caused by outdated distance
vectors.
Améliorations de l’algorithme Although solutions such as split horizon and triggered update improve the performance
of a distance vector protocol, convergence problems still persist, especially when cycles
– définir l’infini comme un entierarepetit (16
present parnetwork
in the exemple) ; A possible way to drastically overcome this issue is
topology.
– prévenir les routeurs en transmettant une
to include the routelist
complete avec un traversed
of nodes coût infini, «reverse
to reach poisoning»
each destination & «split-horizon».
in the distance
vector sent to neighbors, which is now called path vector. A router is, thus, able to select
InfraRes – P-FB
only the valid elements in the path vectors received by the neighbors by ignoring the
destinations with a path where the router itself is already present. This solution eliminates
the risk of cycles in routing paths, although it requires additional overhead due to the
increased amount of information to be exchanged.
⋄ recalcule localement pour chaque lien modifié, la nouvelle route selon l’algorithme de Dijkstra «shortest path algorithm»
qui détermine le plus court chemin pour toutes les destinations à partir d’une même source.
Par état de lien 61
L’algorithme du plus court chemin de Dijkstra
1. on commence avec le noeud source : il est étiqueté comme permanent et sa distance au noeud
source est évidemment nulle.
C’est le noeud actif ;
2. tous les noeuds adjacents au noeud actif sont examinés tour à tour ;
3. chaque noeud est étiqueté en indiquant le meilleur chemin connu au noeud source et la liaison à
utiliser pour l’atteindre ;
4. à chaque tour, le «noeud actif» est celui qui, parmi tous les noeuds étiquetés du réseau, possède la
valeur la plus faible vers le noeud source.
Son étiquette devient permanente ;
1 1 1
nœud 2
distance 1 21 1 21 1
4 4 1 4 1 1
1 0 par 1 1 2 1 2 1 2 1
2 4 3 2 4 4 3 2 4 4 3 4
13par 3 1 1 1
3 1 42 43 31 42
34 31 42 4 3
3 3 3
1 4 1 4 6 1 4
5 1 6 5 1 6 5 1
7 7 7
5 11 6 5 11 6 5 1 6
1 7 7 7
1 1 1
7 7 7
InfraRes – P-FB
7 7 7
Fig. 7.3 Example of Dijkstra algorithm
1 1 1
2 1 2 1 2 1
kstra algorithm
∗ such that D = min
Psolution ∗ Dj and then set P∗ = P∗ − {i}
to thei shortestj∈Ppath computation problem is given by the Dijkstra
Par état
m. Assuming dethat
again liennode 1 is the reference destination node, during the 63
Le déroulement
m execution the set V ofdethe
l’algorithme
N nodesde is Dijkstra – Suite
partitioned into two subsets: node i is in
P if its minimum distance Di to the reference node has already been computed,
nœud distance
1 1
subset
1 P∗ = V2− P includes 1 all nodes3 whose
21 par 3shortest
1 path to node 1 is still to
4 4
1d. 1 42 2 par 43 1
3 2 4 3 3
l conditions are: 3P = {1}, D1 = 0 , Dj =3 dj1 ∀ j ∈ P∗ . The algorithm works
1 4 1 4 1 4
ly as follows:
1 6 5 1 6 5 1 6
7 7
termine the node i ∈ P1∗ such that Di = minj∈P∗1Dj and then set P∗ = P∗ − {i}
d P = P ∪ {i}; 7 7
1
1 nœud 2
distance 1
1 4 1 1
1 32 1 par 3 1 1 2 1 2 1
3 2 4 4 3 4 4
31 2 4 par 31
234 3
1 1
4 3
1 42 3
4 3 2
3
4 3
4 6 3 par 3 1 4 6 1 4 1 4
1 6 5 1
7
6 5 11 6 5 1 6 5 1 6
7 7 7
1 1 1
7
InfraRes – P-FB
7 7 7
1 1
2 1 2 1
1 4 1 4 11 4 j j1 1
iteratively as follows:
5 1 6 5 1 6 5 1 6 5 1
7 7 7 7
Par état de lien
1 (i) Determine
1 the node i ∈ P1∗ such that Di = minj∈P
64 ∗ 1Dj a
7 7and P = P ∪ {i}; 7 7
Le déroulement de l’algorithme de Dijkstra – Suite
nœud distance
1 1 1
2 1 3 1 par 3
21 1 21 1 1
4 41 4 1 1
1 24 1 2 1 2
2 4 3 2 4 2 par 34 3 2 4 4 3 4
3 1 1 1
1 42 5 43par 3 3 1 42
34 31 42 4 3
3 3 3
1 4 1 4 1 4
5 6 6 3 par 35 6 5 6
7 1 7 1 7 1
5 1 1 6 5 11 6 5 1 6
1 7 7 7
1 1 1
7 7 7
7 7 7
Fig. 7.3 Example of Dijkstra algorithm
nœud distance
1 1 1
3 1 par 3 2 1 2 1 2 1
4 4 4
4 2 par 3 1 1 1
2 4 3 2 4 3 2 4 3
3 3 3
5 4 par 3 1 4 1 4 1 4
6 3 par 3 5 6 5 6 5 6
7 1 7 1 7 1
7 5 par 3 1 1 1
InfraRes – P-FB
7 7 7
1 6 5 1 6 5 1 6
7 7
1 1
7 7
nœud distance
1
1 2 1 2 2 par 2
4
1 1 3 1 par 3
3 2 4 3
3
1 4 1 4 4 2 par 3
6 5 6 5 4 par 3
1 7 1
1 6 3 par 3
7 7 5 par 3
InfraRes – P-FB
:%&!+/-8&**!*$-+*!3%&#!N′!F!N9!O&/&!'*!(#!&=(7+)&P!
Example 1.3 Link State Routing Algorithm
K-#*'.&/! $%&! #&$3-/4! '#! B'65/&! C;EC@(A! (#.! (**57&! $%($! '$! 5*&*! $%&! )'#4! *$($&! /-5$'#6! ()6-/'$%79!
Par état de lien : autre exemple1$(/$'#6!?/-7!$%&!'#'$'()!*$($&!?-/!())!#-.&*,!*%-3!%-3!#-.&!3!?'#.*!$%&!*%-/$&*$!+($%*!$-!())!-$%&/!#-.&*!
66
'#! $%&! #&$3-/49! :%&! ?'65/&! <&)-3! *%-3*! %-3! #-.&! 3Q*! )'#4;*$($&! (.J&/$'*&7&#$! @012A! '*! </-(.8(*$!
Soit le réseau suivant : Le$%/-56%!$%&!#&$3-/49!
routeur A diffuse le LSA suivant :
B B
10 1 A’s LSA
10 re-broadcast from B
A 1 D
1 7
A’s LSA A D
broadcast from node A
C
Node
Seq.# Neighbor B C
ID =1 1 A’s LSA
=A Cost 10 1
re-broadcast from C
C !
A 1 D
LSP from node A
Node
Seq.# Neighbor B C
ID
=1 Cost 10 1 7
=A
1
LSP from node C
InfraRes – P-FB
Node
Seq.# Neighbor A B D
ID
=1 Cost 1 1 7
C =C
«Par vecteur de distance» vs «par état de liens» 67
AS Inter-AS
Link
Area 0
(backbone) ASBR
ABR
ABR
ABR ABR
Area [Link]
Area 11
(NSSA: ASBR
(non-backbone
allowed, otherwise
non-stub)
same as stub)
ASBR
Area 1.17 Area 24
ASBR
(stub: no ASBR (total stub area:
allowed, default no ASBR, only
external routes) one default
route)
Inter-AS
Inter-AS Link, RIP, etc.
Link
domain attached to the global Internet. If a router is not an ABR or ASBR, it is either an
⋄ intra-area ; internal router and has all of its interfaces within the same area, or a backbone router
⋄ inter-area. with at least one link to the backbone. However, these terms are not as critical to OSPF
configurations as to ABRs or ASBRs. That is, not all backbone routers are ABRs or ASBRs;
backbone routers can also be internal routers, and so on.
shared medium allows further reduction of the OSPF overhead, since link state packets
can be transmitted using a multicast address, meaning that a single packet sent by the
DR reaches all its adjacent routers simultaneously.
When N routers are connected to a point-to-multipoint network through a non-
broadcast medium, two different choices are possible, depending on the lower-layer
protocols and configurations used. The first option consists of establishing full adja-
cency between any pair of routers, emulating the presence of N (N − 1)/2 point-to-point
connections. The alternative is to emulate the behavior of a broadcast network by electing
a DR and establishing N − 1 full adjacencies with the other routers.
Another OSPF feature that adds flexibility to the router configuration is represented by
OSPF : avantages et inconvénients 70
Caractéristiques
∘ il est compatible CIDR et VLSM ;
∘ il permet de gérer plusieurs routes pour une même destination selon des critères différents (ex : délai court, débit
important…) ;
∘ il permet d’équilibrer la charge, «load balancing», entre des routes de coûts équivalents ;
∘ il peut utiliser le Type of Service (ToS) présent dans les en-têtes des datagrammes suivant 5 classes (RFC 1349) pour
contrôler le routage ;
L’échange entre les routeurs sont authentifiés et un calcul d’intégrité des messages est réalisé.
Avantages
⋆ plus de limitation sur la taille des réseaux (diamètre > 16).
⋆ amélioration du temps de convergence
⋆ métrique plus sophistiquée (prise en compte des débits)
Inconvénients
⊳ plus complexe : nécessite des routeurs plus puissants, sa configuration est également plus complexe.
Calcul des métriques en fonction du débit suivant les différentes technologie sur 16bits:
109
𝑐𝑜𝑢𝑡 = 𝑏𝑎𝑛𝑑𝑒 𝑝𝑎𝑠𝑠𝑎𝑛𝑡𝑒 𝑒𝑛 𝑏𝑝𝑠
routeurs.
OSPF : exemple Ivan Marsic • Rutgers University
72
348
le LSD :
7
⋄ les sommets correspondent à un routeur ou à un ré-
seau ; 4 6
D
H1
⋄ une arête du graphe : N2
1 5
!"#$% &'(&')'*+)% *'+,-&.% +-(-/-01% 2)% 2% directed graph3% 4*% '526(/'% 7)% )8-,*% 7*% $709&'% :;<=%
,8'&'%29+-*-6-9)%)1)+'6%4"α%7)%&9**7*0%!"#$%2)%7+)%7*+'&7-&%02+',21%(&-+->-/3%?8'%@'&+7>')%-A%
+8'%/7*.;)+2+'%B2+2C2)'%0&2(8%&'(&')'*+%routers%2*B%networks3%4%0&2(8%'B0'%>-**'>+)%+,-%&-9+'&)%
InfraRes – P-FB
,8'*% +8'1% 2&'% 2++2>8'B% @72% 2% (81)7>2/% (-7*+;+-;(-7*+% /7*.3% 4*% 'B0'% >-**'>+7*0% 2% &-9+'&% +-% 2%
*'+,-&.%7*B7>2+')%+82+%+8'%&-9+'&%82)%2*%7*+'&A2>'%-*%+8'%*'+,-&.3%D'+,-&.)%>2*%C'%'7+8'&%transit%
-&% stub% *'+,-&.)3% Transit network% 7)% >2(2C/'% -A% >2&&17*0% B2+2% +&2AA7>% +82+% 7)% -&707*2+'B% 2*B%
B')+7*'B% '5+'&*2//1% +-% +87)% *'+,-&.3% 4% +&2*)7+% *'+,-&.% 7)% &'(&')'*+'B% C1% 2% @'&+'5% 82@7*0% C-+8%
7*>-67*0%2*B%-9+0-7*0%'B0')3%4%)+9C%*'+,-&.E)%@'&+'5%82)%-*/1%7*>-67*0%'B0')3%$-&%'526(/'=%7*%
$709&'%:;<FCG=%NH%7)%2%+&2*)7+%*'+,-&.%2*B%NI%7)%2%)+9C%*'+,-&.3%?8'%62((7*0%7)%2)%A-//-,)J%
Faire le point 73
Différences entre les EGP, comme BGP, et les IGP, comme OSPF ?
La différence n’est pas technique mais elle est administrative :
∘ les IGP sont utilisés dans une organisation (entreprise, FAI, association, etc.) où les décisions (ajout ou suppression de
ligne) peuvent être prises par une autorité unique ;
∘ les IGP cherchent à déterminer la route la plus efficace en faisant confiance aux autres routeurs ;
∘ les EGP sont utilisés entre organisations distinctes, et parfois même concurrentes :
⋄ il n’est pas possible de prendre une décision qui s’impose à tous (on peut ne pas être prévenu des modifications des
« pairs » avec lesquels on utilise l’EGP) ;
∘ les EGP ne font pas confiance aux autres routeurs :
⋄ le but n’est pas de trouver la meilleure route, mais d’empêcher les routeurs de choisir une route dont on ne voudrait
pas ;
Techniquement, il n’est pas possible dans un IGP comme OSPF d’exprimer que l’on ne veuille pas communiquer avec un
routeur (on peut juste exprimer que l’on veut communiquer avec un routeur, il faut disposer de moyen de faire du filtrage.
Intégration IGP/EGP : Learn from IGP protocol
that destination x
external to own AS is
reachable via multiple
speakers.
Use info from IGP
routing tables to
determine least-cost
paths to each of the
speakers.
Hot-potato routing:
Choose the speaker
with the lowest least-
cost.
Determine the interface
O that leads to the
least-cost speaker.
Enter (x,O) in
InfraRes – P-FB
forwarding table
Linux comme routeur : RIP, OSPF, BGP… 74
GNU/Linux :
– son noyau permet de router et de «commuter», «forwarding», les datagrammes entre différentes interfaces ;
– peut se tansformer en routeur complet, en utilisant des implémentations open-source des protocoles de
routage, comme celles fournies par XORP ou Quagga.
Utilisation de Quagga
Quagga204implémente Routing
les protocoles RIPv1, RIPv2,
fundamentals RIPng, OSPF, BGP, OSPF6 et IS-IS au travers de différents
and protocols
démons spécialisés dans la réalisation de chacun de ces protocoles.
Afin de coordonner les informations de routage utilisées et obtenues au travers des différents protocoles, un
démon appelé «zebra» est utilisé :
zebra
kernel
InfraRes – P-FB
B C
Quagga 75
Dans le répertoire /var/run/quagga sont créés des fichiers temporaires indiquant les PIDs des différents
démons.
InfraRes – P-FB
Quagga : configuration du routeur 76
Pour configurer le routeur, vous pouvez utiliser la commande vtysh (on peut également utiliser la
commande «telnet» vers les ports 2601 ou 2602) :
xterm
pef@pef-desktop: $ sudo vtysh
La commande network permet d’indiquer sur quelle réseau le routeur va utiliser son protocole de
routage et diffuser ses requêtes/réponses, ici [Link]/8.
InfraRes – P-FB
COMPLÉMENT ??
B!.$+1!.# 0(# ?>$?>A(# CDEF:# =G<H@:#(+$,I# ('+# A&.&)&(# 6!")# $!.+)/%()# %('# &$?>.A('# 0(
COMPLÉMENT
)!"+(',#J">.0#".#)!"+(")#&3(+#".#6>;"(+#K9#$!.+(.>.+#0('#0!..&('#789:#".(#(36)(1.+(
('+#$>%$"%&(#(+#1.'&)&(#0>.'#%(#6>;"(+#L-9:#6"1'#5&)1!&(#6>)#%M>"+)(#)!"+(")#789:#$!33(
%M1%%"'+)(#%>#!A")(#NN,O,
Sécurité et BGP : Sécuriser les sessions extérieures de BGP : eBGP 77
ère
1 méthode : 3/4&+%(5562
a. les deux routeurs !"#$%&'()*+)%"+$,-().,%)'(/)
partagent un secret X ;
/(0%($/).,%$,-1/
b. dans la communication BGP en TCP entre
Réseau Réseau
les deux routeurs : AS1 AS2
⋄ un hash est calculé sur les données de !"#$%&$'#()*%)+,)-%.$'#()*/)"0.%,/
routage échangées combiné avec le se- Session de routage
CHAPITRE 11
123
cret partagé X (MD5, SHA-x etc.) ; eBGP
⋄ ce hash est transmis avec les données Routeur (secret X) Routeur (secret X)
7,%$&'*#,+$,/8&.,/&)"-(,$/&9!&+0%$,%"%$&',/&*%:0#7"$*0%/&',�($"1,&23!&57*/&)"#&(%
⋄ le routeur qui reçoit les données peut
TCP + TCP +
recalculer l’empreinte et vérifier l’utili-
#0($,(#&'0*;,%$&"##*;,#&<&.="($#,�($,(#&";,+&(%&>>?&@&>>?&A&B&!"#$%&!'(%)&**+,-+
empreinte (champs, X) BGP empreinte (champs, X) BGP Compare les empreintes.
R '($)(+#6>)+>A&#!"#$%&#'($)*+(#C01'+)1V">)#".#$>.>%#'&$")1'&I,
IP + IP +
TCP BGP TCP BGP
TTL = 255 TTL = 254
WM(36)(1.+(#('+#1.'&)&(#0>.'#%(#$?>36#X6+1!.'#0"#6>;"(+#L-9:#6()3(++>.+#0(#3(++)(#(.
Vérification du TTL >=254
InfraRes – P-FB
4"5)(# ".# 3&$>.1'3(# 0(# $!.+)/%(# 0M".(# '(''1!.# 0(# )!"+>A(# 789,# Y.# )(5>.$?(:# (%%(# .(
6()3(+#6>'#0M>"+?(.+1!()#%(#$?(31.#6)1'#6>)#".(#)!"+(#.1#%M!)1A1.(#0(#%>#)!"+(,
C077,&(%,&"%%0%+,&',�($,/&,%$#,&',(4�($,(#/&+0##,/)0%'&+D"-(,&:0*/&<&(%&%0(;,"(
W('#01BB&)(.+'#'($)(+'#6>)+>A&'#6()3(++(.+#>"''1#0(#$)&()#0('#A)!"6('#01'+1.$+'#!"#6&)13*H
)"-(,$&9!8&.,&>>?&'(&)"-(,$&9!&57*/&,/$&)"#&'5:"($&51".&<&EFFG&H*&.="($#,�($,(#&#,I0*$&',/
+)('#0(#'&$")1+&#(.+)(#%('#'(''1!.'#1789#(+#%('#015()'('#'(''1!.'#(789,
"%%0%+,/&',�($,/&"J"%$&(%&>>?&-(*&%=,/$&)"/&51".&<&EFK8&*.&),($&,%&+0%+.(#,&-(,&+,&%=,/$
COMPLÉMENT
COMPLÉMENT
+#++"0$+%3#%.0',/5#%!89%+(4,/2)"++#$,%!"#%)#%6.0,0-0)#%G9+#-<%=0.+%3#%)(/$$0$-#%3('$#
.0',#:%-?/&'#%+F+,;1#%/',0$01#%A4."!#%)#%-?#1"$%41"+%#,%+"5$#%>%+0$%,0'.%/A#-%+/%-)4
6."A4#%)#%-?#1"$%+(")%30",%)(/$$0$-#.%>%'$%/',.#%+F+,;1#%/',0$01#:%-011#%)("))'+,.#%)/
Sécurité et BGP : contrôle de l’authentification des routes échangées 78
??
!5'.#%HH<HH%C)#+%+"5$/,'.#+%+(#16")#$,%-011#%)#+%-0'-?#+%3('$%0"5$0$E<
⋆ Avec des certificats et des biclés asymétriques :
&+%(66766 BGP
BGP BGP
+ Sign_1(2,1) + Sign_2(3, Sign_1(2,1)) + Sign_3(4, Sign_2(3, Sign_1(2,1)))
&'()*+,-.,(%.'#/+,0#(, Path : AS(1) Path : AS(1), AS(2), AS(3)
Path : AS(1), AS(2)
'4+&'"!2#'"%&,1567
Réseau Réseau Réseau Réseau
AS(1) AS(2) AS(3) AS(4)
⋄ Chaque routeur signe le chemin auquel il s’ajoute lors de la traversée des différentes AS ;
!"#$%&$'#()*%)+,)-%.$'#()*/)"0.%,/
=/%3#'*";1#%"$","/,"A#%#*6)0",#%)#%7/",%&'#%)#%346)0"#1#$,%3('$%+F+,;1#%>%-)4%6'2)"&'#
⋄ Le routeur final peut vérifier que le chemin proposé passe bien par des routeurs authentifiés. CHAPITRE 11
123
/B0',4%/'*%"16/-,+%-.F6,05./6?"&'#+%+'.%)#+%6.0-#++#'.+%3#+%.0',#'.+%)"1",#$,%'$#%1"+#
⋆ Avec des chaîne de hachés :
#$% I'A.#% ./6"3#%partage
a. L’AS1 et l’AS
3('$% un ,#)%secret
+F+,;1#<%
X;
J%="+,#$% /$3% K?"+6#.%L% 6.060+#% $0,/11#$,% '$#
5
4'-/"%)33531
14,?03#% 3#% -0$,.M)#%
b. une empreinte 3#+% /$$0$-#+%
𝑒0 = ℎ(𝑋) est cal-
*+,-!.%/&01&!+1-23/&42!&
3#% .0',#+% )"1",/$,% /'% 1"$"1'1%
BGP + h(x)
AS(1)
BGP + h(h(x))
AS(1),AS(2)
)#+% "16/-,+% +'.% )#
BGP + h(h(h(x)))
AS(1),AS(2),AS(3)
,#16+% 6.0-#++#'.%
culée par AS 1;
3#+% .0',#'.+<% =("34#% -0$+"+,#% >% 70'.$".%
%521-)/,-6!72-6+,&8)6"4/! '$% 14-/$"+1#% 6#.1#,,/$,%
Réseau Réseau
3#
c. une
A4."!#.% )/%nouvelle empreinte
-0$+"+,/$-#% 3#+%
𝑒𝑛 =/$$0$-#+%
ℎ(𝑒𝑛−1 ) 3#% .0',#+<% 9/.% #*#16)#:% >% )/% !5'.#%HH<HN:% )(OPC#E
AS(2) AS(3)
a. Chaque paquet qui entre dans un routeur est inspecté pour déterminer l’adresse IP de destination ;
b. À partir de cette adresse destination, le routeur consulte sa table de routage pour savoir où envoyer le paquet ;
d. Si elle n’est pas présente dans la table de routage, le routeur utilise la route par défaut ;
e. S’il n’existe pas de « route par défaut», le paquet est détruit et un message ICMP d’erreur est renvoyé à l’émetteur
du paquet.
L’outil pour manipuler les adresses et routes : la commande «ip»
xterm
pef@cerberus:~$ ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a7:08:97 brd ff:ff:ff:ff:ff:ff
inet [Link]/24 brd [Link] scope global eth0
inet6 fe80::20c:29ff:fea7:897/64 scope link
valid_lft forever preferred_lft forever
Sur l’autoroute, vous avez le choix de prendre une voie normale ou bien celle pour les véhicules lents.
Suivant la nature de votre véhicule vous êtes amené à faire un choix supplémentaire par rapport à celui
de votre destination :
⊳ en camion, je prendrais la voie pour véhicule lent ; Ce choix supplémentaire est fait suivant la nature
de la source.
⊳ en voiture, la voie normale…
□ l’adresse source,
□ le protocole IP,
□ le TOS,
□ le protocole de transport utilisé,
□ ou même le contenu du paquet…
InfraRes – P-FB
Routage & Linux : le «Policy based Routing», «PBR» 81
La notion de «Policy Based Routing»
Une «policy» est un ensemble de règles de prescriptions ou d’interdictions, ainsi que d’actions qui servent à mettre en
place un «but» défini comme «souhaitable».
de routage (comme le fait BGP par exemple en bloquant l’annonce de préfixes réseaux).
La «triade» des fondamentaux 82
Les 3 éléments fondamentaux
⊳ Adresse : définit la localisation d’un service ;
⊳ Route : définit la localisation de l’adresse ;
⊳ Règle : définit la localisation de la route.
L’adresse
Exemple : un serveur Web en IPv4 :
∘ pour se connecter dessus : on entre son URL dans un navigateur ;
∘ une résolution de nom est réalisé au travers d’un serveur DNS pour connaître l’adresse IPv4 associé ;
∘ on demande alors le service http accessible à cette adresse ;
∘ Quel rapport entre cette adresse et l’adresse physique de la machine hébergeant le serveur Web ? Aucun !
∘ l’adresse sert de « pointeur» pour le navigateur pour lui permettre de trouver le contenu voulu.
∘ Du point de vue de la «Policy based Routing», l’adresse d’origine et aussi importante que celle de destination, ainsi que
l’intégralité du paquet : cela définiera la route à emprunter, empêchera l’utilisation d’une adresse IP non autorisée (IP
spoofing), etc.
La route
La route définit la méthode de «forwarding» ou relayage, pour aller vers l’adresse de destination.
La «Policy routing» permet :
∘ de sélectionner une route différemment mais une fois la route obtenue, elle est utilisée de la même façon qu’avant ;
∘ de définir d’autres destinations, en plus de celle traditionnelle de l’adresse d’un routeur :
⋄ spécifier une option de «rejet», reject ;
Cette option est similaire à un « lookup failure» et retourne un message d’erreur ICMP de type 3 et code 0 «network
unreachable».
⋄ spécifier une option de d’«interdit», denied ;
Il est possible de renvoyer un message ICMP d’erreur ou bien de «jeter», drop, le paquet.
⋄ réaliser du NAT en version «one-to-one».
Cette version est plus rapide que celle proposée par NetFilter, elle est appelée «FastNat» mais elle n’utilise pas de
«Connexion Tracking» et se réduit à du NAT «one-to-one».
La règle ou rule
La règle permet de mettre en œuvre une sorte d’« ACL», Access Control List, pour les routes.
Une règle permet de :
⊳ définir les filtres pour l’appariement de paquet, packet matching,
⊳ la route à utiliser lorsqu’il y a correspondance entre un paquet et un filtre de sélection.
InfraRes – P-FB
La règle permet, entre autre, de sélectionner une route suivant l’origine du paquet.
Pour pouvoir tirer parti au maximum des possibilités des règles, il faut disposer de plusieurs tables de routage.
Routage & Linux 84
La «Routing Policy Database» ou «RPDB»
Les entrées de la table de routage :
∘ indiquent des chemins vers les autres réseaux ;
∘ sont, chacunes, constituées de :
⋄ un préfixe, c-à-d une adresse réseau et la taille de l’identifiant réseau (notation CIDR [Link]/yy) ;
⋄ le TOS associé (information optionnelle) ;
⋄ une valeur de préférence ;
⋄ une interface de sortie ;
⋄ l’adresse du routeur de prochain saut, «next hop».
La correspondance, «matching», entre un paquet et une entrée de la table de routage :
∘ l’adresse de destination du paquet correspond au préfixe réseau indiqué dans l’entrée ;
∘ le TOS de la route est zéro ou égal à celui du paquet.
Lorsque plusieurs routes correspondent aux paquets, la sélection, «lookup», se fait de la manière suivante :
1. les routes de plus long préfixe correspondant sont sélectionnées, les autres sont ignorées ;
2. parmi les routes restantes :
⋄ les routes ne possédant pas le même TOS sont ignorées ;
⋄ si aucune(s) route(s) possédantt le même TOS n’ont été trouvés, et qu’il existe des routes avec un TOS= 0 alors
ces routes sont choisies et les autres ignorées ;
⋄ sinon ⟶ échec du «lookup»
3. S’il reste plusieurs routes après le filtrage précédent, on choisit la route avec la valeur de préférence la plus élevée
(il ne devrait rester plus qu’une route par définition).
InfraRes – P-FB
La «Routing Policy Database» 85
Les différents types de routes
⋆ unicast : destination directe désignée par un préfixe ;
⋆ unreachable : destinations inacessibles, les paquets détruits et un paquet ICMP «host unreachable» est renvoyé ;
⋆ blackhole : destinations inacessibles et les paquets sont détruits sans avertissement ;
⋆ prohibit : destinations inacessibles, les paquets détruits et un paquet ICMP «communication administratively
prohibited» est renvoyé ;
⋆ local : destinations associés à l’hôte lui-même : les paquets seront en «loop back» et remis en local ;
⋆ broadcast : destinations correspondant à des adresses de diffusion ;
⋆ throw : le «lookup» échoue, signifiant qu’il n’existe pas de route. Sans règle supplémentaire un message ICMP
«network unreachable» est renvoyé.
⋆ nat : route spéciale capable de réaliser du NAT avec l’attribut «via» ;
⋆ anycast : similaire à local avec une restriction : l’@IP source du paquet ne peut appartenir à ces adresses ;
⋆ multicast : pour du routage multicast.
xterm
rezo@ishtar:~$ ip route list table main
default via [Link] dev eth0 metric 100
[Link]/24 dev eth0 proto kernel scope link src [Link]
xterm
rezo@ishtar:~$ ip route
default via [Link] dev eth0 metric 100
[Link]/24 dev eth0 proto kernel scope link src [Link]
La table modifiée par la commande ip route est, par défaut, celles appelées main.
InfraRes – P-FB
La «Routing Policy Database» 87
L’ajout de route avec la commande «ip route add»
Les arguments de cette commande :
⋆ to PREFIX, to TYPE PREFIX : permet de définir la destination. Sans Indication de TYPE, le type «unicast» est utilisé ;
⋆ tos TOS ou dsfield TOS : permet d’indiqué le TOS ou le dsfield ;
⋆ metric NUMBER ou preference NUMBER : la valeur de préférence exprimée sur 32bits ;
⋆ table TABLEID : la table à laquelle ajouter la route. Sans indication, c’est la table «main» qui est choisie sauf dans le cas
d’un type de route local, broadcast et nat où la route est ajoutée dans la table local par défaut ;
⋆ dev NAME : l’interface de sortie ;
⋆ via ADDRESS : l’adresse de prochain saut. Suivant le type de route : pour le type unicast, c’est l’adresse du routeur de
prochain saut, pour le type nat, c’est l’adresse de traduction d’adresse ;
⋆ src ADDRESS : l’adresse source de préférence lors de l’envoi vers la destination ;
⋆ realm REALMID : pour définir des groupes de destination (beaucoup de destinations de préfixes différents) ;
⋆ mtu MTU ou mtu lock MTU : positionne la MTU de façon modificable ou non (le protocole Path MTU Discovery permet de
le modifier) ;
⋆ window NUMBER : permet de choisir la taille de fenêtre maximale pour TCP indiquée en octets ;
⋆ advmss NUMBER : permet de définir le MSS de TCP (sinon il est dérivé de la MTU) ;
∘ ajouter un chemin multiple pour répartir la charge entre l’interface eth0 et eth1 :
xterm
# ip route add default netxhop dev eth0 via [Link] nexthop dev eth1 via [Link]
Attention, il n’y a pas de suivi de trafic comme dans le cas de l’utilisation de NetFilter.
L’indication de la table dans laquelle est fait le «lookup» est facultatif : il sera réalisé par défaut dans la table
«main».
InfraRes – P-FB
Le «Policy Routing», ou le routage suivant la nature de la source 89
L’utilisation de règles pour sélectionner les tables de routage
Le choix de la table de routage à utiliser se fait suivant des règles, «rules» :
xterm
rezo@ishtar:~$ ip rule list Chaque règle est préfixée par un numéro qui définit sa
0: from all lookup local priorité, permettant de les classer .
32766: from all lookup main
32767: from all lookup default
1. Priorité 0 : sélectionner la table locale «ID 255» assurant le routage pour les adresses locales ou de multicast.
2. Priorité 32766 : sélectionner la table main «ID 254» qui est la table de routage normale, sans route utilisant
du «policy».
3. Priorité 32767 : sélectionner la table default «ID 253». La table «default» est vide et réservée pour du «post-
traitement» lorsque les règles précédentes n’ont pas été sélectionnées.
Exemples
xterm
# ip rule add from [Link]/24 table ma_table prio 220
InfraRes – P-FB
xterm
# ip rule add from [Link] nat [Link] table 1 prio 320
Routage & Linux 91
il ne faut pas oublier de vider le cache avec la commande ip route flush cache.
Explication de la configuration :
∘ pour des datagrammes provenant de l’@IP [Link], il faut sélectionner la table ma_table_a_moi ;
∘ la table ma_table_a_moi rédéfinit la route par défaut et l’interface d’accès ;
InfraRes – P-FB
∘ le datagramme est routé suivant une table différente suivant sa provenance ⟹ On fait du routage suivant la source,
ce qui s’appelle du «routing policy».
«Routing Policy» & le firewall NetFilter 92
Le parcours du datagramme et le routage
⋄
--set-tos value Set Type of Service field to one of the
following numeric or descriptive values:
Minimize-Delay 16 (0x10)
Maximize-Throughput 8 (0x08)
Maximize-Reliability 4 (0x04)
⋆ modifier le champs TOS, «Type Of Service»/DSCP, «Differentiated Services field» : modifier la priorité du datagramme
7KHUHDUHRQO\ÀYH726YDOXHVZHFDQVHWVRWKH726WDUJHWGRHVQ WPRGLI\WKH
ZKROH726E\WH+RZHYHUWKLVFDQEHGRQHZLWK'6&3(Differentiated Services
IP en fonction de son origine, de son contenu etc. )LHOG&RGHSRLQWV 7KH'6&3ELWVDUHWKHÀUVWVL[ELWVLQWKH726E\WHDVVKRZQLQ
Cette modification permet de faire de la QoS entre routeurs capables de gérer ces priorités (RFC 2474, 2475).
WKHIROORZLQJÀJXUH
⋆ marquer le paquet dans sa gestion au sein du noyeau pour faire du «Routing Policy» :
xterm
iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j MARK --set-mark 1
Attention
InfraRes – P-FB
La marque n’existe que dans le noyau : elle ne sort pas de celui-ci et ne peut être communiquée par réseau.
Netfilter : sélection d’un paquet possédant une marque 94
Le module «mark» :
⋆ --mark : permet de sélectionner le paquet suivant une marque
Exemple d’utilisation
Utiliser une marque pour «mémoriser» l’interface d’entrée du paquet afin de réaliser du SNAT lors de
sa sortie :
⊳ Positionner une marque sur les paquets en entrée sur l’interface eth1 :
xterm
sudo iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 1
Il faut fusionner deux réseaux identiques en
[Link]/24 et permettre l’accès d’un
client d’un réseau vers le serveur de l’autre réseau…
Comment faire ?
InfraRes – P-FB
Un exemple : fusionner deux réseaux identiques 96
Il faut fusionner deux réseaux identiques en
[Link]/24 et permettre l’accès d’un
client du réseau B vers un serveur du réseau A…
Comment faire ?
⊳ Donner aux interfaces du routeur deux adresses différentes, une pour chaque réseau ;
⊳ Utiliser le firewall/routeur comme destination du service offert dans A pour le réseau B :
le port 8090 du routeur sera redirigé vers le port 8080 du serveur
⊳ Créer une «vue» différente du réseau [Link]/24 pour le routeur suivant l’interface d’entrée du data-
gramme :
⟹ «Policy Routing» !
⊳ permettre aux paquets allant de A vers B d’atteindre B :
⟹ Utiliser le marquage avec NetFilter et le «policy routing»
⊳ permettre aux paquets allant de B vers A d’atteindre A :
InfraRes – P-FB
⊳ on ajoute les règles de NetFilter suivantes pour le fonctionnement de TCP du client vers le serveur donné :
⋄ pour aller de A ⟶ B :
xterm
iptables -t mangle -A PREROUTING -i eth0 -s [Link] -p tcp --sport 8080
-j MARK --set-mark 1
⋄ pour aller de B ⟶ A :
xterm
iptables -t mangle -A PREROUTING -i eth1 -d [Link] -p tcp --dport 8090
-j MARK --set-mark 10
⊳ on définit les règles suivantes :
InfraRes – P-FB
Un exemple : fusionner deux réseaux identiques 99
xterm
sysctl -w [Link].rp_filter=0 On désactive le «Reverse Path Filtering», qui s’appuie sur la notion
de «Reverse Path Forwarding» RFC 3704, RFC 1827.
3 VPNs & Tunnels 101
Les VPNs, «Virtual Private Network»
L’utilisation d’un VPN permet, 4 usages :
⊳ la connexion entre un Site et un autre Site :
⋄ entre deux composantes d’une même entreprise séparées géographiquement ;
⋄ utilisant Internet pour faire circuler les données ;
⋄ en assurant les propriétés de sécurités de confidentialité et d’authentification ;
Sans VPN, on utilise des réseaux WAN privés pour interconnecter ces différentes composantes :
⋄ circuits «point-à-point» dédiés comme ATM (réseau opérateur téléphonique), ou MPLS (réseau de
type informatique), ou une combinaison SDSL, «Symmetrical Digital Subscriber Line» + MPLS ;
[Link]
⋄ assurant une bonne latence, une meilleure disponibilité, mais coûteux
⊳ un accès distant, «remote access» :
⋄ permettre la connexion d’un utilisateur depuis n’importe où sur Internet ;
⋄ indispensable pour les «roadwarriors», c-à-d les employés d’une société qui doivent voyager souvent pour leur
travail ;
⋄ permet la connexion de «télé-travailleurs», de sous-traitants qui doivent disposer d’un accès temporaire au réseau
de l’entreprise.
∘ permet de faire de la compression (réduction des transmissions), du contrôle d’erreur, du chiffrement avec ECP,
«Encryption Control Protocol» ;
∘ peut être utilisé au travers d’autres protocoles : PPPoE, «PPP over Ethernet», PPPoA, «PPP over ATM» pour ses
capacités à établir des sessions dans le cadre de l’accès ADSL.
InfraRes – P-FB
∘ peut être réutilisé : en fractionnant du PPP sur de l’UDP avec L2TP, RFC 2661 ;
On reviendra sur le protocole L2TP qui a évolué au-delà de PPP dans sa version 3 (RFC 3931).
Quelques protocoles de niveau 2 104
⊳ PPTP, Point to Point Tunneling Protocol, RFC 2637 : capable mais limité à un seul tunnel à la fois
entre deux interlocuteurs, développé par Microsoft. Il peut néanmoins encapsulé d’autres protocoles
qu’IP, comme IPX ;
⊳ L2F, Layer 2 Forwarding, RFC 2341 : développé en même temps que PPTP par d’autres sociétés
dont CISCO et permet de gérer, entre autre, plusieurs tunnels simultanés ;
⊳ L2TP, Layer 2 Tunneling Protocol, RFC 2661 : standard qui combine les avantages de PPTP et de
L2F, en ajoutant des possibilités améliorées de sécurité comme ceux d’IPSec ;
⊳ L2Sec, Layer 2 Security Protocol, RFC 2716 : développé pour corriger des problèmes de sécurité
d’IPSec lorsque celui-ci était encore en phase de développement, mais plus coûteux en traitement,
mieux sécurisés et basé sur SSL/TLS.
⊳ etc.
InfraRes – P-FB
Protection des accès distants
PPTP (Point-to-Point Tunneling Protocol) CHAPITRE 8
213
Tunnel de niveau 2 105
Le protocole PPTP permet de créer un réseau privé virtuel par la prise en charge de proto-
⊳ lecoles
Figure protocole
8.16 telsL2TP
que: IP, NetBEUI, IPX, etc. Ce protocole a été développé par Microsoft en
Encapsulation L2TPavec
collaboration des Ascend et 3Com. PPP IP ... PPP
trames PPP
PPTP encapsule, par le biais d’un tunnel, les protocoles IP, IPX et NetBEUI, eux-mêmes
encapsulés dans des paquets PPP. Il utilise
IP pour
UDP cela
L2TPle protocole
PPP GRE (Generic
IP ... Routing
Encapsulation), comme l’illustre laL2TP
figure 8.14.
au-dessus d’IP
par la suite.
ARP
MPPE (Microsoft Point-to-Point Encryption) Layer
crypte les 3
données IPv4
des connexions IPv6
d’accès
L’authentification de l’utilisateur est demandée afin de valider la session entrante
DHCP en
distants PPP ou des connexions VPN PPTP. Les méthodes de chiffrement
s’appuyant sur les méthodes d’authentification héritées de PPP. Le tunnel MPPE utilisent
établi sur le
Layer 2.5 MPLS
des clés de longueur variable, de 40 à 128 bits. Ces méthodes sont
réseau IP consiste en une encapsulation de niveau 3 par le protocole prises
VLAN en charge
IP/UDP des par le paquets
chiffrement des données
PPP, comme illustré(RC4). MPPE
à la figure assure la sécurité
8.17. Layerdes
2 données
EthernetentrePPPla connexion HDLC
InfraRes – P-FB
Pour établir une session PPTP, l’ordinateur client, ou PAC (PPTP Access Concentrator),
in [Link] (see Chapter 25 for Standard Networking Descriptors). The following diagrams call out
Serveur
byte and bit positions matching the packetC big-endian byte order and little-endian bit order
Tunnels de niveau 2 : une comparaison 106
InfraRes – P-FB
∘ avec un protocole d’isolation comme IPSec, «Encryption Control Protocol», RFC 1825, 1829 :
⋄ disponible dans IPv4, intégré dans IPv6 ;
⋄ négocie les éléments cryptographiques entre les deux extrémités (algorithmes, clés, construction de clés de session etc.) ;
⋄ travaille au niveau du datagramme IP, c-à-d en mode «connectionless» :
⋆ permet d’authentifier les deux extrémités de la liaison dans l’en-tête du datagramme IP ;
⋆ permet de chiffrer le contenu du datagramme IP ;
⋆ fonctionne en mode tunnel (tout le contenu du paquet est protégé y compris les adresses nécessaires au routage) ou
transport (les adresses nécessaires au routage sont visibles).
∘ en combinant du PPP et du GRE et en ajoutant du chiffrement et de la compression : le protocole PPTP, «Point-to-Point Tunneling
Protocol», RFC 2637 (une connexion TCP vers le port 1723 permet d’établir le tunnel GRE) ;
∘ chaque datagramme empruntant le tunnel (suivant son routage) est traité séparément :
Datagramme IP
@IP Source
[Link]
Datagramme IP
@IP Destination
@IP Source
[Link]
[Link]
@IP Destination Données
[Link]
Serveur
RoadWarrior Interface virtuelle
Interface virtuelle [Link]
[Link]
Datagramme IP Datagramme IP
∘ le trafic entre la machine RoadWarrior et la machine Serveur empruntera ce tunnel grâce à des règles de routage
spécifiques aux extrémités.
InfraRes – P-FB
Tunnel de niveau 3 : GRE 109
Établissement d’un tunnel GRE sous Linux
Soient les routeurs :
∘ «Routeur1» : une interface externe en [Link]/24, un réseau interne en [Link]/24 ;
∘ «Routeur2» : une interface externe en [Link]/24, un réseau interne en [Link]/24 ;
Pour établir le tunnel GRE :
⋆ Sur routeur1 :
xterm
root@Routeur1:~# ip tunnel add mon_tunnel mode gre local [Link] remote [Link]
root@Routeur1:~# ip link set mon_tunnel up
root@Routeur1:~# ip addr add dev mon_tunnel [Link]/24
root@Routeur1:~# ip addr
32: mon_tunnel: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN
link/gre [Link] peer [Link]
inet [Link]/24 scope global mon_tunnel
root@Routeur2:~# ip route add [Link]/24 via [Link]
⋆ Sur routeur 2 :
xterm
root@Routeur2:~# ip tunnel add mon_tunnel mode gre local [Link] remote [Link]
root@Routeur2:~# ip link set mon_tunnel up
root@Routeur2:~# ip link
31: mon_tunnel: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN
link/gre [Link] peer [Link]
root@Routeur2:~# ip addr add dev mon_tunnel [Link]/24
root@Routeur2:~# ip route add [Link]/24 via [Link]
InfraRes – P-FB
On remarque que les deux extrémités du réseau appartiennent à un même réseau [Link]/24 indépendant de tous
les autres (sinon des problèmes de routage peuvent survenir).
Tunnel de niveau 3 : IPSec 110
⊳ IPSec permet la création de VPN, «Virtual Private Network», en utilisant des solutions cryptographiques.
⊳ IPSec est intégré dans IPv6 et peut être utilisé dans IPv4.
⊳ IPSec propose :
⋄ deux protocoles :
⋆ AH, «Authentication Header» pour l’authentification ;
⋆ ESP, «Encapsulating Security Payload», pour le chiffrement et l’authentification pour le paquet encapsulé en mode
tunnel.
On peut utiliser séparément l’un ou l’autre et, plus souvent, les deux ensembles.
Le protocole AH assure l’intégrité et l’authentification de l’origine pour l’ensemble des champs de l’entête du datagramme
IP, à l’exception de ceux qui peuvent changer lors du transfert du datagramme, c-à-d les champs «TTL» et «checksum».
⋄ choix entre différents algorithmes cryptographiques : «MD5», «SHA-1», «DES», «3DES», «AES», etc. : la mise en
œuvre d’une connexion IPSec impose de faire des choix, mais chaque connexion ne fait appel qu’à deux, voire trois,
algorithmes à la fois.
⋆ L’authentification calcule un ICV, «Integrity Check Value», sur le contenu du paquet, ce qui est réalisé au travers
d’une fonction de hachage comme MD5 ou SHA-1.
Il incorpore une clé secrète connue des deux interlocuteurs, ce qui permet au destinataire de calculer l’ICV de la
même façon.
Ainsi, si le destinataire reçoit la même valeur, alors l’émetteur s’est authentifié avec succès (cela repose sur le fait
qu’une fonction de hachage ne peut être inversée).
AH fournit toujours de l’authentification alors qu’ESP peut la fournir en option.
⋆ Le chiffrement utilise un clé secrète pour chiffrer les données avant leur transmission et cela permet de «cacher» le
contenu du paquet et de le protéger d’éventuelles écoutes.
Il est possible de choisir parmi différents algorithmes de chiffrement et en particulier, entre DES, 3DES, Blowfish et
InfraRes – P-FB
AES.
Tunnel de niveau 3 : IPSec 111
⊳ IPSec propose :
⋄ deux modes de fonctionnement :
⋆ le mode «Transport» :
⊳ permet d’établir une liaison sécurisée directement entre deux matériels ;
⊳ encapsule le chargement du datagramme IP : les @IP source et destination reste celles de ces matériels ;
⋆ le mode «Tunnel»
⊳ permet d’établir une liaison sécurisée entre deux routeurs ;
⊳ permet d’encapsuler la totalité du datagramme IP passant par ces routeurs ce qui permet d’offrir un «secure
hop», c-à-d le passage sécurisé entre deux routeurs (les datagrammes IP ne contiennent que les @IP source
et destination des routeurs, mais pas celles des machines empruntant ce tunnel ;
⊳ permet d’établir des VPNs entre deux sites au travers d’Internet.
Dans le cas du mode Tunnel, on utilise rarement le protocole AH, dans la mesure où il interdit la modification de l’entête
du datagramme IP, ce qui rend impossible l’utilisation de NAT ce qui peut être bloquant. On préférera alors l’utilisation
d’ESP avec une forme simplifiée d’authentification : elle utilise les mêmes algorithmes que ceux utilisés par AH, mais
cette authentification ne porte que sur l’entête et les données du contenu ESP, et pas sur l’entête du datagramme IP
qui le contient.
L’utilisation du mode Tunnel est transparente, puisqu’elle s’applique uniquement entre deux routeurs, et que deux inter-
locuteurs utilisant ces routeurs n’ont rien à faire pour bénéficier de cette protection.
L’utilisation du mode Tunnel permet de «masquer» d’un observateur extérieur quels sont les deux interlocuteurs qui
communiquent dans chacun des réseaux reliés par le VPN : on parle alors de «privacy», ou « respect de la vie privée».
InfraRes – P-FB
Tunnel de niveau 3 : IPSec 112
⋄ Mode «principal» ou «agressif» : le choix entre ces deux modes représentent un compromis entre efficacité et sécurité
pour le protocole IKE d’échange de clés.
Le mode principal requiert l’échange de 6 paquets dans un sens et dans l’autre, alors que le mode agressif en requiert
la moitié, tout en transmettant des informations en clair ce qui diminue la sécurité.
Chaque interlocuteur dispose d’une SADB, une base de données des SAs qu’il possède.
IPSec + GRE
⊳ GRE permet d’encapsuler du trafic IPv6 ainsi que du trafic multicast, mais ne réalise pas de chiffrement ;
⊳ IPSec ne s’applique que sur le datagramme IP ;
⊳ on peut les combiner !
Application à l’encapsultation de trafic OSPF ou EIGRP envoyé en multicast au travers d’un tunnel « GRE over IPSec»
InfraRes – P-FB
Basic GRE Configuration 335
Tunnel de niveau 3 : IPSec & GRE 114
le protocole
⊳ 14-1
Figure GRE :
GRE Packet Format
20 bytes 2 bytes 2 bytes Secure GRE
Tunnel IP Transport
GRE Flags Protocol Type IP Header Data
Header Header
Required GRE Header Original IP Header and Packet
gure 14-3 GRE over IPsec Packet Format
Optional GRE Header
Tunnel Mode Sequence
Checksum Offset Key
Number
ESP IP ESP 4 bytes GRE IP 4 bytes IP 4 bytes TCP ESP
GRE Data
Header Header Header Header Header Trailer
⊳ le protocole GRE + IPSec :
In Figure 14-1, only the required GRE header and original IP header and packet typically appear
in GRE tunnel
Transport configurations. The GRE options are normally not used because upper-layer
Mode
protocols provide similar functionality.
GRE IP ESP IP TCP ESP
GRE Data
Header Header Header Header Trailer
Basic GRE Configuration
A GRE tunnel carries some Layer 3 protocol between two IP endpoints. During the initial use of
As Figure 14-3 the
GRE tunnels, shows,
tunnelthere arewere
contents multiple
typicallyIPany
layers in except
protocol a GRE [Link]
Today,IPsec packet.
GRE tunnels areT
InfraRes – P-FB
layerused to carry
is the IP dataIP
original over an IP network.
packet. But the GRE
This represents tunnel
data itself
that is can be sent through
traveling between an IPsec
two d
tunnel for security. Figure 14-2 shows a basic GRE tunnel setup.
sites. The initial IP packet is wrapped in a GRE header to permit routing protocol
between
Figure in the
14-2 GRE GRE
Tunnel tunnel (something that IPsec alone cannot do). And IPsec is ad
Configuration
Pourquoi un VPN et Quel VPN ? 115
!"#
< . % C$$ & C$$ & =
7 >
'9 $, ",!
'9!68 "6 ",!
Les performances du Firewall et du VPN 117
*!-!1% & . H'(1I
□ L’utilisation d’un VPN entraîne l’utilisation de chiffrement qui peut être coûteux car il s’applique sur toutes les données échangées :
⋄ IPSec utilise les algorithmes de chiffrement
%!67Y. % suivant : DES,
;Z 3DES, Blowfish,
& B .CAST128, AES
et AES 256
; ;
⋄ il est possible d’utiliser
des
& «crypto-processeurs»
7 B pour
réaliser
le
travailde(
chiffrement.
;
( *
O ( & *
!6
Les avantages d’OpenVPN 118
Ils sont nombreux
⋆ la possibilité de faire des VPNs de niveau 2 & 3 : dans le cas du niveau 2, le VPN peut transporter des trames, et les
protocoles Microsofts (qui sont des protocoles locaux, c-à-d non routables) ;
⋆ la possibilité de bénéficier du firewall du serveur sur lequel on se connecte : un «road warrior» peut bénéficier des
mêmes protections que les matériels connectés directement dans le réseau de l’entreprise ;
⋆ les connexions OpenVN peuvent traverser la plupart des firewalls et passer par des proxys : si on peut passer en
«https» alors on pourra passer un tunnel OpenVPN en mode TCP ;
⋆ un seul port à ouvrir sur le firewall pour le support d’OpenVPN avec la possibilité pour un serveur de gérer plusieurs
clients avec ce seul port ;
⋆ la mise en oeuvre d’OpenVPN en tant qu’ajout de nouvelles interfaces virtuelles TUN/TAP sur le serveur et le client
autorise toutes les utilisation possibles du firewall et du routage !
⋆ très extensible avec la possibilité de scripter la mise en place du VPN et la configuration du client et du serveur ;
⋆ le support transparent des clients utilisant des adresses IP dynamiques sans perte de connexion ;
⋆ design modulaire : le découpage clair entre réseaux et sécurité permet d’envisager de nombreuses possibilités ;
InfraRes – P-FB
[Peer] [Peer]
PublicKey = gN65BkIKy1eCE9pP1...HLF2PfAqYdyYBz6EA= PublicKey = HIgo9xNzKA...Z0U3wGLiUeJ1PKf8ykw=
AllowedIPs = [Link]/32 Endpoint = [Link]:51820
AllowedIPs = [Link]/0
[Peer]
...
Si le serveur reçoit un paquet depuis gN65BkI et si, après déchiffrement/authentification il vient bien de
[Link] alors il est accepté ⟹ «AllowedIPs» : liste de contrôle d’accès.
Si le serveur envoie un paquet vers [Link], il le chiffre avec la clé publique gN65BkI et utilise le dernier TSAP
connu de la machine associée ⟹ «AllowedIps» : sélection de la clé/routage.
Sur le client : HIgo9xN a le droit de lui envoyer toute origine de paquet [Link]/0 et tout paquet peut lui être envoyé
comme une route par défaut.
□ Roaming : le client comme le serveur peut changer d’adresse en cours de transferts par le tunnel :
chaque paquet reçu informe de la nouvelle adresse de l’extrémité par le TSAPsource du paquet.
□ Compatible IPv6 et Ipv4 : encapsulé de l’IPv6 dans IPv4 ou de l’IPv4 dans IPv6.
InfraRes – P-FB
□ Compatible net namespace : peut être utilisé comme interface de sortie pour un container.
WireGuard 120
Installation des commandes
xterm
$ sudo apt install wireguard-tools
Exemple de configuration
xterm
# ip link add dev wg0 type wireguard
# ip address add dev wg0 [Link]/24 # pour plusieurs peers
# ip address add dev wg0 [Link] peer [Link] # pour seulement 2 peers
# wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips
[Link]/24 endpoint [Link]:8172
# ip link set up dev wg0
Firewall et Nat
Attention à autoriser l’entrée des paquets UDP du «peer» en communiquant d’abord avec le «peer».
Le firewall laissera entrer un paquet UDP avec les TSAP source et TSAP destination inversés par rapport
à ceux du paquet UDP en sortie.
L’option de configuration persistent-keepalive permet d’envoyer des paquets UDP régulièrement
InfraRes – P-FB
h2
$ sudo ip link add dev wg0 type wireguard
$ sudo ip address add dev wg0 [Link] peer [Link]
$ sudo wg set wg0 listen-port 1234 private-key privatekey_h2 peer $(cat publickey_h1) allowed-ips
[Link] endpoint [Link]:51820
$ sudo ip link set wg0 up
$ ping -c 1 [Link]
PING [Link] ([Link]) 56(84) bytes of data.
64 bytes from [Link]: icmp_seq=1 ttl=64 time=1.30 ms
--- [Link] ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.304/1.304/1.304/0.000 ms
$ sudo wg show
interface: wg0
public key: VXZtEZYGypA4U9uffNFtqHLcyWvxaw5jf3Db/Kj4sQQ=
private key: (hidden)
listening port: 1234
peer: 8pObJA8nPprq3/0p1xcsi2IgsCyRZZZEsDrsY1AsxwA=
InfraRes – P-FB
endpoint: [Link]:51820
allowed ips: [Link]/32
latest handshake: 18 seconds ago
transfer: 436 B received, 348 B sent
Socat & TUN 122
Les interfaces virtuelles : TUN & TAP
⋆ sont disponibles sous différents systèmes d’exploitation (même sous Windows) ;
⋆ correspondent à une interface réseau virtuelle :
⋄ TUN, «network TUNnel» : niveau 3 (IP), permet de faire du routage ;
⋄ TAP : niveau 2 (liaison de données), permet de faire un «bridge» ;
⋆ sont connectées à un processus simulant un réseau : elles permettent de faire passer les paquets dans le «user-
space», c-à-d l’espace utilisateur au lieu de l’espace système ou noyau.
⇒permet d’avoir un affichage : «Prints fatal, error, warning, and notice messages.»
⇒définit un bout du tunnel : une socket TCP en attente de connexion sur le port 11443, sans attente du délai de libération
de ce numéro de port ;
⇒définit l’autre bout du tunnel : une interface TUN associée à l’@IP [Link]/24 et activée.
⋆ sur la machine Client :
xterm
4 5
$ sudo socat TCP:[Link]:11443 TUN:[Link]/24,up
⇒définit un bout du tunnel par une connexion TCP vers la machine Serveur, d’@IP [Link] et de port 11443 ;
InfraRes – P-FB
⇒définit l’autre bout du tunnel : une interface TUN associée à l’@IP [Link]/24 et activée.
⋆ Un «tunnel» est mis en place entre le client et le serveur encapsulé dans une connexion TCP.
Socat & TUN 123
Les interfaces virtuelles TUN
⊳ Sur la machine Serveur :
xterm
tun0 Link encap:UNSPEC HWaddr L’interface est en mode :
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 «Point à Point»
inet adr:[Link] P-t-P:[Link]
Masque:[Link]
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500
Metric:1
xterm
pef@solaris:~$ ip route D’après le routage, cette interface vir-
default via [Link] dev eth0 proto static tuelle permet de communiquer sur un
[Link]/16 dev eth0 scope link metric 1000
réseau défini entre les deux interfaces
[Link]/24 dev eth0 proto kernel scope link src
[Link] metric 1 virtuelles.
[Link]/24 dev tun0 proto kernel scope link src
[Link]
Pour le routage :
xterm
rezo@ishtar:~$ ip route
default via [Link] dev eth0 metric 100
[Link]/24 dev eth0 proto kernel scope link src [Link]
[Link]/24 dev tun0 proto kernel scope link src [Link]
InfraRes – P-FB
Socat & Tunnel 124
Test du tunnel et observation des échanges
xterm
rezo@ishtar:~$ ping -c 1 [Link] On exécute un «ping» de la machine client vers la machine
PING [Link] ([Link]) 56(84) bytes serveur en passant par le tunnel.
of data.
64 bytes from [Link]: icmp_req=1 ttl=64
time=87.5 ms Connexion TCP
0x0010: c0a8 ff02 0000 3e25 0daf 0002 bbaa 184f ......>%.......O
0x0020: f52c 0000 0809 0a0b 0c0d 0e0f 1011 1213 .,..............
0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"#
0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
0x0050: 3435 3637 4567
Socat & Tunnel 125
Il est possible d’utiliser SSL, «Secure Socket Layer» pour chiffrer le contenu de la connexion TCP :
⊳ Sur le serveur :
xterm
$ socat openssl-listen:4433,reuseaddr,cert=[Link],cafile=[Link] TUN:[Link]/24,up
⊳ Sur le client :
InfraRes – P-FB
xterm
socat openssl-connect:[Link]:4433,cert=[Link],cafile=[Link] TUN:[Link]/24,up
Des certificats sont utilisés pour authentifier les deux bouts du tunnel.
Tun & Tap : la programmation 126
Création d’interface TUN
xterm
pef@solaris:~/$ sudo ip tuntap add dev mon_tun mode tun
pef@solaris:~/$ ifconfig -a
mon_tun Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:500
Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)
pef@solaris:~/$ ip link
15: mon_tun: <NO-CARRIER,POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 500
link/none
L’interface TAP correspond à une interface de type Ethernet où peut circuler tout type de trame.
Attention
L’interface virtuelle est «DOWN» tant qu’aucune application n’est accrochée à elle, c-à-d :
InfraRes – P-FB
1 #!/usr/bin/python
2 import os, struct, fcntl
3 from [Link] import *
4
5 nom_interface = "mon_tap"
6 TUNSETIFF = 0x400454CA
7 IFF_TUN = 0x0001
8 IFF_TAP = 0x0002
9 IFF_NO_PI = 0x1000
10
11 lien = [Link]("/dev/net/tun", os.O_RDWR)
12 interface = [Link](lien, TUNSETIFF, [Link]('16sH', nom_interface, IFF_TAP))
13 print "Interface %s"% interface[:16].strip('\x00')
14
15 # on laisse l'utilisateur configurer l'interface en dehors du programme
16 saisie = raw_input("Attente de configuration de l'interface")
17
18 paquet = [Link](lien,2048) # 2048 taille supérieure à la MTU + entête de la trame + CRC
19 print "Ethertype :",[hex(ord(x)) for x in paquet[2:4]]
20 trame = Ether(paquet[4:] # on donne la trame à Scapy en supprimant l'entête
21
22 # pour envoyer une trame précédée de l'entête 00000800 Ethertype d'IP
23 [Link](lien, '\x00\x00\x08\x00"+str(Ether()/IP()))
Lorsque le programme est lancé, l’interface est créée (avec une @MAC différente à chaque lancement) :
xterm
InfraRes – P-FB
pef@solaris:~$ ip link
16: mon_tap: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 500
link/ether 06:4b:17:ff:7a:e2 brd ff:ff:ff:ff:ff:ff
Tun & Tap : la programmation avec Scapy 128
#!/usr/bin/python
nom_interface = "mon_tap"
TUNSETIFF = 0x400454CA
IFF_TUN = 0x0001
IFF_TAP = 0x0002
IFF_NO_PI = 0x1000
En ligne 1 , l’utilisateur peut configurer le programme, par exemple en ajoutant l’interface créée «mon_tap» dans un bridge comprenant
l’interface réseau de connexion vers l’extérieur :
Création du bridge et ajout de eth0 pour l’accès extérieur : Ajout de l’interface, une fois le programme lancé :
sudo brctl addbr vers_eth0 sudo ip link set mon_tap up
sudo brctl setfd vers_eth0 0 sudo brctl addif vers_eth0 mon_tap
sudo brctl addif vers_eth0 eth0
L’interface n’existant que lors de l’exécution du programme, il est
InfraRes – P-FB
⋆ Et du client SSH :
⋄ dans le fichier /etc/ssh/ssh_config :
[ ... ]
# Enable layer-3 tunneling. Change the value to 'ethernet' for layer-2 tunneling
Tunnel point-to-point
InfraRes – P-FB
Un VPN «Light» avec SSH 130
Le déclenchement du VPN
⋆ Pour pouvoir permettre le routage du trafic par l’intermédiaire du VPN, il est nécessaire de déclencher le fonctionnement en tant
que routeur sur la machine :
$ sudo sysctl -w net.ipv4.ip_forward=1
⋆ Une nouvelle interface est créee du côté client comme du côté serveur :
$ ifconfig -a
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:500
Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)
⋆ Il est ensuite possible d’activer l’interface et de la configurer pour permettre le routage au travers du VPN, ainsi que le filtrage
grâce au fait que le VPN ajoute une interface virtuelle.
Il est possible d’auto-configurer le VPN mis en place à l’aide d’une ligne de commande indiquée dans le fichier
InfraRes – P-FB
~/.ssh/authorized_keys.
QoS : «packet switching» avec MPLS 131
Le protocole MPLS, «Multi-Protocol Label Switching», RFC 3031 & 3032
• il combine :
⋄ le «packet switching» en «circuit virtuel» (comme avec la technologie ATM ou «Frame Relay») ;
⋄ le routage IP ;
• le routeur :
⋄ bascule :
⋆ du routage «hop by hop» ;
⋆ au «switching» c-à-d où les datagrammes empruntent une «sorte» de circuit virtuel : un chemin, «path» ou tunnel ;
⋄ évite :
⋆ d’analyser les en-têtes du datagrammes en mode «switching», ce qui diminue la latence ;
⋆ de faire de la fragmentation ;
• cette approche est appelée «tag switching» ;
• aux bases de données de routage, «Routing Information Base», sont associées des «Label Information Base», contenant les
étiquettes à affecter à certains flux de datagrammes :
⋄ une fois étiqueté, un datagramme passe directement en mode switching sans passer par le routage ;
⋄ les étiquettes doivent être gérées entre les différents routeurs à l’aide du «label distribution protocol» ou LDP ;
⋄ le réseau d’interconnexion est décomposé en :
⋆ LER, «Label Edge Routers» ou Edge LSR : situés en bordure et chargés de classifier et d’étiquetter les flux ;
⋆ LSR, «Label Switching Routers» : situés dans le noyau du réseau d’interconnexion et qui «switchent» les datagrammes
en fonction de leur étiquettes ;
⋆ le protocole LDP est utilisé entre ces différents routeurs pour maintenir la table des étiquettes et faire également la réser-
vation d’un circuit virtuel, «label-switched Path», ou LSP, entre les routeurs : ils envoient des «LDP requests».
Il est également possible d’employer le protocole RSVP-TE, «RSVP - Traffic Engineering» RFC 3209.
⋄ l’interconnexion des routeurs LSR est appelé un «domaine MPLS» ;
InfraRes – P-FB
⋄ une étiquette MPLS définie un tunnel unidirectionnel : le LSP, «Label Switch Path» avec un routeur LSR d’entrée, «ingress»
et de sortie «egress».
QoS : «packet switching» avec MPLS 132
Le réseau d’interconnexion avec MPLS
Label switch
switch/router
IP network
IP
IP network
IP
IP
IP network
IP 52 .1 .1 .1 2
InfraRes – P-FB
in», à une interface de sortie «intf out» en récupérant une étiquette lors de leur entrée ou en changeant lors de leur sortie.
In recent years, MPLS has been extended to generalized multi-protocol label switching
(GMPLS) [118], which is a multipurpose control plane paradigm able to manage not only
packet switching devices, but also devices that perform switching in time, wavelength
and space domains. Generalized multi-protocol label switching aims at extending the
Label Stacking
FR
Header
... DLCI ...
Of all the MPLS terms outlined in the previous section, the one that is essential to
Label
understand is the concept of “nested” LSPs; that is, LSPs which include one or more
Fig. 8.13 QoS :
other«packet
LSPs along switching»
their path from avec
ingress MPLS
to egress. When this happens, there will be
MPLS label encapsulation in existing WAN environments 133
more than one label in front of the IP packet for at least part of its journey.
Integration dans TCP/IP
It is common for many: modification
large ISPs to de la three
stack tramelabels
Ethernet 802.3
in front of an IP packet. Often,
the end of two LSPs is at the same router and two labels are pushed or popped at once.
20 bits 3 1 8 On insère une «étiquette MPLS» entre l’en-tête de la trame
The current limit is eight labels.
There are several instances where this stacking ability comes in handy. Ethernet
A larger802.3
ISP avec un type 0x8847, et le datagramme IP :
Label value Exp S TTL
can buy a smaller ISP and simply “add” their own LSPs onto (outside) the∘existing : 20bits identifie les paquets comme étant inclus dans
Labelones.
In addition, when different signaling protocols are used in core routers and un «tunnel»
border MPLS :
routers, these domains can be nested instead of discarding one or the other.⋄ valeur choisie pour un lien et partagée seulement entre
The general idea of nested MPLS domains with label stacking is shown in Figure 17.7.
There are five MPLS domains, each with its own way of setting up LSPs: static, lesRSVP,
deux routeurs LSR de ce lien ;
and LDP. The figure shows the number of labels stacked at each point ∘andExp
the: order
CoS, «Class of Service» : 3bits utilisés pour classifier
MAC MPLS IP Data
le flux parmi une des 8 catégories ;
Fig. 8.14 MPLS label encapsulation in IP/LAN environments Similaire au TOS du datagramme IP.
A G
F
Egress LSR
MPLS domain
Flow of IP
datagrams
D
(denoted
by FEC)
C
B
E
MPLS label
Link-layer hdr
IP header
LSR = Label switching router
IP payload FEC = Forwarding equivalence class
LFIB LSP = Label switched path H
LIFB = Label forwarding information base
On peut considérer MPLS un mécanisme permettant de créer et d’utiliser des «chemins», path,276
commeUniversity sortes de «tun-
Figure 5-14: MPLS operation.
Ivan Marsic • Rutgers
nels» : !"#$% &'()'*% +,% -"% .//&'**'*% .,/% -"% &+01),2% 3&+1+4+(*% 1+% *'1% 03% 15'% 3.15*610,,'(*7% 8,% !"#$9
',.:('/%&+01'&%)*%;,+<,%.*%.% Label Switching Router (LSR) 7%8%*'1%+=%#$>*%<5'&'%'.45%#$>%)*%
segment 2 segment 3
segment 1
&'.45.:('%=&+?%.,@%+15'&%#$>%A).%*+?'%+15'&%#$>*%),%15'%*.?'%*'1%)*%4.(('/%.,% 7%
label = 17 label =
MPLS 6
domain
label = 5
-,% +15'&% <+&/*B% .,% !"#$% /+?.),% )*% =+&?'/% :@% .% 4+,1)20+0*% ,'1<+&;7% 8% (.:'(% *<)145),2% &+01'&%
packets=+&<.&/*%
belonging 3.4;'1*% :@% 'C.?),),2% .% *5+&1B% =)C'/9(',215% !"#$% (.:'(% DE)20&'% F9GHI7% J5'% (.:'(%
&'3&'*',1*%
to the same FEC.% 2)A',% 1&.==)4% =(+<B% .,/% .((% 15'% 3.4;'1*% :'(+,2),2% 1+% 15)*% =(+<% *5+0(/% :'% =+&<.&/'/%
.(+,2% 15'% 3.156&+01'610,,'(% .**+4).1'/% <)15% 15)*% (.:'(7% 8% 1&.==)4% =(+<% )*% 4.(('/% .% Forwarding
Equivalence Class (FEC)B%.(*+%.%E0,41)+,.(%KL0)A.(',4'%M(.**B%.,/%15)*%)*%.%2&+03%+=%-"%3.4;'1*%
(Forwarding LSP (Label Switched Path, tunnel)
15.1%Equivalence Class)
.&'% =+&<.&/'/% ),% 15'% *.?'% ?.,,'&% D)7'7B% .(+,2% 15'% *.?'% 3.15B% <)15% 15'% *.?'% =+&<.&/),2% !
InfraRes – P-FB
1&'.1?',1I7%-,%+15'&%<+&/*B%8,%EKM%)*%.%*'1%+=%3.4;'1%=(+<*%<)15%4+??+,%4&+**94+&'%=+&<.&/),29
Attention : le"#$!%&'()!
«tunnel» MPLS 3.15% est plus efficace
&'L0)&'?',1*7% qu’un
8% *'L0',4'% «tunnel»
+=% &+01'&*% VPN,
15.1% =+&?% .% 3.15%mais se comporte
.(+,2% <5)45% .% 2)A',% EKM%de=(+<%
manière
)*% similaire (le «packet
=+&<.&/'/%=+&?*%.%10,,'(B%<5)45%)*%;,+<,%.*%.% Label Switched Path (LSP)7%E+&%'C.?3('B%+,'%
switching» est plus efficace que le «packet routing».
•!*+,!+-./0#.12!.1+/,34!56!758/.12!!
*045% 3.15% )*% =+&?'/% :@% &+01'&*% BB% CB% .,/% D% ),% E)20&'% F9GH7% K.45% #$"% 10,,'(% )*% 0,)/)&'41)+,.(%
D+,'9<.@IB% *1.&1),2% <)15% .,% ),2&'**% #$>B% 2+),2% 15&+025% ),1'&?'/).1'% #$>*B% )=% .,@B% .,/% ',/),2%
•!9&!:7366.0!;12.1,,7.12!<:;=)!3>.?./$!/5!+@,0.6$!758/,+!>3+,4!51!7,+5870,!051+/73.1/+A!73/#,7!/#31!
<)15%.,%'2&'**%#$>7%-=%/.1.%,''/*%1+%1&.A'(%),%15'%+33+*)1'%/)&'41)+,%.*%<'((B%<5)45%)*%0*0.((@%1&0'B%
15',%.%*'3.&.1'%+,'9<.@%10,,'(%?0*1%:'%:0)(1%),%15'%+33+*)1'%/)&'41)+,7%J+%*0??.&)N'B%.,%EKM%)*%
51!4.+/310,!<+#57/,+/!@3/#=!51?$!<(,0/.51!BCDCE=C!%&'(!344+!/#,!3>.?./$!/5!657-374!@30F,/+!5G,7!
0,)L0'(@% .**+4).1'/% <)15% .,% #$"7% K.45% 3.)&% +=% &+01'&*% .2&''*% +,% .% (.:'(% ),/'3',/',1(@%+=% +15'&%
MPLS : choix entre
Ivan Marsic routage et commutation
Rutgers University 340 135
IP forwarding table
Destin. prefix Out port
From
Label forwarding information base (LFIB)
Dest. prefix In label Out label Out port
Label information
(from peer LSRs) base (LIB)
Figure 5-21: Relationship of LIB (label information base) and LFIB (label forwarding
La LFIB, «Label Forwarding Information Base» est une structure de données qui sert à paramètrer le «forwarding» des
information base).
paquets où les destinations et les étiquettes d’entrée sont associées avec les étiquettes et interfaces de sorties.
⊳ sur un router «LSR»,
Labelseule la LFIBInformation
Forwarding est utilisée Base
; (LFIB) is a data structure and way of managing
⊳ sur un routeur «Edge LSR» :
forwarding in which destinations and incoming labels are associated with outgoing
interfaces/ports and labels. The LFIB resides in the data plane and contains a local-label-to-next-
⋄ en ingress : il faut consulter
hop label mappinglaalong
«IP with
forwarding table»
the outgoing port,en plus
which de latoLFIB
is used ; labeled packets.
forward
⋄ en egress : il faut consulter seulement la «IP forwarding table» si le paquet ne contient plus qu’une étiquette MPLS.
InfraRes – P-FB
Table 5-1 summarizes the data structures maintained in IP routers versus MPLS LSRs. However,
⊳ suivant le Ethertytpe : 0x0800
the process ⟶ IPv4,
is somewhat more0x8847 ⟶edge
complex for MPLS Unicast
LSRs. On theetingress
0x8848 LSR,⟶ the MPLS
lookup Multicast.
is
performed against the combined IP forwarding table and LFIB, as described in the next section.
In the core (intermediary LSRs), the lookup is performed only against the LFIB. On the egress
LSR, the lookup is performed against the IP forwarding table if there was only a single label in
the stack and this label was popped by the penultimate hop; otherwise, the LFIB is looked up.
As mentioned, the table to lookup into is determined by the link-layer header’s Ether-Type or
Ivan Marsic Rutgers University 342
MPLS :IvanleMarsic
fonctionnement
Rutgers University 342 136
Dest. Prefix Out label Out port Dest. Prefix Out label Out port
Dest. Prefix Out label Out port Dest. Prefix Out label Out port Ici, on a un tunnel B⟶C⟶D où
Ivan Marsic Rutgers University 342 ∘ le «Edge LSR» B reçoit un paquet Network à
Network 96.1.1/24
LFIB(B) 96.1.1/24
Port Port
destination « [Link]
LFIB(D) » ;
Dest. Prefix Out label Out port Dest. Prefix Out label Out port
LFIB(B) 5 B dispose 1 dans 3 sa table de routage de
LSR ∘
Port Port
LFIB(D) Edge 4 2 Edge
4 2 5 1 Edge 3 LSR LSR
Edge
LSR
LSR Network
A LSR [Link] 96.1.1/24 B C la destination
D «[Link]/24 H » mais
A LFIB(B)[Link] B
Port Port
C D
LFIB(D) H ne dispose pas de l’étiquette dans sa
LFIB ;
Edge 4 2 5 1 Edge 3 In label Out label Out port
LSR
LSR In label Out label Out port LSR
LFIB(C)
A [Link] B LFIB(C)
C D (a) H
(a) [Link]
[Link]
In label Out label Out port
∘ le (a)
routeur B envoi LFIB(C)
une requête vers C et D
[Link]
suivant un LDP, «Label Edge Distribution 2 Proto- Edge 4 2 5 1 Edge 3
4 5 1 Edge 3 LSR
LSR LSR LSR
LSR LSR
col», pour
A le réseau
[Link] «B [Link]/24 Label req. C ». Label req. A D [Link] BH Label req. C Label req. D H
96.1.1/24 96.1.1/24
∘ le routeur D est Edge le «egress
4 LSR»,
96.1.1/24
2 c-à-d
5 le 96.1.1/24
1 Edge 3
LSR (b)
(b) LSR
LSR
routeur
A MPLS
[Link] deB sortie : [Link]
Label C uneLabel éti-req. D H
96.1.1/24 96.1.1/24
quette
(b) libre,Dest.17, ajoute une association «[Link]/24»↔17 dans
Prefix Out label Out port Dest. Prefix OutDest.
label Prefix
Out portOut label Out port Dest. Prefix Out label Out port
sa LIB, et répond 96.1.1/24vers C 9 avec 4 cette étiquette. 96.1.1/24 9 4
Network∘ le routeur C fait de même avec l’étiquette 9.
Network
Dest. Prefix Out label Out port Dest. Prefix Out label Out port
96.1.1/24 96.1.1/24
96.1.1/24
LFIB(B)
9 4 9 17
LFIB(D)
LFIB(B) ∘ 9 C est un LSR
17 intermédiaire : il
LFIB(D)
ajoute une infor-
Network
Edge 4 2
LSR
5 1 Edge 3
96.1.1/24
Edge 4 mation
2 dans
5 sa LFIB1 Edge; 3
LFIB(B)
LSR 9 17 LSR LSR
LFIB(D)
B est un «igress LSR», c-à-d un routeur LSR
LSR LSR
A [Link]
4
B Pfx: 96.1.1/24
Label
2 =9 5
C Pfx: 96.1.1/24
Label 17 A3
1 =Edge
D [Link] B
H Pfx: ∘
96.1.1/24
C Pfx: 96.1.1/24
D H
Edge
d’entrée, il ajoute l’association
LSR
LSR
LSR
Label = 9 Label = 17
LIB binding:
Pfx: 96.1.1/24In label OutPfx: 96.1.1/24
A [Link] B C label Out port D 96.1.1/24 H17 LIB binding:
Label = 9 Label = 17 In«
label Out label Out port »↔9
[Link]/24 96.1.1/24 17
(c) LFIB(C)
9 17 5
A B [Link] 9 C A 17
[Link] D B H
[Link] 9 C [Link] 17 D H
In label Out label Out port In label Out label Out port
9 17 5
9 17 5 LFIB(C)
(a) LFIB(C) (a)
garde l’étiquette et constate qu’il est le «egress Dest. Prefix Out label Out port Destin. Prefix Out port
Dest. Prefix Out label Out port Destin. Prefix Out 9port
96.1.1/24 4 96.1.1/24 3
LSR» : 96.1.1/24 9 4 96.1.1/24 3
Network
⋄ il retire l’étiquette ; Network 96.1.1/24
⋄ il utilise sa table de routage pour envoyer 96.1.1/24
3
le paquet vers H. Edge
LSR
LSR Edge
LSR
Edge Edge 3
LSR
LSR A LSR B C D [Link] H
[Link]
A B C D [Link] H
[Link]
Ivan Marsic Rutgers University 346 In label Out label Out port
9 17 5
On-demand Downstream Label Distribution
In label Out label Out port
Unsolicited Downstream Label Distribution (b) [Link]
9 17 5
(b)
ONE WAY ONE WAY
⋄response àmessage
la demande
back to explicite
C using thed’unlabelrouteur : «on-demand
distribution label
protocol. In our distribution»
example ;
(Figure 5-22(c)),
soit deformanière pro-active, par envoi d’un message contenant l’association.
Label-to-FEC Binding 2
Therefore, D selects a label value that it is not currently ⋄D selected
using the label value
any other 17 and
LSP andstored
sends thealabel 17 binding for prefix 96.1.1/24 in its LIB
(a) (b)
response message back to C using the label distribution (label information
protocol. base), not(Figure
In our example LFIB (label
5-22(c)),forwarding information base)! D’s LFIB remains empty
D selected the label value 17 and stored the label 17 binding
Figure 5-26: Methods of MPLS downstream label distribution: (a) on demand; because forLSR D does
prefix not use LFIB
96.1.1/24 in toitsforward
LIB packets from this tunnel. D is the egress of the
(b) unsolicited.
(label information base), not LFIB (label forwarding information tunnel and base)!
to forward
D’s packets towards empty
LFIB remains H (which is not an LSR and is not MPLS capable), D will
because
Label LSR D does not use LFIB to forward packetsuse
Distribution
conventional
from IP forwarding.
this tunnel. D is the egress of the
In general, label bindings between two LSRs can be distributed by either a downstream LSR or
MPLS : Ivan
lesMarsic
différentes couches
Rutgers University 336 138
Network/IP layer –
LSR
Routing plane
Edge Edge
LSR LSR
Edge
Control plane LSR
Network/IP layer –
Forwarding
plane
Data plane
LSP 3
MPLS layer plane
LSP 2
LSP 1
WAY
O NE
MPLS domain
correspond to different FECs on each outgoing link. All packets belonging to the same FEC have
the same MPLS label value. However, not all packets that have the same label value belong to the
same FEC. This fact will become clear later, as we see that FEC is determined by the label value
«Switching» vs «routing» : les performances 139
Time
First bit received
Reception delay = t xI
Transmission
queuing delay
First bit transmitted
Output port
Transmission delay = t xO
Pour le switching :
⋆ on consulte le «circuit-virtuel» auquel appartient le paquet en entrée ;
⋆ on supprime le temps de décision, «Forwarding decision delay» 𝑡𝑓 ;
⋆ on réduit le temps de «switching», le «Switch Fabric traversal delay» 𝑡𝑠 .
InfraRes – P-FB
MPLS 140
Avantages
□ utilise la commutation, «switching», au lieu du routage : les étiquettes peuvent être utilisés comme index dans une
table des interfaces de sortie de la table de commutation ;
□ permet de définir des routes basées sur les contraintes de ressources plutôt que sur la distance la plus courte ;
□ supporte la création de VPN, «Virtual Private Networks» : le contrôle de mécanismes de tunneling offrant des tunnels
rapides entre domaines IPs (par exemple pour une entreprise nationale multi-site) :
⋄ avantage conservé même avec des routeurs plus puissants ;
⋄ peut être transporté dans différents protocoles de niveau 2 : MPLS est appelé protocole de niveau 2,5 en OSI,
comme Ethernet ou PPP ;
⋄ un tunnel MPLS peut avoir plusieurs FEC : un FEC peut être choisi par rapport à l’adresse IP destination ou
l’adresse IP source le type de protocole, les ports UDP/TCP, le champs «Differentiated Services» etc. ;
□ un tunnel MPLS peut offrir un réseau de niveau 2 à la manière d’un switch VPLS,«Virtual Private Lan Service» :
⋄ support du domaine de diffusion : envoi en broadcast (par exemple de requête ARP), en multicast ;
⋄ limitation du domaine de collision : apprentissage des adresses MAC des machines connectées au tunnel ;
MPLS & Virtual Private Networks
Correspondance avec les VPNS :
routeurs MPLS routeurs VPN
d’entrée et de sortie : «Edge LSRs» PE «Provider Edge Router»
internes supportant MPLS :«Core LSRs» internes P «Provider Router»
CE «Customer Edge Router» en lien avec le routeur du réseau client
InfraRes – P-FB