MLS (MultiLayer Switch) procure un niveau de performances
élevé en utilisant le meilleur du switching et du routing grâce à l'emploi
d'ASIC.
IP est conectionless, délivrant chaque paquet indépendamment des
autres.
Cependant le trafic réseau actuel est basé sur des conversations de
bout en bout, tel que HTTP ou FTP.
MLS est une technique pour augmenter les
performances de routage IP.

Il ne faut pas confondre MLS avec les Netflaw Feature Card de routeurs Cisco. MLS utilise le Route Switch Module (RSM) ainsi qu'un routeur, directement ou non, attaché. Ce n'est pas une obligation d'utiliser le NetFlow Switching avec MLS sur un RSM ou sur un routeur externe. N'importe quel path sur le RSM ou sur un routeur externe, fonctionnera.



Les messages utilisent les
well-known address CGMP comme adresses de destination. Cette adresse assure
l'interopérabilité avec les switches du réseau. Si l'adresse utilisée est la
même que celle de CGMP, le contenu quant à lui des trames diffère et contient
différents types de protocoles.
|
XTAG |
Mac |
vlan |
|
|
41 |
000C-1010-01CC |
10 |
à vers le switch |
|
41 |
00CC-1010-02DD |
20 |
|
La réception des Hellos Messages
Chaque switch est à
l'écoute des well-known multicast address mais seuls les switches L3 comprennent
ces messages. Les autres diffusent ces messages sans les comprendre.
Quand un
MLS-SE reçoit une trame, il en extrait les Mac-address source et destination
ainsi que l'interface associée ou le vlan ID. Le MLS-SE enregistre l'adresse du
MLS-RP dans sa CAM table (Content-Adressable Memory).
Le MLS-SE assigne un
tag unique pour chaque routeur: le XTAG, 1 byte rattaché à la Mac-addr du
routeur.
Le XTAG est aussi employé pour effacer une entrée spécifique de
L3




Step 1: Le switch reçoit une trame entrante et regarde
son adresse de destination.
Step 2: Le switch reconnaît l'adresse de
destination comme étant celle du MLS-RP. Le switch apprend la Mac-addr. du
MLS-RP grâce aux Hellos Packets L3.
Step 3: Le MLS-SE contrôle le MLS
cache pour savoir si il n'existe pas déjà une entrée pour ce flot. Une nouvelle
entrée dans le cache va être créée si la trame est la 1° d'un flot. Parce que la
trame contient l'adresse du MLS-RP Le switch sait qu'il s'agit potentiellement
de Layer 3 switching.
Step 4: L'étude de la trame initiale ne permet
pas au switch de posséder toutes les infos de L3.Le switch envoie donc au route
processor. Ce process d'envoi de la trame au route processor créé un "candidate
entry".
Step 5: Le route processor reçoit la trame et consulte la
table de routage.
Step 6: Si le route processor détient une route pour
l'adresse de destination, Le route processor reconstruit le l'en-tête de L2 qui
contient maintenant la Mac-addr. source du MLS-RP.
Step 7: Le route
processor entre aussi la Mac-addr. de l'adresse de destination ou du next
hop.
Step 8: Le route processor retourne la trame au MLS-SE
Step
9: Quand le switch reçoit la trame, il sait quel est le port qui sera
employé pour envoyé la trame basée sur la CAM table. Cependant le switch à
identifié que l'a Mac-addr. source est celle du route processor.
Step
10: Puis le switch cherche à savoir si il existe une entrée dans son cache
pour le route processor. Le switch compare les XTAG pour le
candidate et la trame de retour. Si les 2 XTAG concordent, ils proviennent donc
du même route processor.
Step 11: Le switch enregistre l'info de la
trame de retour.
Step 12: Le switch envoie la trame sur le port de
sortie en utilisant la Mac-addr. de destination. La seconde trame devient une
entrée enable dans le cache MLS, les infos concernant le flot sont complètes. Le
flot va être envoyé en direct entre source et destination. Il est à noter que
pour que le layer3 switching puisse fonctionner, le switch doit voire les 2
bouts d'un flot, source et destination.
Step 13: Quand le switch
reçoit les paquets suivants du flot, le switch reconnaît que les trames
contiennent la Mac-addr. du route processor.
Step 14: Le switch
contrôle les trames du flot dans le MLS cache et trouve une entrée pour le flot
en question.
Step 15: Le switch réécrit l'en-tête de layer 2 en
modifiant la Mac-addr. de destination avec la Mac-addr. du host B ainsi que la
Mac-addr. source en y plaçant la Mac-addr. du route processor. Les adresses IP
de L3 restent inchangées, cependant le TTL et décrémenté, le checksum est donc
recalculé. Le MLS-SE réécrit le layer 3, les paquets semblent donc
issus d'un route processor.
Step 16: Après que le MLS-SE
réécrive le paquet, le switch envoie la trame retravaillée à l'adresse de Mac de
destination. L'identité et l'état d'un flot sont maintenus tant que le trafic
est actif. Quand le trafic s'arrête, les entrées prennent de l'age. Les entrées
partial ou candidate sont préservées dans le cache pendant une durée de 5
sec.
no ip routing
ip security
ip tcp
compression-connections
ip tcp header-compression
clear ip
route
En fait, en désactivant n'importe quelle commande du routeur
qui s'applique à tous les paquets, on nettoie le cache MLS et MLS se
désactive.
router(config-if)#
mls rp vlan-id n°_du_vlan
Interface ISL : on crée plusieurs
sous-intefaces, 1/vlan. Puis on active MLS sur chaque
sous-interface.
router(config)#interface fastethernet
2/1.41
router(config-if)# mls rp ip vtp-domain
nom_du_domaine_vtp
router(config-if)# mls rp ip
On
termine par l'interface de management, en général le vlan1
router(config-if)# interface vlan 1
router(config-if)#
mls rp ip management-interface
3° on passe maintenet
au switch:
switch(enable) set mls enable à mode par
défaut
switch(enable) set mls disable à désactivation de mls pour
éviter la génération de messages propres à mls.
Attachement direct (ex RSM)
le switch et le routeur se voient
Attachement indirect :
sur l'interface
de management, souvent le vlan 1 :
switch(enable) set mls
include ip_address

