Forum Linux.debian/ubuntu PXE : tftp impossible

Posté par . Licence CC by-sa.
0
5
oct.
2015

Bonjour à tous,

voilà 15 heures que je galère avec LTSP et mes machines virtuelles !

J'ai un serveur prêt, une image clients prête.
J'ai bien une accroche sur les postes clients avec PXE, et une IP correcte.
Mais la transaction TFTP ne se fait pas.

En TELNET local serveur c'est ok.
En partant d'un client, c'est mort sur les ports 69 et 8099.

J'ai bien désactivé le pare-feu de la box, ouvert les ports en NAT dessus.
J'ai activé UFW sur le serveur, avec ouverture des ports. Même avec iptables.

Merci de votre aide :)

edit: je précise que ce serveur est seul dhcp sur le lan.
edit: je précise que je n'ai pas de /ltsp/i386/pxelinux.0 , car ayant vu ça dans le dhcpd.conf …
Serait-ce que la commande ltsp-build-client n'aurait rien apporté, ni service, ni fichier ?

  • # UDP

    Posté par . Évalué à 2.

    Mais la transaction TFTP ne se fait pas.

    En TELNET local serveur c'est ok

    Je ne vois pas comment tu pourrais réussir à te connecter en telnet sur le serveur TFTP alors que telnet établit des connexions TCP et que TFTP c'est de l'UDP.

    T'as bien configuré ta box pour de l'UDP sur le port 69 ?

  • # il te manque une etape

    Posté par . Évalué à 2.

    le boot PXE se fait en 3 etapes.

    1°) requete PXE pour obtenir une IP aupres du serveur DHCP ET obtenir le chemin vers un fichier (pxelinux.0 dans le documentation)

    2°) chargement du pxelinux.0 et du fichier de configuration pxelinux.cfg/default

    3°) amorce d'un systeme à partir de l'arborescence du serveur PXE

    dans ton cas, tu parles d'une box, j'imagine que c'est elle qui fournit le DHCP.
    c'est bien, mais ce n'est que la moitié de l'etape 1°)

    il faut encore que le DHCP de ton reseau te disent ou aller chercher l'image pxelinux.0

    soit le DHCP est lui meme serveur PXE, et fournit le pxelinux.0 et le pxelinux.cfg/default,

    soit c'est une autre machine, auquel cas ton DHCP aura besoin de connaitre l'IP du "serveur suivant" (next server dans les options DHCP) et le nom du fichier (pxelinux.0 par defaut)

    • [^] # Re: il te manque une etape

      Posté par . Évalué à 0.

      D'où le problème : je ne pense pas que l'on puisse configurer l'option DHCP "next-server" sur une box… et par défaut (en l'absence de cette option) c'est le DHCP qui est considéré comme "next-server" par le client PXE, donc la box.

      Je recommande par conséquent la mise en place d'un service DHCP sur le serveur qui heberge déjà le TFTP, et de désactiver le DHCP de la box.

      • [^] # Re: il te manque une etape

        Posté par . Évalué à 1.

        Bonjour et merci de vos réponses.

        Hier, suite à lecture d'un article internet, et à force de créer des machines virtuelles et de réinstaller, j'ai réussi à obtenir une connexion telnet en local (127.0.0.1).
        J'en veux pour preuve, si besoin, que j'ai pu taper help, ou ?, et que j'ai obtenu une liste des commandes, environ une douzaine; mais je n'ai rien trouvé d'intéressant pour moi.

        Là je viens de refaire une ubuntu toute propre et deux simples commandes:
        - sudo apt-get install ltsp-server-standalone
        - sudo ltsp-build-client
        en suivant cette page : https://help.ubuntu.com/community/UbuntuLTSP/LTSPQuickInstall#Installing_on_top_of_an_already_running_desktop_system

        Mon serveur est dans VirtualBox en réseau mode Pont sur eth0.
        Si je fais un boot pxe depuis mon client, il se trouve bien une IP fixe, 192.168.1.20, et voit bien le serveur DHCP 192.168.1.222, et le routeur 192.168.1.254, mais aucun transfert de fichier, la phase TFTP ne progresse pas, et me donne "size:0"
        Le serveur évidemment répond au ping, mais pas au telnet 69. Cette requête telnet est refusée en une fraction de seconde.
        Si je fais un telnet 69 sur cette machine en local, j'ai "connexion refused." contrairement à hier.
        Ma box n'a plus de DHCP actif, ni de pare-feu actif.
        J'ai bien ufw en disabled sur le serveur.
        En faisant un top sur ce serveur, je ne vois rien qui parle de LTSP.

        • [^] # Re: il te manque une etape

          Posté par . Évalué à 1.

          Désolé de me répondre, mais je peux pas éditer mon post, j'ai eu un blocage à l'écran au moment de valider mon premier edit, puis plus le bouton …

          *Je précise que j'avais depuis le début mis mon serveur en dhcp, que j'ai toujours accroché sur l'IP du serveur correctement, et que le client a tjs eu des bons paramètres IP, mais jamais de transaction TFTP.

          *Je précise aussi qu'à chaque fois qu'on veut essayer un truc, en faisant EXACTEMENT ce qui est expliqué, on n'obtient JAMAIS le bon résultat. Il y a toujours des bonnes raisons pour que ça tourne pas, et il manque toujours une petite note sur ces choses qui pourraient bien ne pas tourner. Non, on n'en parlera pas, parce que ce serait montrer que ça marche pas si bien ce truc en question, Haaaaa !
          https://help.ubuntu.com/community/UbuntuLTSP/LTSPQuickInstall#Installing_on_top_of_an_already_running_desktop_system

        • [^] # Re: il te manque une etape

          Posté par . Évalué à 0.

          Comme précisé précédemment, TFTP n'est pas un protocole basé sur TCP (mais UDP) donc le client telnet n'est pas utilisable.

          Pour installer un client tftp sous Debian/Ubuntu :
          apt-get install tftp

          Ensuite faire un tftp nom_du_serveur pour tester.

        • [^] # Re: il te manque une etape

          Posté par . Évalué à 3.

          Ma box n'a plus de DHCP actif, ni de pare-feu actif.

          tu peux laisser le parefeu sur la box, ce n'est pas lui qui bloque.

          ensuite ton serveur est dans une VM, en PONT sur le reseau.
          j'imagine que :

          • ton serveur a une IP fixe,
          • le serveur DHCP pointe le next-server vers l'IP du serveur (ou vers lui meme si c'est lui le PXE)

          sur le serveur tu dois avoir un arborescence similaire à celle là :

          pxelinux.0
          pxelinux.cfg/default

          c'est dans default que va se trouver le menu de boot (l'equivalent PXE de GRUB)

          • [^] # Re: il te manque une etape

            Posté par . Évalué à 1.

            Bonjour et merci

            alors disons que je me suis trop crevé sur ce plan, et que je ne sais pas comment, mais avec une requête x ou y sur 127.0.0.1, j'ai eu une réponse, si je me souviens bien, du style:
            tftp>
            en tapant par hasard "help", j'ai obtenu une liste des commandes que je pouvais saisir pour discuter semble-t-il avec ce serveur, une douzaine environ.
            Je peux pas l'inventer, ça, mais je ne sais plus comment j'ai fait. faut dire qu'avec toutes ces heures passées à perdre mon temps, pas étonnant que je perde aussi la boule.

            Oui mon serveur a une IP fixe, 192.168.1.222
            oui il est bien en pont dans ma VM
            et le dhcpd.conf de LTSP est celui-ci (biensûr, le copier-coller bidirectionnel n'est qu'une promesse, on retape tout):

            authoritative;
            subnet 192.168.1.0 netmask 255.255.255.0 {
            range 192.168.1.20 192.168.1.250;
            option domain-name "example.com";
            option domain-namme-servers range 192.168.1.1;
            option broadcast-address range 192.168.1.255;
            option routers range 192.168.1.254;
            next-server range 192.168.1.222 <= c'est mon serveur ltsp
            option subnet-mask 255.255.255.0;
            option root-path "/opt/ltsp/i386": <= qui contient debootstrap et var , et rien d'autre
            if substring …tatata … "/ltsp/i386/pxelinux.0"; <= qui n'existe pas en réel dans mon serveur (?)
            } else{
            filename "/ltsp/i386/nbi.img";

            Voilà

            Dans mon serveur, j'ai fait un
            locate pxelinux.0
            => rien

            Encore ce soir, mon portable boote bien dessus, mais aucun fichier ne se charge.

            • [^] # Re: il te manque une etape

              Posté par . Évalué à 1.

              Donc puisque même éditer mon post n'est pas possible (un Gandalf noir me déclare "Vous ne passerez pas !") je me réponds encore une fois pour ajouter, que je suis en train de refaire une image pxe en re-lançant cette commande "build client", trouvée ici :http://www.mathrice.org/IMG/pdf_ltsp.pdf

              sudo lstp-build-client --archi386 --chroot=demo

              ça met en général plus d'une heure (Xeon 8 coeurs à 3.5 GHZ, SSD x 2 en RAID0 + 2HDD en RAID1, 12Go RAM, et 8 de swap, adsl 18 M, 4 coeurs virtuels ds la VM), ce qui m'étonne un peu, soit.

              Au final, quel fichiers nécessaires devrai-je trouver, et où ?
              J'ai l'impression en fait que mon serveur ne crée jamais ce qu'il faut avec cette commande build.
              J'ai lu tous les tutos d'internet, je suis mort, dodo.

              bye

            • [^] # Re: il te manque une etape

              Posté par . Évalué à 2.

              si tu peux copier/coller cette partie là, mais complete à partir de ton serveur DHCP ?

              [1] option root-path "/opt/ltsp/i386":
              [2] if substring …tatata … "/ltsp/i386/pxelinux.0";
              } else{
              filename "/ltsp/i386/nbi.img";
              ```

              dans [1] tu dis que les dossiers sont dans /opt/ltsp/i386
              [2] tu dis que c'est dans /ltsp/i386/ sans le /opt

              quant au dossier qui devrait contenir le pxelinux.0 et pxelinux.cfg
              on dirait que ltsp ne t'a pas installé le serveur TFTP, ou ne t'as pas installé le BON serveur TFTP

              generalement on a plutot une architecture de base avec par exemple :
              /tftpboot/pxelinux.0
              /tftpboot/pxelinux.cfg
              /tftpboot/pxelinux.cfd/default

              et dans default tu viendras mettre les menus de demarrage, dans une syntaxe similaire à celle de grub ou de syslinux…

              t'es sous quelle distrib deja ?

              • [^] # Re: il te manque une etape

                Posté par . Évalué à 1.

                Wah cool de ta part.
                T'arrives chez toi, tu vois une réponse, ça te relance, même si je t'avoue, je sais pas où je vais ni comment.
                Mais tu vois, t'es combatif, t'as envie de réussir, de calmer cette frustration, cette obsession, bâtie sur un truc trop dur !
                Trop dur parce que facile dans les tutos, mais avec rien qui marche une fois dans tes pognes, et des variables à gogo qui viennent comme des chauves-souris hanter les longues heures que tu passes devant cet écran qui transforme tes yeux en braisons.
                L'enfer ? Ouais, quand ça marche pas, et paradis pour les meilleurs.
                Sélection naturelle universelle.

                Je fais mes conneries sous Ubuntu 14.04 LTS; j'ai essayé plein de distri, mais celle-ci me paraît très bonne tous facteurs moyennant, et puis, je me tape des trucs trop hauts, alors il me faut une distri fastoche c'est déjà assez bouffant. Faites comme moi, pour me former, je vis dans l'échec !
                J'ai en VM une dizaine de Linux au choix, des bien, des moins bien, bref.
                Mon éducation est souffrance :)

                Sinon c'est ça, LTSP n'a rien foutu, en gros, juste parce que c'est moi, et qu'il a décidé de se foutre de mon groin.

                Il ne m'a pas installé TFTP, j'ai dû le faire.
                Il manquait à peu près tout dans les endroits où il était censé poser des fichiers, même après plusieurs install selon les tuto officiels.
                La commande lstp-build-image qui dure une éternité, et au final, rien dans les fouilles.
                Pourquoi ? Personne ne le saura jamais. C'est perdu
                Une fois fait, j'ai constaté que je pouvais laisser mon dhcp box en route.
                Et j'ai pu me connecter (non pas en telnet, donc) mais en commande directe terminal avec succès en local biensûr, mais aussi en distant depuis VMs ou bien mon PC direct.
                J'ai bien collé un pxelinux.0 à quelques endroits, mais rien n'y fait.

                J'ai pas le recul sur ce que ce naze de LTSP aurait dû faire, j'ai pas trouvé un truc qui prend ddu recul, rien que des tutos vite fait, et des discussions de forums.
                J'aurais besoin de savoir quoi va où et sert à quoi, après j'ai encore un peu de discernement tu vois.

                Bon je vais essayer de voir avec ce que tu me donnes ce soir.

                Go, je redescends sous terre voir le griffu.
                ```

                • [^] # Re: il te manque une etape

                  Posté par . Évalué à 2.

                  Une fois fait, j'ai constaté que je pouvais laisser mon dhcp box en route.
                  Et j'ai pu me connecter (non pas en telnet, donc) mais en commande directe terminal avec succès en local biensûr, mais aussi en distant depuis VMs ou bien mon PC direct.
                  J'ai bien collé un pxelinux.0 à quelques endroits, mais rien n'y fait.

                  c'est normal, le DHCP de ta box n'a pas l'option next server qui va aller sur ton serveur LTSP

                  bonne recherche.

                  • [^] # Re: il te manque une etape

                    Posté par . Évalué à 1.

                    Ok ok

                    Donc là j'ai corrigé mon dhcpd.conf pour balancer mon client dans /opt/ltsp/i386, où il y a un gentil pxelinux.0 qui l'attend.
                    RIEN
                    J'ai donc copié ce pxelinux.0 dans /opt/ltsp/amd64 et modifié dhcpd.conf en fonction.
                    Devinez quoi : RIEN.
                    Keutchi, nada.

                    Mon client continue de choper une ip, d'attendre la transac, et voilà.

                    Je précise qu'il s'agit d'un pxelinux.0 issu de SYSLINUX CHOPÉ ICI:
                    https://docs.oracle.com/cd/E20815_01/html/E20821/gjqeh.html

                    Et après, le trus default.cfg, j'ai pas fait.

                    Tout ça, ma commande ltsp-buil-client, aurait dû le faire, si je comprends bien ?

                    • [^] # Re: il te manque une etape

                      Posté par . Évalué à 2.

                      donc il chope une IP de ton DHCP
                      mais n'arrive pas à joindre ton TFTP

                      tu as installé un paquet genre tftpboot ? ou juste ltsp ?

                      • [^] # Re: il te manque une etape

                        Posté par . Évalué à 1.

                        LTSP seul

                        j'en peux plus.
                        J'voudrais mettre fin à cette folie.
                        Débrancher tous les câbles de la Terre, et qu'on aille tous faire du cheval.
                        On penserait à nos années douleur, passées à mâchonner l'intelligence qu'on avait pas, reçue par le réseau, avec nostalgie et soulagement.

                        Mais j'aimerais quand même bien réussir ce truc, il avait l'air tellement simple au début !

                        • [^] # Re: il te manque une etape

                          Posté par . Évalué à 2.

                          LTSP seul

                          ben il te faut alors installer TFTP
                          car c'est TFTP qui remplace GRUB/SYSLINUX pour booter au travers du PXE un noyau, un initrd au travers du reseau.

                          il peut etre installé sur le serveur LTSP,
                          mais ce n'est pas obligatoire,
                          il peut aussi etre installer sur le serveur DHCP,
                          il restera la cible du "next-server" dans les options DHCP

                          c'est ensuite TFTP qui va charger le noyau et l'initrd à partir de ses dossiers, et dire ou se trouve les données de LTSP

  • # JE VOULAIS JUSTE UN TSE

    Posté par . Évalué à 1.

    En fait, pour en revenir au coeur du sujet : je voulais un TSE chez moi.
    Comme avec Win 2008 Serv. (peux pas dire ces mots en entier sans tomber malade)

    Le but était de pouvoir maîtriser cette technique et la placer dans certains contextes pour remplacer les serveurs bourrés de licenses…

    Installer des sessions TSE sur un poste Linux est-il donc si compliqué ?
    Si LTSP n'a pas fait son boulot, alors peut-on trouver d'autres solutions, qui ne seraient pas celles de NoMachine avec leur TSE à 1500 € ?

    • [^] # Re: JE VOULAIS JUSTE UN TSE

      Posté par . Évalué à 2.

      LTSP n'est pas TSE.

      TSE, c'est un serveur centrale sur lequel tu te connectes avec un autre PC pour utiliser une appli qui se trouve sur le serveur,
      tu recuperes alors l'affichage de ce qui se passe sur le serveur.
      Cela permet aussi la reprise de la session là ou tu l'avais laissée, et il n'y a rien installé sur le PC local.

      LTSP c'est un OS concu pour etre executer sur des machines sans disque dur (diskless machine), tu y recuperes un OS complet.
      Si la machine client est trop faible, alors l'OS minimal est executé sur la machine locale, le reste sur le serveur.

      Je ne crois pas que tu puisses recuperer une session en cas de coupure reseau.

      Par contre, pour faire un simili TSE, tu peux utiliser VNC
      VNC server sur le serveur
      VNC viewer sur le poste utilisateur

      • [^] # Re: JE VOULAIS JUSTE UN TSE

        Posté par . Évalué à 1.

        Oui, je sais, LTSP n'était qu'un paliatif, tout comme VNC.

        Les deux sont des solutions inadaptées.

        Moi je cherche à faire du TSE sous Linux pour remplacer des vieilles bécanes sous Win Servbeurk Deux Mille Soixante Quatre

        Et je suis étonné que ce soit si compliqué pour Linux, un système PAR DÉFINITION multi-utilisateurs………………………………………………………………………………
        j'ai fait plein de points parce que ces incohérences, dans 3 ou 5 ans, on en rira, mais pour l'instant, ça me pique à l'intérieur de quelque part.

        • [^] # Re: JE VOULAIS JUSTE UN TSE

          Posté par . Évalué à 2.

          pour monter un projet, il faut comprendre les divers morceaux necessaires pour obtenir un resultat fonctionnel.

          pour TSE, il te faut :

          • un windows server en controlleur de domaine
          • un windows server en server TSE

          pour ton LTSP, il te faut :

          • un serveur DHCP/TFTP
          • un serveur LTSP
          • [^] # Re: JE VOULAIS JUSTE UN TSE

            Posté par . Évalué à 1.

            Oui,

            j'ai bien une réponse DHCP et une attribution d'IP logique.
            Le logiciel LTSP a été installé selon les tutos.
            Sauf que, comme tu l'as peut-être vu plus haut, il n'a pas fait son travail.
            J'ai ensuite installé moi même un PXELINUX.0 là où il fallait, puis le protocole TFTP à la main également.

            Résultat, pas de transaction, aucun transfert.

            Et au vu des échanges que j'ai pu obtenir, personne pour le moment ne peut expliquer ceci, et non plus donner de réponse.

            Donc, logiquement, ce que j'avais prévu de faire, était:
            - soit placer des bombes dans les data centres
            - soit trouver une autre solution sérieuse

            Mais pour le deuxième tirait, il semble que personne n'ai jamais eu besoin d'y penser.

            • [^] # Re: JE VOULAIS JUSTE UN TSE

              Posté par . Évalué à 2.

              rectificatif, il te faut 3 services pour faire marcher tout le bordel.

              1°) un service DHCP, qui va attribuer une IP et dire ou se trouve le fichier pxelinux.0 (option "next-server" dans la config du DHCP
              2°) un service TFTP, pour founir les infos PXE comme le fichier pxelinux.0, le fichier pxelinux.cfg/default qui contiendra le menu de demarrage, et stockera eventuellement les fichiers du systeme que tu veux delivrer par PXE
              3°) un service LTSP pour construire les systemes que tu veux mettre à disposition de tes machines distantes.

              les 3 services peuvent etre sur le meme serveur, ca simplifie l'architecture, mais ce n'est poas obligé.
              tu peux separer l'archi en 2 serveurs :

              • un serveur plus gros qui fournit le PXE et le LTSP et qui sera la cible du next-server configuré dans le DHCP
              • un petit DHCP qui gere le DHCP/DNS de ton infrastructure, à qui tu dis d'aller chercher le serveur fournit precedemment pour le pxelinux.0

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.