La véritable intégration de la virtualisation dans le réseau

tech-presentation-2J’ai déjà eu l’occasion de parler à travers différents articles de virtualisation de systèmes d’exploitation. Je vais bien entendu continuer cette série d’articles afin de faire le tour de tous les types majeurs de virtualisation cependant je souhaiterais faire une petite parenthèse. Cet article fait suite à une démonstration technologique à laquelle j’ai pu assister dans le cadre de mon stage.

La virtualisation est une technique qui met à mal les configurations et la conception traditionnelle du réseau. Traditionnellement, derrière un port d’un équipement réseau se trouve une machine. Sur cette machine on retrouve une adresse mac et un adresse IP. La virtualisation chamboule cette convention. On se retrouve rapidement à avoir un nombre important de d’adresses mac et d’adresses IP derrière un même port physique. De plus, traditionnellement un port sur lequel on branche une machine est un port en mode « access » en langage Cisco (non propagation des étiquettes de VLAN) alors qu’avec la virtualisation ces ports vont devoir se trouver en mode « trunk » (propagation des étiquettes de VLAN).

Les choses se compliquent de manière significative dès qu’on commence à insérer la notion de migration de machines virtuelles. Traditionnellement, un déplacement de machine nécessite le déplacement d’un technicien et la reconfiguration des équipements. Avec la virtualisation, la migration de machines virtuelles se fait en deux clics à distance et ne doit pas nécessiter l’intervention d’une personne sur site. Ce qui change fondamentalement, c’est qu’on va devoir adapter la configuration du réseau à la volée en fonction de changements applicatifs.

Le réseau est habitué à s’adapter à des changements au niveau 3 du modèle OSI avec les nombreux protocoles et algorithmes de routage. Le réseau est capable de s’adapter tant bien que mal aux changements de topologie de niveau 2 avec des technologies telles que le Spanning Tree. Cependant, il n’a pas du tout l’habitude de s’adapter à des changements applicatifs. Or dans le cas de la migration de machines virtuelles, il va falloir qu’il le fasse et qu’il le fasse vite et bien.

La virtualisation va donc s’interfacer avec le réseau pour pouvoir le commander et le faire s’adapter en fonction des migrations de machines virtuelles. L’interfaçage avec une interface de configuration du réseau sera donc indispensable. La mise en place d’un équipement réseau (virtuel ou physique peu importe) pour coordonner ces modifications et modifier les topologies va également être nécessaire.

En termes de fonctionnalités, chaque machine virtuelle va avoir son propre port virtuelle sur lequel il sera possible d’associer des configurations qui s’attribuent traditionnellement aux ports de switchs ou de routeur. L’équipement réseau virtuel pourra être capable de servir de routeur, d’IDS ou même de firewall applicatif. La gestion du réseau sera centralisé car il est indispensable de pouvoir gérer tous les équipements réseau d’un seul emplacement afin d’avoir une harmonie.

Vous allez me dire que tout ceci est bien beau et bien sympa, et vous aurez bien raison. Cependant sans implémentation pratique cela ne servirait pas à grand chose. Il n’existe, hélas, aucune implémentation libre de ce type d’application mais il en existe cependant des implémentations propriétaires. J’ai nommé Cisco Nexus 1000v mais qui n’est disponible que pour VMWare. Selon certaines informations, Citrix serait également en train de travailler sur une implémentation open source d’un telle application ce qui serait une avancée majeure pour la virtualisation open source ! De plus, la plateforme Cisco Nexus 1000v semble être prévue pour être exécutée sur plusieurs hyperviseurs étant donné qu’il est possible de spécifier le type d’hyperviseur. Aujourd’hui, seul VMWare fonctionne mais pourquoi pas Xen demain ?

Ca, c’est le futur de la virtualisation ! Et ca fait plaisir !

Les ingrédients du réseau local idéal

stepfinal2Comme je l’ai indiqué dans un précédent billet, je vais déménager dans une zone couverte par l’offre « fibre optique » de Numéricable. Il va être nécessaire de prévoir un réseau local afin de pouvoir utiliser au mieux cette connexion. Mon objectif ici est de proposer une configuration réseau pour un public plutôt geek passionné de logiciels libres. Cela dépassera donc largement le cadre d’un réseau local « standard ».

Le but

