2 votes

Le démarrage PXE échoue avec IP-Config : pas de réponse - j'abandonne

Je suis en train de construire un réseau avec un serveur DHCP (192.168.201.2), un serveur TFTP/NFS (192.168.201.3) et d'autres machines qui vont démarrer à partir des deux, toutes les machines fonctionnent sous Ubuntu 16.04.4.

Lorsque je l'allume, après le post, il reçoit avec succès une IP du serveur DHCP, il se connecte au serveur TFTP, charge vmlinuz et initrd.img mais lorsqu'il essaie d'obtenir l'IP à nouveau, il donne ce message :

IP-Config: eth0 hardware address xx:xx:xx:xx:xx:xx mtu 1500 DHCP
IP-Config: no response after 2 secs - giving up
IP-Config: eth0 hardware address xx:xx:xx:xx:xx:xx mtu 1500 DHCP
IP-Config: no response after 3 secs - giving up

et ainsi de suite.

Ma configuration

/etc/dhcp/dhcpd.conf

ddns-update-style none;

default-lease-time 600;
max-lease-time 7200;

authoritative;

log-facility local7;

allow booting;
allow bootp;

subnet 192.168.201.0 netmask 255.255.255.0 {
        default-lease-time 3600;
        max-lease-time 86400;
        option routers 192.168.201.1;
        option subnet-mask 255.255.255.0;
        option domain-name-servers 208.67.222.222, 8.8.8.8;
        option broadcast-address 192.168.201.255;
        range 192.168.201.3 192.168.201.254;
        filename = "gpxelinux.0";
        next-server 192.168.201.3;
}

host tftp {
    hardware ethernet xx:xx:xx:xx:xx:xx;
    fixed-address 192.168.201.3;
}

/tftpboot/pxelinux.cfg/default

MENU LABEL Ubuntu DISKLESS
KERNEL vmlinuz-4.4.0-127-generic
APPEND boot=nfs root=/dev/nfs nfsroot=192.168.201.3:/srv/nfsroot/installer/ default,ro initrd=initrd.img-4.4.0-127-generic ipv6.disable=1 ip=dhcp net.ifnames=0 biosdevname=0

/etc/initramfs-tools/initramfs.conf (sur le système du serveur NFS)

MODULES=netboot
BUSYBOX=auto
COMPCACHE_SIZE=""
COMPRESS=gzip
DEVICE=eth0
NFSROOT=auto
BOOT=nfs

J'ai trouvé cette mais il a été corrigé sur klibc - 2.0.4-8ubuntu1.16.04.1, et c'est la version que j'utilise.

J'ai essayé de lancer dhcpdump sur le serveur DHCP et j'obtiens ceci :

  TIME: 2018-06-05 11:22:59.057
    IP: 0.0.0.0 (xxx) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 4dae1bf8
  SECS: 4
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: xxx
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 36) Parameter Request List      1 (Subnet mask)
                                              2 (Time offset)
                                              3 (Routers)
                                              4 (Time server)
                                              5 (Name server)
                                              6 (DNS server)
                                             11 (Resource location server)
                                             12 (Host name)
                                             13 (Boot file size)
                                             15 (Domainname)
                                             16 (Swap server)
                                             17 (Root path)
                                             18 (Extensions path)
                                             22 (Maximum datagram reassembly size)
                                             23 (Default IP TTL)
                                             28 (Broadcast address)
                                             40 (NIS domain)
                                             41 (NIS servers)
                                             42 (NTP servers)
                                             43 (Vendor specific info)
                                             50 (Request IP address)
                                             51 (IP address leasetime)
                                             54 (Server identifier)
                                             58 (T1)
                                             59 (T2)
                                             60 (Vendor class identifier)
                                             66 (TFTP server name)
                                             67 (Bootfile name)
                                            128 (???)
                                            129 (???)
                                            130 (???)
                                            131 (???)
                                            132 (???)
                                            133 (???)
                                            134 (???)
                                            135 (???)

YIADDR : 0.0.0.0 signifie que le serveur reçoit la requête mais ne répond pas, n'est-ce pas ? Mais pourquoi ?

J'ai également essayé de remplacer ip=dhcp par ip=bootp et ip=:192.168.201.2::::eth0:dhcp, mais rien ne change.

Si je définis une IP statique manuellement avec :

ip=192.168.201.55:192.168.201.2:192.168.201.1:255.255.255.0:ubuntu:eth0:static

tout fonctionne, mais le réseau va avoir de nombreux clients, j'ai besoin de tout automatiser.

Je n'arrive pas à comprendre ce que je fais de travers.

Edita:

Le serveur DHCP es répondre :

  TIME: 2018-06-05 11:23:24.857
    IP: 192.168.201.2 (xxx) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 8d449854
  SECS: 0
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 192.168.201.11
SIADDR: 192.168.201.3
GIADDR: 0.0.0.0
CHADDR: xxx
 SNAME: .
 FNAME: gpxelinux.0.
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:  54 (  4) Server identifier         192.168.201.2
OPTION:  51 (  4) IP address leasetime      3164 (52m44s)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   192.168.201.1
OPTION:   6 (  8) DNS server                208.67.222.222,8.8.8.8
OPTION:  15 ( 11) Domainname                example.org
OPTION:  28 (  4) Broadcast address         192.168.201.255

et tout me semble correct, mais alors pourquoi le client ne le reçoit-il pas ?

0voto

Fyde Points 41

Si quelqu'un trouve cela, voici comment j'ai résolu le problème.

En insecte La méthode la plus simple pour le corriger est de télécharger INITRD_N11.2.2.GZ à partir de aquí et le placer dans le dossier où se trouve votre fichier initrd, puis ajouter le nom du fichier dans la configuration PXE après l'initrd original, en le séparant par une virgule. Il faut également que l'adresse IP soit réglée sur bootp. Mon fichier est donc maintenant comme ceci :

MENU LABEL Ubuntu DISKLESS
KERNEL vmlinuz-4.4.0-127-generic
APPEND boot=nfs root=/dev/nfs nfsroot=192.168.201.3:/srv/nfsroot/installer/ default,ro initrd=initrd.img-4.4.0-127-generic,INITRD_N11.2.2.GZ net.ifnames=0 biosdevname=0 ipv6.disable=1 ip=bootp

et tout fonctionne bien.

INITRD_N11.2.2.GZ est uniquement pour Ubuntu 16.04, si vous avez une version différente, vérifiez. aquí .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X