Cet article est la suite de la Partie 2. Cette fois, lors de la construction d'un système alternatif PiServer, ce sera la partie de la construction d'un serveur PXE avec dnsmasq, qui est la clé.
C'est une supposition égoïste, mais si vous avez beaucoup de tartes à la râpe, je pense que les machines excédentaires que vous pouvez utiliser librement se trouvent quelque part à la maison ou au travail / à l'université. Et je pense que c'est une bonne idée d'installer un système d'exploitation UNIX familier sur une machine excédentaire, donc je ne décrirai pas comment installer le système d'exploitation lui-même.
Dans ce qui suit, nous supposerons que le nom d'hôte du serveur PXE est "hogeHost" et que l'adresse IP est 192.168.172.16/24.
# /etc/hosts(Exemple)
#192 IP fixe du serveur PXE.168.172.16
#Lorsque le nom d'hôte est hogeHost
127.0.0.1 localhost
192.168.172.16 hogeHost
[^ 20200608 Ajouté]: Ajouté après avoir reçu un commentaire de @kakinaguru_zo (08/06/2020) [^ 20200608 Ajouté 2]: 08/06/2020 Ajouté
La méthode d'installation des packages est différente pour chaque distribution, mais si vous avez un système d'exploitation basé sur UNIX qui utilise un système de packages, vous devez absolument distribuer les packages binaires sur le référentiel officiel, vous n'avez donc pas besoin de le compiler vous-même. [^ GENTOO]. J'omettrai également comment installer le package dans chaque distribution. Installez dnsmasq en utilisant les commandes que vous utilisez normalement, telles que apt-get, pacman ou dnf. Si vous avez oublié la commande, reportez-vous au lien ci-dessous. Référence: Tableau de comparaison ArchLinux Pacman
[^ GENTOO]: Sauf pour Gentoo, qui vous oblige à compiler vous-même n'importe quel logiciel (sourire amer)
Normalement, je peux écrire tous les paramètres dans le fichier /etc/dnsmasq.conf, donc je prends le style d'écrire tout dans le fichier dnsmasq.conf. Selon la distribution, en plus de /etc/dnsmasq.conf, il y a aussi un environnement où il y a un sous-répertoire /etc/dnsmasq.d/ et tous les fichiers sous ce répertoire sont inclus, donc dans ce cas vous aimez Veuillez enregistrer le fichier de paramètres séparément avec. [^ DIV_EX]
Le fichier dnsmasq.conf décrit dans cet article est une version modifiée de celui créé par PiServer.
[^ DIV_EX]: Exemple: Divisez les fichiers par DNS, DHCP, fonctions tftp, divisez par l'adresse MAC de Raspeye, etc.
Le fichier d'exemple (par défaut) dnsmasq.conf est commenté avec une ligne pour ouvrir le service DNS sur le port 5353. Cependant, si vous exécutez dnsmasq dans cet état, le port 53, qui est utilisé pour les services DNS normaux, sera ouvert sans autorisation, donc n'ouvrez pas le port intentionnellement. Gardez la ligne de commentaire et ajoutez la ligne port = 0
/etc/dnsmasq.conf(partie)
・ ・ ・
#port=5353
#Désactiver le DNS(Ajouter une ligne)
port=0
#La ligne suivante est port=Si 0 est spécifié, ce n'est pas une ligne nécessaire, mais
#Au cas où le service DNS démarre par erreur
#Spécifiez que DNS est un service local
local-service
#En tant que nom de balise lors de la configuration des éléments liés au DHCP
#Puisque vous utiliserez votre propre nom d'hôte, votre propre nom d'hôte à l'avance/Enregistrez l'adresse
# [Format] host-record=nom d'hôte,IP hôte
host-record=hogeHost,192.168.172.16
・ ・ ・
Par défaut, la fonction de serveur tftp est désactivée, alors activez-la d'abord. Il permet également d'identifier le client par adresse MAC et de modifier la route tftp vers laquelle effectuer le téléchargement.
/etc/dnsmasq.conf(partie)
#Activer la fonction de serveur tftp
enable-tftp
#Emplacement du répertoire de référence pour les fichiers fournis par tftp(comme vous voulez)
#Sous ce répertoire, MAC/Nous allons créer un répertoire tftproot pour chaque adresse IP
# (C'est en fait un lien symbolique)
tftp-root=/srv/tftp
#Activez la possibilité de trier automatiquement le répertoire tftproot par adresse MAC.
#Au moment où Raspai accède au serveur tftp, il devrait déjà avoir une adresse IP.
#Dans un environnement où une adresse IP fixe peut être attribuée, le répertoire tftproot peut être automatiquement attribué à chaque adresse IP.
#Dans ce cas, après égal"ip"À
#L'environnement que nous construisons actuellement/etc/Je prévois d'utiliser une adresse IP fixe pour la gestion par les hôtes
#J'ose utiliser mac pour maintenir la compatibilité avec les fonctions PiServer.
tftp-unique-root=mac
Créez également un répertoire de base pour stocker le répertoire racine tftp à afficher pour chaque tarte râpe spécifiée dans la ligne tftp-root.
# mkdir /srv/tftp
Par défaut, la fonction de serveur DHCP est désactivée, alors activez-la. Cependant, veuillez noter que la méthode de description de la fonction DHCP à définir à partir de maintenant changera selon qu'un autre serveur DHCP existe ou non dans l'environnement (sous-zone) que vous utilisez actuellement. Au fait, dans mon exemple, c'est celui qui a un serveur DHCP existant.
/etc/dnsmasq.conf(partie)
# dhcp-La fonction DHCP ne sera pas activée sans la ligne de plage, utilisez donc l'une ou l'autre des lignes en fonction de votre environnement.
#S'il n'y a pas d'autres serveurs DHCP dans le sous-réseau
# -------------------
#Il est nécessaire de spécifier la plage d'adresses IP donnée au client, au masque de réseau, etc.
# [Format] dhcp-range=tag:nom d'hôte,Démarrer IP,IP de fin(,Masque net(,Adresse de diffusion(,Durée du bail)))
#dhcp-range=tag:hogeHost,192.168.172.32,192.168.63,255.255.255.0
#Vous devez également spécifier la passerelle par défaut
# [Format] dhcp-option=tag:nom d'hôte,option:router,adresse de la passerelle
#dhcp-option=tag:hogeHost,option:router,192.168.172.254
#S'il y a un autre serveur DHCP dans le sous-réseau qui vous donnera une adresse IP
# ------------------
#Agir en tant que proxy DHCP. Dans le cas de Proxy, le format est modifié car la plage donnée est uniquement l'adresse IP que vous possédez.
# [Format] dhcp-range=tag:nom d'hôte,IP hôte,proxy
dhcp-range=tag:hogeHost,192.168.172.16,proxy
#Il semble qu'il soit préférable de retarder la réponse DHCP d'une seconde pour éviter l'échec du démarrage dû à un bogue dans PXE côté client.
dhcp-reply-delay=2
#Journal sur DHCP
log-dhcp
La personne qui active les fonctions tftp et dhcp est la personne qui veut la fonction PXE, il y a donc un élément de réglage dédié pour une telle personne. Le paramètre pour Raspai est un état «magique» où une seule ligne est requise, mais si vous souhaitez utiliser la fonction PXE sur un ordinateur général autre que Raspai, veuillez vérifier les détails en fonction du fichier exemple. Notez que le serveur PXE de dnsmasq, qui n'a pas cette seule ligne, sera ignoré par le chargeur de démarrage Raspeye (bootcode.bin), c'est donc un élément obligatoire.
# /etc/dnsmasq.conf(partie)
#Code de démarrage Rasppie.Une ligne requise pour que bin soit reconnu comme un serveur tftp
# ("Raspberry Pi Boot"La chaîne de caractères ne peut pas être modifiée)
# pxe-service=tag:Nom du serveur PXE,0,"Raspberry Pi Boot"
pxe-service=tag:hogeHost,0,"Raspberry Pi Boot"
De là, vous ajouterez une entrée pour chaque tarte à la râpe. Découvrez l'adresse MAC du Raspeye que vous possédez et ajoutez des entrées ligne par ligne.
/etc/dnqmasq.conf(partie,L'adresse MAC est une valeur appropriée)
#Paramètres lorsqu'il n'y a pas d'autre serveur DHCP
# (Attribuez une adresse IP fixe à chaque adresse MAC)
# --------------
# [Format] dhcp-host=Adresse MAC de Raspeye,set:nom d'hôte,Adresse IP à donner,infinite
# Raspi2
#dhcp-host=b8:27:eb:GG:HH:II,set:hogeHost,192.168.172.32,infinite
# Raspi3
#dhcp-host=b8:27:eb:XX:YY:ZZ,set:hogeHost,192.168.172.33,infinite
# Raspi4
#dhcp-host=dc:a6:32:PP:QQ:RR,set:hogeHost,192.168.172.34,infinite
#Paramètres des paramètres DHCP du proxy
# -----
# [Format] dhcp-host=Adresse MAC de Raspeye,set:nom d'hôte
# Raspi2
dhcp-host=b8:27:eb:GG:HH:II,set:hogeHost
# Raspi3
dhcp-host=b8:27:eb:XX:YY:ZZ,set:hogeHost
# Raspi4
dhcp-host=dc:a6:32:PP:QQ:RR,set:hogeHost
Après avoir ajouté des entrées, créez un sous-répertoire avec un nom qui change le deux-points de l'adresse MAC en trait d'union sous le répertoire de référence spécifié lors de la définition des éléments liés à tftp afin qu'une erreur ne se produise pas lorsque dnsmasq est démarré par le test. Faire. (En production, ce sera un lien symbolique vers le dossier / boot du système d'exploitation client)
# mkdir /srv/tftp/b8-27-eb-GG-HH-II
# mkdir /srv/tftp/b8-27-eb-XX-YY-ZZ
# mkdir /srv/tftp/dc-a6-32-PP-QQ-RR
Ceci termine les paramètres de dnsmasq.
Effectuer une vérification de syntaxe sur le fichier dnsmasq.conf terminé
# sudo dnsmasq --test
dnsmasq: syntax check OK.
#
C'est tout pour cette fois. La prochaine fois construira un serveur NFS et importera manuellement le système d'exploitation pour les clients.
Recommended Posts