[technique] Preparation du Dell T630 pour remplacer le routeur h7 / debian 11 RAID1 et LACP 4x10G

Laurent GUERBY laurent at guerby.net
Ven 30 Déc 21:29:31 CET 2022


Bonsoir,

Nous avons récupéré plusieurs serveurs Dell dont un T630 format tour
(4U) avec un Intel(R) Xeon(R) CPU E5-2603 v3 @ 1.60GHz (6 coeurs) et
64GB RAM DDR4 ECC (4x16GB), et deux alimentations hot swap.

https://www.dell.com/support/home/fr-fr/product-support/product/poweredge-t630/overview

Nous avons d'abord mis a jour les BIOS jusqu'au dernier 	Version
: 2.15.0 Release Date: 07/06/2022

Merci a Hugo de Humans Connexion pour avoir fourni la licence IDRAC
gratuitement a tetaneutral.net ! Elle nous permet de controler la
machine a distance via un navigateur web, incluant cdrom virtuel.

Nous avons ensuite acheté et installé des tirroirs compatibles 3.5/2.5
pour pouvoir mettre deux SSD  en disque systeme :

https://www.amazon.fr/gp/product/B07SLLBLMJ
WorkDone Pack 3u.-Plateau Caddy HDD 3.5" et Adaptateur 2.5"
environ 60 EUR

Et installé 2 cartes PCIe Intel 2x10G chacune donc 4x10G total.

Pour le systeme nous sommes partis sur du debian 11 en RAID1 mdadm, un
tutorial :

https://oleks.ca/2022/02/06/installation-debian-11-sur-raid-1/

Pour le T630 chaque disque a une partition EFI de 1 GB et une en RAID1
de 200GB avec / dessus, le reste ~ 49 GB est laissé disponible.

L'installeur debian va faire le setup EFI sur seulement le premier
disque, nous avons manuellement copié sur le deuxieme disque et il
faudra penser a le faire a chaque mise a jour (proxmox fait ça tout
seul, mais pas debian). /etc/fstab avec nofail pour systemd sur ces
partitions :

UUID=4FB0-3250  /boot/efi       vfat    umask=0077,nofail      0       1
UUID=4FB1-0976  /boot/efi-680K  vfat    umask=0077,nofail      0       1

Nous avons ensuite testé différent scenarios, enlevé un disque, remis
le disque et reconstruit le RAID, boot en enlevant un des disques.

mdadm --manage /dev/md0 --add /dev/sdb2
mdadm -D /dev/md0 
cat /proc/mdstat

root at t630:~# efibootmgr 
BootCurrent: 0007
BootOrder: 0007,0005
Boot0000* Hard drive C:
Boot0002* IBA XE Slot 0200 v2170
Boot0004* IBA XE Slot 0201 v2170
Boot0005* debian
Boot0007* debian

Niveau systeme pour le moment :

apt-get install man tcpdump tshark screen tmux fping iftop iperf iperf3
bird openvpn rsync molly-guard emacs-nox smartmontools pax mg
nullmailer wireguard borgbackup apache2

Pour le setup reseau nous avons choisi d'utiliser LACP pour aggreger
les 4 liens 10Gbit/s vers le nexus n3064e. 

Coté nexus creation d'une interface "port-channel" avec 4 ports dedans

feature lacp
logging level lacp 7
port-channel load-balance ethernet source-dest-port 

interface port-channel43
  description t630-lacp
  switchport mode trunk
  switchport trunk allowed vlan 174-175,2302,3131-3133,3175
  spanning-tree port type edge trunk

interface Ethernet1/43
  description t630-enp2s0f0
  switchport mode trunk
  switchport trunk allowed vlan 174-175,2302,3131-3133,3175
  spanning-tree port type edge trunk
  channel-group 43 mode active
  no shutdown

interface Ethernet1/44
  description t630-enp2s0f1
  switchport mode trunk
  switchport trunk allowed vlan 174-175,2302,3131-3133,3175
  spanning-tree port type edge trunk
  channel-group 43 mode active
  no shutdown

interface Ethernet1/45
  description t630-enp4s0f0
  switchport mode trunk
  switchport trunk allowed vlan 174-175,2302,3131-3133,3175
  spanning-tree port type edge trunk
  channel-group 43 mode active
  no shutdown

interface Ethernet1/46
  description t630-enp4s0f1
  switchport mode trunk
  switchport trunk allowed vlan 174-175,2302,3131-3133,3175
  spanning-tree port type edge trunk
  channel-group 43 mode active
  no shutdown

Coté T630 :

=> /etc/network/interfaces 

iface enp2s0f0 inet manual
iface enp2s0f1 inet manual
iface enp4s0f0 inet manual
iface enp4s0f1 inet manual

=> /etc/rc.local creation de l'interface "bond0"

ip link add bond0 type bond
ip link set bond0 type bond miimon 100 mode 802.3ad xmit_hash_policy layer3+4 lacp_rate 1
for i in enp{2,4}s0f{0,1}; do ip link set $i down; ip link set $i master bond0; done
ip link set bond0 up

ip link add link bond0 name bond0.3175 type vlan id 3175
ip link set bond0.3175 up
ip addr add 192.168.3.12/24 dev bond0.3175

En lancant sur 4 machines du cluster ceph  des iperf -P 2 vers le t630
nous avons atteint 32 Gbit/s donc les 4 liens 10 Gbit/s sont bien
utilisés.

Nous avons aussi ajouté au cas ou h7 nous lache avant la bascule une
IPv4 inutilisée venant d'un des /29 d'interco de livraison de transit
Cogent :

ip link add link bond0 name bond0.174 type vlan id 174
ip link set bond0.174 up
ip addr add a.b.c.d/29 dev bond0.174

ip route add a.b.c.e/29 dev bond0.174 table 174
ip route add default via a.b.c.f table 174
ip rule add from a.b.c.d/32 table 174

Avec du source routing donc pour envoyer les paquets retour sur la
bonne gateway en cas de connection entrante sur l'IPv4.

Matthieu a copié les fichiers de configuration de h7 localement sur le
t630, il nous reste a finir la configuration logicielle et fixer une
date de bascule entre h7 et ce nouveau routeur, un bout de TODO ici :

https://md.tetaneutral.net/routeur-2023

debian 11 apporte bird 1.6 vs bird 1.4 sur h7 (debian 8) mais a priori
pas de changement majeur sur la configuration bird.

Note: bird a une version 2.x qui unifie IPv4 et IPv6 en un seul process
(package bird2 de debian 11)

https://gitlab.nic.cz/labs/bird/-/wikis/transition-notes-to-bird-2
https://dn42.eu/howto/Bird2
https://mellowd.dev/bgp/migrating-bird-to-bird2/

Photos du T630 a TLS00 :

https://pano.tetaneutral.net/data/tls00/20221229/IMG_20221229_162605.jpg

https://pano.tetaneutral.net/data/tls00/20221229/IMG_20221229_162619.jpg

Sincèrement,

Laurent


Plus d'informations sur la liste de diffusion technique