Dans mon cas et je pense ne pas être le seul, le but d’un réseau local est de pouvoir s’amuser. Il s’agit en quelque sorte d’un bac à sable avec lequel on peut faire tout et n’importe quoi. J’y ferais sans aucun doute des choses fortement inutiles mais tout autant indispensables et amusantes.

Revenons aux choses plus concrètes tout de même. Tout d’abord, le premier but d’un réseau local est de partager une connexion Internet haut débit (100/5 Mbit/s dans mon cas) vers plusieurs équipements. Le partage de connexion se fera via un support câblé et un support sans-fil (le Wifi). Ce réseau implémentera les deux. Si je suis de bonne humeur, je ferais même un réseau wifi supplémentaire fortement restreint pour n’importe qui passant dans le coin. Ensuite, il va falloir pouvoir mettre des serveurs de sorte à fournir différents services aux ordinateurs sur ce réseau local. Des exemples de services sont un intranet, un serveur FTP, un serveur OpenVPN, de la téléphonie sur IP. Il va falloir également prévoir un firewall pour pouvoir filtrer la connexion Internet au mieux et assurer une qualité de service pour tout le monde.

Le matériel

Une fois qu’on a décidé des fonctionnalités du réseau, il va falloir se doter de matériel. Le premier équipement que l’on pense à acheter lorsqu’on crée un réseau local c’est un switch (lire commutateur pour les anglophobes). Cet équipement va permettre d’interconnecter les équipements à haute vitesse au niveau liaison de données du modèle OSI. Dans le cas de mon réseau local j’ai choisi un Cisco Catalyst 2950 doté de 24 ports 10/100. Je l’ai acheté sur Ebay pour 50€ donc ca reste plutôt raisonnable. Il existe des versions avec des ports d’uplinks GBIC ou giga mais ces versions sont légèrement plus couteuses. L’avantage de se fournir un switch Cisco de ce type est qu’on peut être sûr de sa fiabilité et qu’il dispose d’une multitude de paramétrages avec lesquelles il sera possible de jouer.

Cisco2950

Ensuite, vu qu’on a décidé que notre réseau local ferait un partage de connexion sans-fil, il va falloir trouver une borne wifi. Les box des fournisseurs d’accès font systématiquement office de borne d’accès wifi cependant vu qu’il s’agit d’un réseau local de geek, nous nous en contenterons pas. J’ai choisi un borne Cisco Aironet 1100. Je l’ai achetée 30€ sur Ebay. Cette borne nous donne la possibilité de créer plusieurs réseaux wifi sur la même borne ce qui serait idéal pour notre réseau d’invité. De plus, elle est capable de choisir le canal le moins encombré. Tout comme le 2950, il s’agit d’un équipement Cisco qui permettra donc de jouer avec pleins d’options. Un autre choix aurait pu être une borne wifi Linksys capable de supporter OpenWRT ou DD-WRT afin de disposer également de nombreuses options de configuration.

Aironet1100

Il ne nous manque plus qu’un équipement pour pouvoir créer notre réseau local idéal, le firewall. En ce qui concerne la partie applicative, il s’agira de Pfsense dont j’ai déjà parlé dans un billet précédent. Cette distribution est tout simplement génial et va permettre d’ajouter de nombreuses fonctionnalités au réseau local. En ce qui concerne la partie matérielle, un ordinateur de récupération suffira amplement. Dans mon cas, une machine à base d’AthlonXP 1800+ fera l’affaire sans problème.

Sécuriser SSH, c’est pas bien compliqué

doc_openssh_logo_2Vous le savez peut être déjà, une faille semble avoir été trouvé dans SSH. Pour ceux qui n’ont jamais fait d’administration système, le protocole SSH est le protocole utilisé pour administrer les serveurs Linux/BSD ainsi que de très nombreux équipements réseau. Qui dit faille SSH dit accès total aux machines disposant de ce service. Pour vous rassurer, la faille semble ne toucher que les versions les plus vieilles d’OpenSSH. Vous qui disposez d’une Debian, vous êtes à l’aise car vous savez que Debian a un cycle de release assez rapide. Vous qui croyiez être à l’aise sur votre RHEL (Red Hat Entreprise Linux) ou CentOS et la stabilité qu’un cycle de release lent, vous devez être plus stressé et vous avez bien raison ! Cependant, elle semble peu crédible et basée sur de très nombreuses hallucinations suppositions.

Constat

