====== Technique ====== Cette page recense toutes les ressources pour comprendre l'infrastructure d'ARN. Cette page est à mettre à jour. warning Notamment avec les 2 nouvelles machines et l'installation de [[proxmox]]. ===== Généralités ===== * [[benevoles:technique:generique|Commandes utiles, trucs et astuces, etc]]. Bref, tout ce que nous avons découvert en installant et en maintenant l'infrastructure d'ARN mais qui peut servir dans plein d'autres contextes. On parle des ipmitools, de sauvegarde compacte de partitions, d'astuces pour gérer un Drupal, d'astuces pour Zabbix, etc. ===== Schéma ===== Voici un schéma de l'infrastructure d'ARN au niveau logique : {{ benevoles:arn_logical_map.png?direct&800 |}} Les machines virtuelles sont flottantes (pas reliées à une machine physique) car elles peuvent être déplacées d'un hyperviseur (Dell server et HP server) à l'autre en cas de panne ou de maintenance. Bref, elles ne sont pas fixées à une machine physique donnée. Un schéma actualisé est disponible [[https://zabbix.arn-fai.net/sysmap.php?sysmapid=1&sid=6a1ed5a2084d9fbd|ici]]. ===== git ===== Nos principales configurations, nos scripts, nos hooks Ganeti ainsi que les checks de monitoring que nous avons codés/améliorés sont publiquement disponibles dans notre dépôt git : [[http://gitlab.netlib.re/arn/arn-confs/tree/master|arn-confs sur gitlab.netlib.re]]. ===== Choix ===== * [[benevoles:notes:choix|Choix techniques]] que l'on évite de remettre en question sans raison valable. ===== Matériel ===== L'infrastructure d'ARN, c'est d'abord du matériel qui est décrit dans les pages suivantes : * [[benevoles:technique:matos|Matériel]] : présentation de nos machines et équipements ainsi que du local où tout cela est rangé. * [[benevoles:technique:pdu|PDU]] : focus sur nos multiprises programmables. * [[benevoles:technique:config_bas_niveau_serveurs|Configuration "bas niveau" de nos serveurs]] ===== Virtualisation ===== En dehors des **deux machines physiques présentées ci-dessus qui servent de [[benevoles:technique:routage|routeurs]] vers/depuis le reste d'Internet, d'[[benevoles:technique:ganeti|hyperviseurs]] et de [[benevoles:technique:ntp|serveurs NTP]] pour tout le réseau ARN**, tout le reste de l'infrastructure d'ARN est répartie dans des machines virtuelles (VM en anglais) et des conteneurs LXC. Voir notre dépôt git pour un [[http://gitlab.netlib.re/arn/arn-confs/tree/master/lxc|exemple de config' LXC]]. **À l'heure actuelle, nous avons 5 VM.** Les VMs sont nues et ne servent qu'à héberger des LXC. **Les LXC sont les seules entités qui hébergent des services.** * **VM 0 - « ext » : héberge les services qui sont en relation / qui communiquent avec l'éxtérieur du réseau ARN** * LXC « mail » : notre serveur de mails principal (postfix + postgrey). Voir [[benevoles:technique:emails|Emails]]. Liste de discussion avec le logiciel mailman (+ nginx), voir [[technique:mailman]] * LXC « ns0 » : notre serveur de noms DNS (BIND) primaire qui fait autorité sur nos zones (arn-fai.net, 141.234.89.in-addr.arpa, 1.8.1.8.8.5.0.0.a.2.ip6.arpa et netlib.re/codelib.re, sans-nuage.fr) * LXC « recursif » : notre [[benevoles:technique:recursif|serveur DNS récursif ouvert]] (Unbound). * LXC « web » : notre serveur web (apache HTTPd + php-fpm + MySQL) qui sert nos sites web (arn-fai.net, lg.arn-fai.net, netlib.re/codelib.re) * **VM 1 - « int » : héberge les services internes à l'association** * LXC « adh » : héberge l'appli maison de facturation des services fournis par l'association (+ nginx en serveur web frontal + postgresql). * LXC « puppet » : notre gestionnaire des configurations, [[benevoles:technique:puppet|Puppet]]. * LXC « Zabbix » : un de nos outils de monitoring, [[benevoles:technique:monitoring|Zabbix]] (+ nginx en serveur web frontal + php-fpm). * **VM 2 - « VPN » : notre [[benevoles:technique:vpn|serveur VPN]]** * **VM 3 - « servicesadh » : un Yunohost pour les membres de l'association** Justifications : * Limiter au maximum les dépendances entre conteneurs LXC et surtout, entre VM. * Faire le mieux possible avec les ressources que l'on avait au moment de ce découpage (infra mutualisée avec LDN, peu de RAM, etc.) qui n'a pas changé depuis le début de l'asso. Notons que nous avons également une machine virtuelle chez Tetaneutral.net, FAI associatif toulousain. Cette VM est fournie dans le cadre d'un échange de VMs : ainsi TTNN a une machine virtuelle sur notre infra. * **VM 4 - « alsace.ttnn » : VM auxiliaire déportée**. Aucun LXC, les services sont installés directement sur la VM * Serveur de noms DNS (nsd) secondaire qui fait aussi autorité sur nos zones. * Serveur de mail secondaire (postfix + postgrey). Voir [[benevoles:technique:emails|Emails]] * Serveur web (nginx + php-fpm) pour servir le présent wiki. Voir [[benevoles:notes:choix##wiki_sur_l_infra|Choix techniques]] * Notre deuxième outil de monitoring, [[benevoles:technique:monitoring|Picomon]]. * Serveur de blackhole RTBH (BIRD) pour notre premier [[benevoles:technique:routage#qu_est-ce_qu_un_transitaire|transitaire]], Cogent. En cas de DDoS arrivant par Cogent, c'est depuis ici qu'il faudra annoncer les IPs qui subissent une attaque pour que cette dernière soit contenue par Cogent (ce qui à pour effet de bloquer l'IP d'ARN en entrée de Cogent donc cette IP devient inaccessible, même pour des usages légitimes). Voir [[http://www.cogentco.com/files/docs/customer_service/guide/global_cogent_customer_user_guide.pdf|Cogent User Guide]] page 17. ===== Réseau ===== * [[benevoles:technique:l2|L2]] : niveau 2 (commutation), câblage, configuration de notre switch, nomenclature des VLANs, etc. * [[benevoles:technique:l2l|L2L]] : ARN loue un L2L entre le datacenter Cogent de Schiltigheim et le Netcenter SFR de Strasbourg afin de pouvoir causer à son deuxième [[benevoles:technique:routage#qu_est-ce_qu_un_transitaire|transitaire]], Interoute. * [[benevoles:technique:adressage|Adressage]] : adresses IP, attribution, gestion, plan d'adressage, etc. * [[benevoles:technique:routage|Routage]] : comment sommes-nous opérateur réseau ? Comment les machines d'ARN peuvent-elles communiquer avec tout le reste d'Internet ? Comment choisir un transitaire ? Config' BGP, etc. ===== Logiciels ===== * [[benevoles:technique:logiciels|Logiciels utilisés]] * Synchronisation des horloges avec [[benevoles:technique:ntp|NTP]] * [[benevoles:technique:monitoring|Monitoring]] avec Zabbix et Picomon * Gestion des configurations avec [[benevoles:technique:puppet|Puppet]] * [[benevoles:technique:backups|Sauvegardes]] avec Bacula * Surveillance de l'état de santé de nos SSD avec [[benevoles:technique:smartd|SMARTd]] * [[benevoles:technique:emails|Emails]] * [[benevoles:technique:x509|Certificats x509]] d'ARN * * [[benevoles:technique:lufi-cli|Lufi cli]] ===== Sécurité ===== * [[benevoles:technique:auth|Authentification]] et gestion des mots de passe communs * [[benevoles:technique:bcp38|Anti-usurpation d'adresses IP]] * [[benevoles:technique:maj|Gestion des mises à jour]] ===== Services ===== Service de l'association ouverts au public : * VPN : ce service repose sur [[benevoles:technique:vpn|OpenVPN]] * VPS : ce service repose sur [[benevoles:technique:ganeti|Ganeti]] * Housing : ce service repose sur [[benevoles:technique:carp|CARP]] * [[benevoles:technique:recursif|Serveur DNS récursif ouvert]] * [[benevoles:technique:yunohost_mutu|Sans-nuage.fr]] * [[benevoles:technique:natta|Natta: le réseau d'antennes radios]] * [[benevoles:technique:wifi-with-me|Wifi-With-Me : la carte des motivé-e-s pour le projet sans fil]] ===== Procédures ===== * [[procedures|Procédures]] (réservées aux admins) ===== Travaux sur l'infra ===== * [[benevoles:compte_rendus:travaux-2014-03-01|Travaux du 1 et 2 mars 2014]] * [[benevoles:compte_rendus:travaux-2019-01-20|Travaux du 20 janvier 2019: réinstallation hwhost1]] * [[benevoles:compte_rendus:travaux-2019-01-27|Travaux du 27 janvier 2019: configuration réseau, firmware et ssh sur hwhost1 + mise en place des racks avec les nouveaux ssd]] * [[benevoles:compte_rendus:travaux-2019-03-03|Travaux du 3 Mars 2019 : mise en place des ssd supplémentaires et remontage de hwhost1]] ===== Divers ===== * [[benevoles:notes:pa_non_routes|Les PA non routés]] ; * [[benevoles:notes:idees_techniques|Idées techniques qui pourraient être des plus pour notre promotion]] * Résultats de [[benevoles:notes:discuss_chiwawa|discussions avec chiwawa]] ===== Archives ===== * À propos du [[benevoles:notes:ldn-serveur_routeur|serveur/routeur]] * Réflexions sur l'[[benevoles:technique:infrastructure]]