[technique] L2 étendu V.S. L3

Jérôme Nicolle jerome at ceriz.fr
Jeu 12 Sep 18:34:14 CEST 2013


Plop,

On a eu une petite discussion hier soir sur le design d'un réseau
métropolitain, et sur les approches L2 contre L3.

Par L2, on entend un réseau ethernet natif, n'utilisant pas
d'encapsulation spécifique.

Par L3, on parle d'un réseau IP / IPv6, utilisant du routage.

Une troisième approche existe, celle du L2 encapsulé sur du L3,
typiquement en utilisant la technologie VPLS (Virtual Private LAN Service).

* Le problème

En niveau 2, ethernet n'est pas prévu pour être routé, c'est à dire pour
pouvoir utiliser une topologie complexe, potentiellement maillée, afin
d'obtenir de meilleures performances et une meilleure résilience.

La prévention des boucles dans le réseau, qui sont la cause des
broadcast-storm pouvant faire s'écrouler n'importe quel réseau de niveau
2, se fait historiquement en Spanning Tree (802.1D). De nombreuses
variantes existent (spanning tree rapide, par vlan, à topologie d'arbres
multiples...) et ont permi au fil des années d'améliorer les délais de
convergence et le taux d'utilisation des liens.

D'autres approches, spécifiques à chaque constructeur, ont émergé, pour
répondre à des cas d'utilisation spécifiques. Le Metro Ring Protocol,
développé par Foundry, permet par exemple une convergence très rapide en
cas de perte d'un lien d'une boucle.

Plus récement, le concept de "Fabric Ethernet" est apparu, et avec lui
le protocole TRILL et ses dérivés. L'idée est de pouvoir mailler le
réseau sans limite et utiliser tous les liens disponibles. C'est surtout
utile en datacenter, sur des réseaux de stockage ou de calcul par
exemple, qui se satisfont mal de la latence et de la complexité induite
par le routage.

TRILL, en gros, c'est la version auto-magique améliorée de la somme des
protocoles proprio développés ces 15 dernières années. Mais en réseau,
si c'est auto-magique, il faut auto-pas_faire_ça.

Le problème de fond avec le niveau 2 c'est qu'il est difficile à
débuguer. Les implémentations des différents protocoles sont plus ou
moins intéropérables, et on peut facilement avoir des surprises. Plus on
complique la couche 2, plus on risque d'avoir des surprises.

Enfin, ces protocoles modernes sont assez sensible à l’homogénéité de
l'infrastructure. Outre le fait qu'ils imposent tous un montage
mono-constructeur, des réseaux étendus (plus de 50km / 3ms) sont
difficile à stabiliser.

Du coup, les topologies les plus complexes des infras les plus critiques
ne reposent que marginalement sur du niveau 2.

* L'approche L3

En fait, le L2 a la préférence de la plupart des sysadmins et petits
réseaux car il permet très facilement de propager des services sous
forme de VLANs, là ou le routage apparait comme étant une solution plus
complexe au premier abord.

C'est sans compter sur l'exploitation, l'évolution et la maintenance du
réseau, pour lesquels les constructeurs vantent les mérites de
l'auto-magie en taisant bien volontiers les bugs qu'elle apporte.

Sur une topologie routée, on va donc s'en tenir à des interconnexions
entre les routeurs, qui sont finalement de l'ethernet en point à point,
et à différentes couches de switching sur chaque site couvert par le réseau.

Dans le cas du réseau sans-fil de tetaneutral.net, ça reviendrait à ce
que chaque antenne soit un routeur, ce qui pose d'autre soucis
(performance, complexité ajoutée), ou a rajouter des routeurs entre
chaque paire d'antennes.

Ca modifie aussi les habitudes puisque des services reposant sur le
broadcast ne peuvent être routés, et ceux nécessitant multicast doivent
l'être différemment. Le multicast c'est un peu la plaie de tout ingé
réseau, mais je n peux pas en parler en détail, j'ai toujours refusé
d'en faire ;)

* Approche hybride

Au prix d'une certaine lourdeur protocolaire, il est possible de
transporté des réseaux switchés sur un réseau routé.

par lourdeur protocolaire, je veux d'ire qu'il faut à peu près tout ça
pour que ça tombe en marche :
- IPv4 et un IGP (OSPF ou IS-IS) pour l'adressage backbone
- MPLS, LDP et RSVP pour l'encapsulation et le traffic-engineering
- MP-BGP / iBGP pour la signalisation des services L2VPN et L3VPN
(certains le font en LDP, c'est moins flexible)

Avec ça, on peut établir des pseudo-wires ou switchs virtuels regroupant
des ports ou "services" (sous-interface d'un port, généralement par
tagging 802.1Q) des différents routeurs.

Les avantages de cette approche sont nombreux :
- On peut instancier autant de services L2 et L3 que l'on souhaite
(fonction de la limite de mémoire et de licence des équipements)
- Le backbone converge aussi vite que son IGP le permet en OSPF et IS-IS
sur un réseau métropolitain on parle de délais inférieurs à la seconde
- MPLS-TE (avec RSVP) permet de gérer de la QoS de bout en bout et
d'utiliser le plus de potentiel sur le maillage des liens.
- Le debug se fait avec des protocoles avancés et relativement verbeux,
il est globalement plus facile que sur des protocoles jeunes comme TRILL
ou archaïques comme STP.

Du coup, les cas d'utilisation de cette approche sont nombreux : réseaux
privés nationaux et régionaux, réseaux métropolitains, réseaux de
collecte des opérateurs, points d'échanges (tous les gros IX utilisent
ça)...

En fait, une analogie simple est faisable, les services MPLS comme L2VPN
et L3VPN sont finalement de la virtualisation de réseau, avec presque
toute la souplesse que permet la virtualisation de serveurs.

* Par contre...

Il n'existe pas d'implémentation libre et utilisable de MPLS. Il ya
bien une implémentation abordable sur les mikrotik, mais les cas
d'utilisation de ces technos concernent avant tout des équipements
proprio chers.

Chez les constructeurs majeurs, le moins cher pour commencer à jouer
avec MPLS est le Juniper SRX100, qui se trouve dans les 350€ H.T. (8
ports fast, 200Mbps de capa de routage). Il est aussi utilisable en
machine virtuelle (sous VMWare uniquement), gratuitement pour évaluation
et usage pédagogique..

Chez Cisco, le minimum pour jouer avec ça va être un 7301 ou 7204-NPEG1
qui vaut environ 1100€ d'occasion. On peut faire quelques tests avec des
ISR-G1 un peu moins chers mais ils sont beaucoup moins performants (et
pas de L2VPN). Il y a plus gros et moins cher mais vraiment obsolète. En
neuf, il faut partir sur des ISR-G2 (à partir de 2k€) ou des ASR1001 (à
partir de 6k€).

On a quelque équipements mobilisables pour tenter des ateliers sur le
sujet, mais l'idéal est encore de virtualiser et émuler ce qui peut l'être.

Je peux tenter de faire un brief un peu plus technique sur ces
différentes approches, qui serait intéressé ? Qui est volontaire pour y
bosser un peu ?

@+
-- 
Jérôme Nicolle
06 19 31 27 14



Plus d'informations sur la liste de diffusion technique