Quand le route processor réside dans un domaine VTP différent
de celui du switch, ce dernier ne peut généré de trames multilayer pour ce
routeur (quel dommage !)
vlan domain name:
bcmsn
router(config)# int vlan41
router(config-if)# mls rp
ip
…
router#show mls rp
multilayer switching is globally
enabled
…
number of domain configured for mls 2
vlan domain
name: -null-
…
La solution consiste à supprimer les domaines nuls de leurs
interfaces :
router(config)# int
vlan41
router(config-if)# no mls rp ip
En désactivant mls
d'une interface, enlève l'interface d'un null-domain
Rq : Nous sommes sur un
routeur, la désactivation d'une commande se fait par no
commande_à_désactiver

3 types de masques :
destination IP
à pas
d'access-list
source destination IP
à access-list
standard
IP
flow
à access-list
étendue
MLS-SE utilise le mode flow-mask pour déterminer comment les paquets
sont comparés entre les entrées MLS et le cache MLS.
Le flow mask mode est
basé sur les access-lists configurées sur chaque interface des routeurs.
En
utilisant des access-list, on modifie le flow mask.
Le MLS-SE apprend le
flow-mask au travers de messages MLSP depuis chaque MLS-RP pour lesquels les
MLS-SE réalisent le layer switching.
Le MLS-SE ne supporte qu'un seul flow
mask pour l'ensemble des MLS-RP.
Si un MLS-SE détecte différents flow mask
depuis différents MLS-RP pour lequel le MLS-SE réalise le L3 switching, le
MLS-SE modifie son flow mask pour le flow mask le plus spécifique détecté.
On
peut mettre en place un flow mask sur un MLS-SE sans appliquer une access-list
sur le route processor. On utilise cette commande quand on veut cacher les
entrées à partir d'un ensemble de critères pour exporter des statistiques de
flot mais sans appliquer une access-list sur une interface.
! Quand un MLS-SE pointe sur
plusieurs MLS-RP le flow mask le plus restrictif est utilisé.
switch(enable) set mls flow
|
mls flow mask is
destination-ip |
|
mls flow mask is
source-destination-ip |
|
mls flow mask is
ip-flow |
Le MLS-SE maintient une entrée MLS en cache pour chaque
flot détecté.
Un flot IP incluse adresse IP source et destination, le
protocole, le protocol port.