Tout le monde le sait, le SSH est probablement le protocole le plus sensible sur une machine ou un équipement voire sur Internet. Il semble cependant régner un climat de confiance excessive autour de ce protocole. Dans le même temps, d’autres protocoles sont ultra surveillés comme c’est le cas pour HTTP ou DNS alors qu’ils sont moins sensibles. Je pense que dire que SSH est le protocole le plus sensible n’est pas une exagération trop importante. Certes le protocole DNS est ultra critique, mais une faille sur le protocole SSH permettra la modification des zones DNS présentes sur la machine. Une faille SSH permettra de prendre la main sur les routeurs et de modifier les informations BGP et ainsi de suite.

Bloquer les accès

La plus simple des parades à toutes les failles éventuelles sur SSH est de bloquer l’accès à ce dernier. Bien sur, si vous bloquez l’accès complètement, vous ne pourrez plus administrer vos machines mais il y a tout de même des solutions. Il est indispensable de ne pas autoriser la terre entière à accéder à votre serveur SSH. On ne peut pas considérer le service SSH sécurisé si il est accessible par la terre entière. Vous pouvez mettre une règle de filtrage permettant de n’autoriser que l’IP de votre connexion Internet. Si vous avez une connexion avec IP dynamique, vous pouvez utiliser OpenVPN pour accéder à votre zone de serveurs et n’autorisez la connexion qu’à partir du serveur VPN. Si vous êtes une société avec un minimum de moyens, mettez en place un tunnel MPLS jusqu’à votre datacentre.

L’accès en root, c’est mal…

Il est également peu raisonnable d’autoriser les accès SSH directement en root. Si vous donnez le mot de passe root à tous les utilisateurs de la machine, il sera plus difficile de leur en interdire l’accès par la suite. Ceci est d’autant plus grave si votre serveur SSH est accessible par tout le monde. De plus, un accès avec un compte utilisateur permet d’éviter que tout le monde puisse faire rm -Rf / par erreur. Une exception existe à cette règle, si votre filtrage au niveau du réseau est suffisament efficace et que vous avez la possibilité de supprimer l’accès en supprimant l’accès au VPN, il est possible d’accéder directement en root aux serveurs.

Pfsense : FreeBSD mais en bien

Maintenant que nous avons signé pour l’appartement en zone de desserte de l’offre fibre optique de Numéricable, il va falloir concevoir un réseau local digne de ce nom et digne de ce débit. Je vais donc vous présenter sur les blogs les différents éléments qui constitueront mon futur réseau local. Le premier élément que je vais vous présenter est Pfsense.

pfsense-logo

Pfsense est une distribution basée sur FreeBSD. Son objectif est de proposer une distribution orientée réseau disposant de la puissance de FreeBSD mais de la simplicité d’une interface web. Autant vous dire que Pfsense atteint parfaitement cet objectif. La liste de fonctionnalités de Pfsense est tout simplement impressionante.

Dans le cas d’un réseau local simple, Pfsense peut être installé soit sur un PC standard soit sur un plateforme embarquée. Pour effectuer l’installation sur une plateforme embarquée, des images à copier sur des cartes mémoires sont disponibles sur le site. La différence entre la version standard et la version embarquée c’est que la version embarquée ne supporte pas l’ajout de « packages ». Les packages sont des applications que l’on peut rajouter pour ajouter ajouter des fonctionnalités. L’installation sur une plateforme standard se fait par le biais d’un CD.

dashboard

Tout d’abord, cette distribution assure les fonctionnalités standards d’un firewall qu’on trouve n’importe où dans la nature. Elle assure tous les types de NAT à l’exception du NAT-T (NAT Transversal). Elle assure le filtrage « stateful » selon un grand nombre de critères (adresse niveau 3 et 4, système d’exploitation,  …) ainsi que la création d’alias pour simplifier vos règles de filtrage. Elle assure les services réseau classiques (DHCP, DNS, NTP). Vous aurez également à votre disposition tous les graphs que vous pouviez imaginer.

