Ça fait un bail que je n'ai pas parlé de mon infra en Data Center. Mon article précédent date de 2021 (!). Il est plus que temps de vous parler de mon infra remise au goût du jour !
Joyeux Noël, routeur qui crash
Vous vous rappelez votre enfance, ou la veille de Noël, vous étiez impatient du lendemain matin, de vous réveiller et de voir les cadeaux qui vous attendaient au pied du sapin ?
Bah moi, j'ai eu mon cadeau de Noël en plein milieu de la nuit !

Si vous me connaissez un peu, vous savez que les Noëls, je ne les passe jamais à Paris, toujours dans mon Sud natal avec mes parents et mon frère.
Je me réveille donc un 25 décembre, avec mon infra, à 800 km de ma position, down.
Joyeux Noël !
Je vous passe mes tentatives désespérées de me connecter au Mikrotik, mais il fallait que je me rende à l'évidence, le routeur a profité du passage du traineau du Père Noël pour s'envoler vers d'autres cieux.
Bon, on est le 25, on va profiter des victuailles sur la table...
Le 26, mon copain me propose d'aller faire une opération commando, pour tenter de ressusciter le routeur en question. Une fois sur place, et quelques tentatives de massage cardiaque sans succès, on décide de remplacer le routeur mort par un CRS présent dans ma baie, mais qui ne servait pas.
$copain étant perdu par la CLI mikrotik (quand on ne connait pas, c'est déroutant...), on décide d'utiliser tmate, qui me permet de me connecter à son terminal via une seule commande (c'est bien pratique parfois !). Au bout de quelques heures de conf, je récupère l'accès à distance, on a décidé entre temps de n'allumer qu'un serveur (en temporaire, le temps que je revienne) et de connecter le NAS. J'ai pu faire le reste de la configuration pour récupérer le strict minimum, à savoir ma VM mail, mon XOA, et 2-3 autres VMs un peu critique. Ouf, je peux repartir en "vacances"...
Vous pouvez aller lire mon article sur XCP-ng/XOA
Les jours, semaines, mois passent, et j'ai finalement fini par avoir une infra à peu près stable, mais estropiée. Bon, le CRS est vraiment pas fait pour faire du BGP, mais tiens étonnement bien la charge (après avoir fait un peu de tweaking, certes) Vous connaissez le "ça tourne, on ne touche pas"...
Mais bon, au fond de moi, ça me faisait une charge mentale et un sentiment de pas fini, cette infra... Et si on se planifiait une vrai refonte ?
Migration de nuit
Il était plus que temps que je m'occupe de mon infra, pour enfin avoir un 1/4 de baie digne de ce nom.
Je me suis donc décidé une nuit d'aller chez Aqua Ray, et d'enfin refaire au propre la Brasserie (oui, c'est le nom du 1/4 de baie) !
J'avais identifié par mal de défauts, notamment à cause des différentes migrations, de choses qui sont restées en place alors que ça devait être temporaire, et aussi par flemme (faut bien l'avouer !). Quelques points qui étaient à revoir :
- Tout était dans le vlan 1, que ce soit les IPs publics ou privés, des VMs à moi ou pas à moi
- Les IPs choisies pour les différentes VMs sont prises au hasard, il n'y a jamais eu de vrai plan d'adressage (bon, à part le routeur en .1)
- Les hyperviseurs était sur des IPs publiques (pratique, mais dangereux)
- La configuration du Mikrotik était le résultat d'années d'ajouts, de tests, de config qui ne servent plus à rien
- Bref, ce qu'on pourrait appeler un beau legacy, quoi
Vu que mon CCR 1036 s'est envolé vers d'autres cieux avec le traineau du père Noël, j'ai réussi à récupérer un CCR 2004 (merci Jérôme !) en version 1G-12S+2XS (je pense que vous devinerez le type de port, la nomenclature Mikrotik est plutôt facile à comprendre). Pour la partie 1G cuivre, j'ai décidé de recycler mon bon RB3011, qui ne faisait rien chez moi à part prendre la poussière.
Avant d'aller en Data Center et de commencer à tout brûler au lance-flamme, je me suis quand même préparé un petit plan pour organiser mes différents futurs réseaux que je voulais mettre en place. Je vous ai mis les différentes itérations :



Admirez mes talents en dessin
J'ai essayé de rester le plus KISS possible, pour simplifier la maintenance. Les noms sont plutôt explicites, mais voici un récap :
- VLAN 10 - > Storage, pour connecter les hyperviseurs au NAS (et dans le futur pour la communication entre hôtes pour XOSTOR)
- VLAN 20 -> OOB, donc les iDRAC des Dell R630
- VLAN 66 -> "Poubelle", avec un DHCP pour les VMs qui n'ont pas besoin d'IP publique, typiquement pour les tests (que j'ai ajouté après l'intervention)
- VLAN 99 -> MGMT, pour l'interface de management des XCP-ng
- VLAN 119 -> Le VLAN avec les IPs publique pour les VMs + la sonde Atlas + une Raspberry que j'héberge
Le tout connecté en 10 G du mikrotik vers les hyperviseurs (avec un trunk qui fait passer tous les VLANs), et en 1G Cuivre pour les iDRACs, l'Atlas et la RasPi. Le NAS quant à lui est connecté via un base-T sur le Mikrotik, en attendant que je lui achète une carte 10G.
Une fois la partie réseau faite, il faut faire un plan d'action !
Étape 1: Manger/Boire !

Étape 2 : Aller au Data Center, commencer à déballer et à tout casser ! Voici le quart de baie à mon arrivée :

Je commence par éteindre les VMs encore allumés, ensuite tous les hyperviseurs. Une fois que tout le monde est parti faire la sieste, hyperviseurs comme routeurs, je débranche tout pour refaire au propre !

Je retire ensuite le feu CCR, le CRS qui a fait un très bon boulot de tenir l'infra par sa petite RAM et qui mérite son repos, et je les remplace par mon CCR 2004 et mon RB3011.
Je ne vous mettrais pas la photo, mais le CRS m'a fait un bisou saignant sur le pouce lors de sa sortie du rack....
Une fois le recâblage fait, il est temps de démarrer le CCR, et de le mettre à jour ! En parallèle, je prépare la mise à jour de mon XCP-ng de 8.2.1 vers 8.3. Rien de sorcier dans mon cas, il suffit de booter sur l'ISO d'XCP-ng 8.3, appuyer sur upgrade, puis attendre. Ça me laisse le temps de configurer le 2004 avec tous les VLAN, et faire de même avec le 3011 (la config étant plus légère sur celui-ci).
En vrac, quelques point d'étapes important (pas forcément dans l'ordre)
- Config BGP sur le 2004
- Reconfigurer le NAS avec sa nouvelle IP
- Créer les différents VLAN sur les deux routeurs, vérifier que ça fonctionne bien (on y a passé du temps sur cette connerie !)
- Une fois l'installation XCP-ng fait, lui modifier également sa configuration réseau pour le mettre dans le bon VLAN (99, vous suivez !), et lui ajouter le vlan storage
- En dernier configurer le 3011 (au moins y avoir accès pour faire la conf à distance ensuite), les iDRAC étant en statique et n'ayant pas changé le range IP OOB, une fois dans le bon vlan, j'aurais directement accès à mes machines.
Une fois le XCP-ng réinstallé, il faut que je lui configure son stockage pour qu'il puisse retrouver ses bébés VMs. Vu que mon Xen Orchestra n'est pas encore disponible, il eut fallu que je passe par xe
(le client en CLI qui permet de parler à la XAPI)
- La PIF, l'interface physique sur votre machine
- La VIF, l'interface virtuelle côté VMs
- Et le Network, qui fait le lien entre les deux
Première chose : on crée le vlan 10 :
$ xe network-create name-label=storage # je créé un nouveau network pour le storage
$ xe pif-list # Je liste mes interfaces physique, ici je cherche l'uuid de eth0
$ xe vlan-create network-uuid=696abe4c-237a-c517-9f60-85033b5cc9d3 pif-uuid=2574bb85-3f1f-f33e-59d8-225a985a575a vlan=10 #Je créé un vlan qui utiliser le network storage, la PIF eth0, et avec un tag pour le vlan 10
Ensuite, on colle une IP à mon interface vlan 10 fraichement créé
xe pif-reconfigure-ip mode=static IP=10.10.10.10 netmask=255.255.255.0 uuid=2c1ba936-f363-f930-ffb6-66600cfb12a0 # Ici l'uuid de la PIF avec l'avec le VLAN 10 tagé
C'est bon, je peux pinger mon NAS ! Maintenant, il faut que je rattache le SR (Storage repository), pour récupérer les disques des VMs, et pouvoir booter mon Xen Orchestra. Pour cela, il y a un tour de magie facile :
On peut imager ça comme le câble SATA entre votre disque et votre PC !
$ xe sr-param-get uuid=d6d491bc-a0e4-37c0-ddd8-4917097b9e39 param-name=PBDs # Je vais chercher l'UUID du PBD de mon SR
$ xe pbd-param-list uuid=538c7f02-8e0d-fd30-a396-221c32842c01 # Je copie l'output de cette commande quelque part, je vais en avoir besoin ensuite
$ xe pbd-destroy uuid=538c7f02-8e0d-fd30-a396-221c32842c01 # Je détruis le PBD de mon SR
# xe pbd-create host-uuid=7b84f233-8aa3-468d-b254-fd585194da21 sr-uuid=d6d491bc-a0e4-37c0-ddd8-4917097b9e39 device-config:server=10.10.10.100 device-config:serverpath=/volume1/xcp-ng # Et j'en créer un nouveau, avec la nouvelle IP, et le path que j'ai gardé précédemment
xe pbd-plug uuid=0f29e42e-0a43-f7c2-701b-1e3e615dc98c # Je branche mon PBD à mon SR
Dernier truc à faire, avoir de pouvoir accéder au XOA (et c'est là où on a passé le plus de temps !), c'est de changer la première interface réseau, pour la mettre sur le vlan "public", et lui rajouter une deuxième interface dans le vlan management pour la communication avec les XCP-ng.
xe network-create name-label=prod # Je crée mon network "prod"
xe vlan-create network-uuid=0a1517ac-f832-1b5f-277d-23a01ee6a2cb pif-uuid=2574bb85-3f1f-f33e-59d8-225a985a575a vlan=119 # et je créé mon nouveau vlan !
xe vm-list name-label=Ataxya\ -\ XOA # Je vais chercher l'UUID de mon XOA
uuid ( RO) : 9105961a-98d9-8ff6-ecf2-5faa354d950a
xe vif-list uuid=9125a4a9-4e19-cc4d-2331-9708365202a9 # Je cherche l'uuid de ma VIF
xe vif-move uuid=9125a4a9-4e19-cc4d-2331-9708365202a9 network-uuid=0a1517ac-f832-1b5f-277d-23a01ee6a2cb # Et je bouge ma VIF vers le nouveau VLAN
Vous me direz, rien de sorcier, n'est-ce pas... Mais ça ne fonctionne pas. On passe une 1/2 heure à revoir les confs, à penser que c'était coté Mikrotik que les vlans était mal configurés, à faire des ping dans tous les sens... Jusqu'à ce que $copain me dise
Mais ça marche sur le Vlan 1. (NDLR : le XOA pingait, quoi)
Il était déjà 2 heures du mat, ma seule réaction a été
On reboot tout et une clope, hein ?
C'est en fumant ma clope que j'ai réalisé ma connerie. Les yeux attentifs l'auront vu dans le bout de conf au-dessus. Non, pas vu ?
Quand j'ai fait mon vif-list, j'ai utilisé uuid=91<tab>, et vu que ça me l'a magiquement auto complété, je ne me suis pas rendu compte que ce n'était pas la bonne commande que j'ai passée.
Il aurait plutôt fallu faire :
xe vif-list vm-uuid=9105961a-98d9-8ff6-ecf2-5faa354d950a # VM-UUID
puis
xe vif-move uuid=f0d27ea8-791b-0831-0bf5-2f02d6d9f799 network-uuid=0a1517ac-f832-1b5f-277d-23a01ee6a2cb # avec le bon vif uuid cette fois ci...
En me relisant, je me demande comment j'ai pu imaginer que ma première tentative allait fonctionner... Bref.
J'ai enfin accès à mon XOA ! Mais mon XOA ne communique pas avec mes XCP-ng pour l'instant... Bon cette fois-ci, mettre la deuxième carte réseau va être rapide :
xe vif-create vm-uuid=9105961a-98d9-8ff6-ecf2-5faa354d950a network-uuid=c92beb19-d33b-b842-e54d-0be2586aa4e9 device=1 mac=random
xe vif-plug uuid=1c686e29-6f64-43cb-aef3-f4b6dc105590
Quand on ne se foire pas sur les uuid, ça fonctionne mieux...
Une fois l'ajout fait, je me connecte en SSH sur mon XOA, lui rajoute une IP sur enX1
, puis je reconnecte mes XCP-ng sur l'interface du XOA
Super, j'ai enfin accès à mes VM ! Je redémarre les VMs les plus critiques (les mails, entre autres), en n'oubliant pas de changer la VIF de vlan (en clic clic bouton cette fois-ci, moins de risque d'erreur), et... bah, on se barre (il était déjà 3h, et $copain commençait à souffrir).
Ah oui, j'avais promis une photo finish !

Le lendemain, je prends mon temps pour finir de lustrer la config des deux Mikrotik. Je me configure également un Wireguard pour accéder au réseau iDRAC, pour réinstaller les deux autres serveurs, histoire d'avoir la Brasserie au complet !
Présentation de l'infra
Maintenant que je vous ai raconté mes aventures, il est temps de vous présenter mon infra toute propre ! Je m'étais dit qu'il serait intéressant de vous montrer la configuration du Mikrotik et de vous l'expliquer pas à pas, mais je pense que je vais garder ça pour un article dédié. Dites-moi si ça vous intéresse !
Y'a quoi dans ton rack finalement ?
- En matos nous avons :
- Chouffe, Delirium et Chimay, 3 R630 avec des Intel Xeon E5-2697v3, 256G de RAM, 2 disque de 240G en RAID 1 pour l'OS, et 6 disque de 1To pour XOSTOR
- Un Synology RS822+ (aussi appellé la Cuve), avec 4x4To SSD, qui contient les disques des VMs (pour l'instant), et les backups de mes PCs, Laptop, et le synology des parents.
- Le CCR2004 et son acolyte le RB3011 (les fûts), pour toute la partie réseau.
- Une sonde Atlas, fourni par le RIPE
- Une Raspberry pas à moi qui héberge un MX tertiaire
- Et bien sur, un bandeau pour les arrivés fibres, et 2 PDU pour alimenter tout ce beau monde, dans la brasserie !
Pour accéder aux réseaux internes, j'ai monté un Wireguard directement sur le CCR2004, ainsi je peux accéder aux iDRAC, au réseau de management et le réseau poubelle, qui ne sont pas accessible sur internet.
Et pour les statistiques de mon pool:

Un petit schéma tout mignon ?
Bien sûr !

C'est un schéma très simplifié, mais ça vous donne un apercu du fonctionnement du 1/4 de baie !
Mais alors, j'héberge quoi dans ce 1/4 de baie ?
Depuis la création de mon quart de baie (et même d'AtaxyaSR, pour ceux qui me suivent depuis très longtemps !), j'utilise toujours des produits Open Source pour mes différents usages. Voici une petite liste (pas complète) des outils installés sur la Brasserie :
- Hyperviseur : XCP-ng (what else ?) et son interface d'administration Xen Orchestra
- Web : site statique, Heimdall (ataxya.net), Wordpress (cecilemorange.fr), Ghost (le blog que vous êtes en train de lire), Bookstack (doc.ataxya.net)
- Mail : poste.io
- Compta : Dolibarr
- Monitoring : Observium (hébergé ailleurs que sur la Brasserie), Uptime Kuma
- Autre en vrac : Netbox, Immich, Gitea, Nextcloud, Passbolt, Solidtime...
Aujourd'hui la Brasserie héberge des outils pour mon business (mais pas de données clients !), mais aussi pour la communauté (miroir XCP-ng, par exemple) et ma famille. C'est pour ça qu'il était important de refaire cette infra au propre, pour assurer que les VMs et tous mes outils soient dans un environnement sain et stable (et aussi pour ma paix intérieure !)
Futures updates
J'ai quelques idées d'améliorations possibles de mon infrastructure, en vrac:
- Passer de poste.io à mailcow pour la partie mail (meilleure gestion coté admin, entre autres).
- Améliorer ma stack de monitoring: Ajouter Prometheus, Grafana, peut-être Loki.
- Je ne ressens pas le besoin pour l'instant de changer les serveurs. Ce sont des bécanes qui tournent bien, pas trop vielle, et qui consomment relativement peu !
- Fiabiliser mes backups: Ajout d'autres remote s3 pour externaliser les backups (déjà en cours).
- Installer un cluster Kubernetes pour me former sur des petits projets.
- Remettre en place un XOSTOR, maintenant qu'il est officiellement supporté sur XCP-ng 8.3
- Refaire le plan d'adressage de mon /24, pour essayer d'avoir une logique. C'est un point un peu contraignant, car il faut réadresser et changer les DNS machine par machine
- Et un jour, poser un routeur à TH2 pour étendre mon AS vers d'autres
cieuxData Center (oui bon, chacun ses rêves dans la vie).
Évidemment, cette infra va continuer à évoluer en prenant de l'âge. Stay tuned !
Remerciements à Steeve, Jérome, Nicolas, Hugues, le staff Aqua Ray, Olivier et Julien, pour le coup de main sur l'infra !
