HOS 2.X Démarrage PXE avec LACP

2016-01-27

HOS 2.X Démarrage PXE avec LACP

Machine-translated — the English original is authoritative.

Aujourd'hui, je travaillais sur une installation utilisant des cartes réseau bondées sur tous les serveurs. Des interfaces réseau 10 Gb/s à double port étaient bondées à l'aide de LACP sur les commutateurs HP59XX comme suit :

[GJL-HP5900-1-Bridge-Aggregation2]display link-aggregation verbose Bridge-Aggregation2
Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing
Port Status: S -- Selected, U -- Unselected, I -- Individual
Flags:  A -- LACP_Activity, B -- LACP_Timeout, C -- Aggregation,
        D -- Synchronization, E -- Collecting, F -- Distributing,
        G -- Defaulted, H -- Expired

Aggregate Interface: Bridge-Aggregation2
Aggregation Mode: Dynamic
Loadsharing Type: Shar
System ID: 0x8000, aaaa-bbbb-cccc
Local:
  Port             Status  Priority Oper-Key  Flag
--------------------------------------------------------------------------------
  XGE1/0/3         S       32768    2         {ACDEFG}
  XGE1/0/4         U       32768    2         {ACG}
Remote:
  Actor            Partner Priority Oper-Key  SystemID               Flag
--------------------------------------------------------------------------------
  XGE1/0/3         0       32768    0         0x8000, 0000-0000-0000 {DEF}
  XGE1/0/4         0       32768    0         0x8000, 0000-0000-0000 {EF}

Cependant, tous les serveurs étaient incapables de démarrer via PXE.

L'examen de la console des serveurs a révélé qu'ils tentaient de démarrer via PXE mais ne semblaient pas recevoir de réponse du serveur de déploiement.

Une vérification rapide de la configuration sur Helion Lifecycle Manager montre que tout est correctement configuré.

graham@helion-cp1-c1-m1-mgmt:/etc/dhcp$ cat dhcpd.conf | more
# ******************************************************************
# Cobbler managed dhcpd.conf file
# generated from cobbler dhcp.conf template (Mon Jan 18 14:32:10 2016)
# Do NOT make changes to /etc/dhcpd.conf. Instead, make your changes
# in /etc/cobbler/dhcp.template, as /etc/dhcpd.conf will be
# overwritten.
# ******************************************************************

ddns-update-style interim;

allow booting;
allow bootp;

ignore client-updates;
set vendorclass = option vendor-class-identifier;

option pxe-system-type code 93 = unsigned integer 16;

subnet 172.16.60.0 netmask 255.255.255.0 {
     option routers             172.16.60.10;
     option domain-name-servers 172.16.60.10;
     option subnet-mask         255.255.255.0;
     deny unknown-clients;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                172.16.60.10;
     class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          if option pxe-system-type = 00:02 {
                  filename "ia64/elilo.efi";
          } else if option pxe-system-type = 00:06 {
                  filename "grub/grub-x86.efi";
          } else if option pxe-system-type = 00:07 {
                  filename "grub/grub-x86_64.efi";
          } else {
                  filename "pxelinux.0";
          }
     }

}

# group for Cobbler DHCP tag: default
group {
    host generic7 {
        hardware ethernet 8c:dc:d4:b5:ce:80;
        fixed-address 172.16.60.14;
        option host-name "compute2";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic5 {
        hardware ethernet 8c:dc:d4:b5:c9:74;
        fixed-address 172.16.60.12;
        option host-name "controller3";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic1 {
        hardware ethernet 8c:dc:d4:b5:c9:00;
        fixed-address 172.16.60.13;
        option host-name "compute1";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic6 {
        hardware ethernet 8c:dc:d4:b5:c6:40;
        fixed-address 172.16.60.11;
        option host-name "controller2";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic4 {
        hardware ethernet 5c:b9:01:8d:6b:68;
        fixed-address 172.16.60.15;
        option host-name "osd1";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic3 {
        hardware ethernet 5c:b9:01:8d:73:dc;
        fixed-address 172.16.60.17;
        option host-name "osd3";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
    host generic2 {
        hardware ethernet 5c:b9:01:8d:70:0c;
        fixed-address 172.16.60.16;
        option host-name "osd2";
        option routers 172.16.60.10;
        next-server 172.16.60.10;
    }
}
$ netstat -an | fgrep -w 67
udp        0      0 0.0.0.0:67              0.0.0.0:*

dhcpVerify

netstat -an | fgrep -w 69
udp        0      0 0.0.0.0:69              0.0.0.0:*

tftpVerify

sudo grep -i dhcp /var/log/syslog
tcpdump -n -i any port 67 or port 68 or port 69

Ces vérifications ont montré que les services du nœud de déploiement sont opérationnels, mais aucune requête DHCPDISCOVER n'atteint ses interfaces.

Cela pointe vers un problème fondamental avec le domaine de diffusion du réseau de gestion. Les requêtes de diffusion PXE quittent les serveurs mais n'atteignent pas le nœud HLM sur le même réseau.

La configuration de base du commutateur a été revue pour s'assurer que le VLAN de gestion était le VLAN natif et que tous les ports étaient correctement configurés. Tout semblait correct.

Nous avons ensuite supprimé la configuration LACP et le processus de démarrage PXE s'est mis en marche. TCPDUMP a montré que les requêtes DHCPDISCOVER entrantes étaient désormais reçues.

Une recherche rapide sur Google concernant les problèmes PXE sur HP5900 avec LACP a révélé la cause racine du problème, que l'on peut trouver ici – merci à Peter Debruyne.

SOLUTION : Lors de l'utilisation de LACP sur des nœuds qui démarrent initialement en tant que cartes réseau individuelles – comme lors d'une tentative de démarrage PXE – il est nécessaire de configurer le type LACP comme « edge-port » comme suit :

[GJL-HP5900-1-Bridge-Aggregation2]lacp edge-port
[GJL-HP5900-1-Bridge-Aggregation2]display link-aggregation verbose Bridge-Aggregation2
Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing
Port Status: S -- Selected, U -- Unselected, I -- Individual
Flags:  A -- LACP_Activity, B -- LACP_Timeout, C -- Aggregation,
        D -- Synchronization, E -- Collecting, F -- Distributing,
        G -- Defaulted, H -- Expired

Aggregate Interface: Bridge-Aggregation2
Aggregation Mode: Dynamic
Loadsharing Type: Shar
System ID: 0x8000, aaaa-bbbb-cccc
Local:
  Port             Status  Priority Oper-Key  Flag
--------------------------------------------------------------------------------
  XGE1/0/3         I       32768    2         {AG}
  XGE1/0/4         I       32768    2         {AG}
Remote:
  Actor            Partner Priority Oper-Key  SystemID               Flag
--------------------------------------------------------------------------------
  XGE1/0/3         0       32768    0         0x8000, 0000-0000-0000 {DEF}
  XGE1/0/4         0       32768    0         0x8000, 0000-0000-0000 {EF}
[NEO-HP5900-1-Bridge-Aggregation2]

Les ports LACP nouvellement configurés fonctionnent désormais en tant que cartes réseau individuelles lors du démarrage PXE.

Les images suivantes donnent une vue de ce à quoi devrait ressembler un système correctement configuré lors du démarrage PXE-

PXE&TCPDUMP

SyslogMessages

Originally published on allthingscloud.eu (2016-01-27).

← All posts