Ensuite, elle assure des fonctionnalités plus avancées mais avec toujours autant de simplicité. A partir d’une carte wifi (Atheros de préférence bien sur), Pfsense vous crée un point d’accès wifi avec chiffrement et authentification. En activant une option supplémentaire, vous pouvez avoir un portail captif qui s’authentifie soit contre une base Radius soit contre une base locale. Vous avez également la possibilité de mettre en place tous genres de VPN que ce soit de l’OpenVPN ou de l’IPsec. Vous pouvez également rajouter de la redondance dans votre installation avec le protocole CARP qui est un équivalent du VRRP Cisco. Je pense que ca fera un peu beaucoup pour mon réseau ! Et j’allais oublier, cette distribution est capable d’assurer le routage avec des protocoles tels que OSPF, RIP et BGP.

Au final, cette distribution dispose d’une liste de fonctionnalités très fournie et accessibles très simplement. J’ai eu l’occasion de déployer un firewall Pfsense sur un réseau publique disposant d’une connexion directe vers Internet en 100Mbit/s symétrique. Nous dépassions systématiquement les 70.000 sessions TCP en cours et le firewall n’a jamais faiblit alors que le matériel sous-jacent n’était qu’un Celeron 3Ghz.

Fibre optique ? Oui mais …

Fibre OptiqueVu que je serais en stage à partir du 1er Juillet (vacances d’été de 5 jours, ca fait light), je vais retourner sur Paris pour 6 mois pour vivre avec ma fiancée. Nous habitons actuellement à St Denis dans le 93 (Neuf Trois wesh gros !) mais nous prévoyons de déménager à Courbevoie. Courbevoie ?! Ca sent… *sniff* *sniff* la fibre optique !

Les appartements que nous prévoyons de visiter sont inclus dans la zone de couverture « Fibre Optique » de Numericable. La desserte de cette ville en fibre optique est assez logique dans la mesure où il y a un des plus gros noeud Internet Français, j’ai nommé Redbus. Vous pouvez imaginer mon bonheur à savoir que je pourrais être desservi par une liaison ultra haut débit qui dépotte.

Direction le site de Numéricable pour s’adonner à des simulations en tout genre pour savoir quel type de fibre optique je pourrais avoir. Je saisis l’adresse des différents appartements que nous avions prévu de visiter. Le site me dit d’office que je peux disposer de 100Mbit/s, génial ! Cependant, ce qui m’intéressait plus c’était le débit d’upload afin de pouvoir héberger divers serveurs. Aucune information disponible sur le site de Numéricable à ce propos, autant dire que ca sent mauvais. Je me rends donc sur le site Grenouille.com qui est généralement au courant de ce genre d’informations. Et là, c’est le drame. 5Mbit/s en upload ! Mais ou sont passés le 95Mbit/s restants dont je rêvais ?

Et bien en fait après avoir recherché sur Internet, l’offre de Numericable n’est pas une « vraie » offre fibre optique. Par vraie offre de fibre optique j’entends offre par le biais de laquelle un microtube de silice capable de transporter de la lumière à travers le monde arrive dans mon mur. Ce n’est pas une fibre qui arrive dans votre mur mais un cable coaxial comme dans les offres d’Internet par le cable traditionnelles. En fait, Numéricable déploie la fibre optique jusqu’au dernier répéteur (FTTLA – Fiber To  The Last Amplifier) ce qui permet de limiter les pertes et donc d’augmenter les débits.

Concrètement, Numericable tire des fibres optiques à la place de ses câbles coaxiaux existants jusqu’au pied des batiments. Un tel déploiement est plus simple dans le mesure où les infrastructures existent déjà et leur appartiennent. Ensuite au pied des batiments, la fibre optique est convertie en coaxial pour desservir le/les batiments en question. Visiblement les débits en upload auraient été bridés et pourraient être augmentés dès que le réseau de Numéricable aurait été amélioré. Pour ceux qui veulent plus d’info, voici un premier site qui montre des photos d’un boitier de raccordement au réseau fibre optique et un second article qui explique le déploiement du réseau Fibre Optique Numéricable.

Je vais tout de même arrêter de me plaindre parcque si j’arrive à obtenir du 100/5 Mbit/s je serais content bien évidemment vu qu’actuellement je me contente de 7/0,8 Mbit/s. Je n’aurais plus qu’à adresser mes prières au Dieu Numéricable pour qu’ils débrident les débits en upload. Il ne reste plus qu’à prévoir le futur réseau pour aller derrière.

Edit : Après plus de recherches, le standard de communication permet d’obtenir 160/120Mbit/s avec l’exemple d’un déploiement en Corée ou ici. Egalement plus d’infos sur la page du standard sur Wikipedia.