Les routeurs configurés avec un ios > 11.3 ne supportent
pas automatiquement les access-list en entrée sur les interfaces configurées
pour supporter MLS. Si une interface est configurée avec une acess-list en
entrée, tous les paquets d'un flot qui sont destinés à cette
interface passent par le routeur. Dans ce cas même si le routeur a connaissance
du flot, celui-ci ne sera jamais switché.
Dans ce cas il
existe une solution au niveau global :
router(config)#
mls rp ip input-acl
Le cache MLS est limité en taille. Les entrées du cache sont
donc supprimées sous certaines conditions.
Les entrées candidate sont
maintenues durant 5 sec. sans enable entry correspondante.
Si aucun flot pour
cette entrée n'est détecté, l'aging-time par défaut est de 256 sec.
D'autres
évènements peuvent purger les entrées du cache :
La commande qui sert à modifier l'aging time :
switch(enable) set mls agingtime aging_time
Rq: La
valeur de l'aging-time est une valeur multiple de 8 comprise entre 8 et 2032
Certains flux sont sporadiques ou très courts, une requête
DNS par ex..
La connexion sur ce type de flux sera close avant même alors
qu'il n'y aura pas nécessité de la mettre en cache.
De plus la mise en cache
va consommer des ressources pour rien, puisque l'entée s'y trouvera pendant au
moins 5 sec.
Pour résoudre le problème des entrées à durée de vie courte du
cache, il convient de mettre en place un nouveau mécanisme de vieillissement
(aging-time) : le fast aging time.
Si le MLS-SE ne détecte pas un nombre de
paquets spécifiques durant un temps donné, l'entrée est supprimée du cache.
2
paramètres interviennent dans la définition de fast agingtime :
La durée
valide d'une entrée en cache
Le nombre de paquets qui seront détectés durant
la période spécifiée. 0, 1, 3, 5, 7, 15, 31, 63 sont des
valeurs acceptées. Le défaut est 0
switch(enable) set mls agingtime
fast 64 7
Dans cet exemple les entrées qui font moins de 7 paquets durant
64 secondes seront supprimées du cache.
switch(enable)
show mls à pour verifier la
configuration
Multilayer switching enabled
Multilayer switching aging time
= 304 seconds
Multilayer switching fast aging time = 64 seconds, packets
threshold = 7
…
Pour voir les infos d'un MLS-RP, il convient de
rentrer la commande :
switch(enable) show mls rp
addr_ip_du_mls-rp
Il
convient de ne pas confondre show mls rp sur le MLS-SE et sur le MLS-RP.
switch(enable) set mls include
172.16.41.168
Multilayer switching enabled for router
172.16.41.168
Cette commande n'est valide que pour les routeurs
externes.
Le MLS-SE incluse automatiquement l'adresse IP de son MLS-RP. Si le
module RSM-RP est physiquement supprimé ou désactivé, son adresse IP est
automatiquement retirée. Cette adresse ne peut être enlevée par la commande
:
switch(enable) clear mls include
Comment visualiser la liste
d'inclusion du switch (la liste qui contient l'adresse IP du MLS-RP) :
switch(enable) show mls include
Included
MLS-RP
--------------------
172.16.1.142
à le
MLS-RP interne est ajouté automatiquement
172.16.41.168
à le
route processor externe est ajouté manuellement
switch(enable) show mls
entry
Destination IP
Source IP
Prot
DstPrt
SrcPrt Destination
Mac
Vlan
Port
----------------
---------------
------
-------- --------
-------------------
------ -----
MLS-RP
172.16.1.142:
172.16.1.143
172.16.87.3
UDP
1238
60224
00-10-7b-ee-94-70
1
2/9
172.16.1.143
172.16.87.3
UDP
69
60224
00-10-7b-ee-94-70
1
2/9
172.16.1.143
172.16.87.3
UDP
69
36776
00-10-7b-ee-94-70
1
2/9
MLS-RP
172.16.41.168:
172.16.41.17
172.16.53.1
UDP 60224
1238
00-00-0c-06-5b-1e
41
2/1
172.16.41.17
172.16.53.1
UDP 36776
69
00-00-0c-06-5b-1e
41
2/1
switch(enable) show mls entry source
ip_address
à pour une adresse source
spécifique
switch(enable) show mls entry rp
ip_address
à pour un MLS-RP
spécifique
switch(enable) show mls entry flow prot. src-port
dest-port à pour un flot
IP spécifique
switch(enable) clear mls entry destination
ip_address à cleare toutes
les entrées pour une adresse IP de destination
switch(enable) clear mls
entry source
ip_address
à
vide toutes les entrées pour une adresse IP source
switch(enable) clear
mls entry flow prot. src-port
dest-port
à
vide toutes les entrées pour un flot donné



