J'ai une installation minimale de Centos 7.
J'ai désactivé le gestionnaire de réseau comme je souhaite configurer mon réseau la méthode "Old School".
systemctl stop NetworkManager
systemctl disable NetworkManager
chkconfig network on
service network restart
Mon réseau de configuration (/ etc/sysconfig/scripts de réseau/ifcfg-ens4) ressemble à ceci:
DEVICE="ens4"
TYPE="Ethernet"
NOZEROCONF="yes"
PERSISTENT_DHCLIENT="1"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens4"
ONBOOT="yes"
NM_CONTROLLED="no"
Mon fichier de location DHCP ressemble à ceci:
lease {
interface "ens4";
fixed-address 144.76.190.238;
option subnet-mask 255.255.255.255;
option routers 144.76.190.224;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 8.8.8.8,8.8.4.4;
option dhcp-server-identifier 144.76.190.224;
option Host-name "hello.example.com";
option domain-name "example.com";
renew 2 2014/10/21 05:44:47;
rebind 2 2014/10/21 15:04:03;
expire 2 2014/10/21 18:04:03;
}
Maintenant, mon problème est que le champ "routeurs" du DHCP semble être ignoré par Centos 7. IP, Netmask et NettName est en cours de réglage correctement, mais mon itinéraire par défaut n'est pas défini (vide).
Comme vous pouvez le constater, j'utilise Netmask 255.255.255.255 afin que la passerelle IP est "à l'extérieur" de mon réseau. Une route supplémentaire est nécessaire. Si je les exécute manuellement:
route add -Host 144.76.190.224 dev ens4
route add default gw 144.76.190.224
Alors tout fonctionne bien:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 144.76.190.224 0.0.0.0 UG 0 0 0 ens4
144.76.190.224 0.0.0.0 255.255.255.255 UH 0 0 0 ens4
Toutes les autres distributions Linux que j'ai testées, y compris Centos 6, fonctionnent bien et définit ces 2 itinéraires automatiquement à partir du DHCP.
Voici donc ma question; Pourquoi ne pas être défini automatiquement dans Centos 7? Est-ce que quelque chose change et je dois ajouter des drapeaux supplémentaires au client DHCP pour qu'il fonctionne?
Il semble que Centos 6 utilise Dhclient version 4.1.1-P1 et Centos 7 utilise 4.2.5. Peut-être qu'ils ont changé quelque chose entre ces versions?
Mise à jour 1 :
J'ai examiné les notes de publication de Dhclient et trouva ceci pour 4.0.0:
"Le script Dhclient a été mis à jour pour créer un itinéraire hôte pour la passerelle par défaut si le masque de sous-réseau fourni pour une adresse IPv4 était A/32. Cela permet au client de travailler dans des environnements réseau" captifs ", où l'opérateur ne veut pas que les clients discraser directement ".
Cela aurait donc dû fonctionner depuis longtemps. Peut-être que Centos 7 l'a supprimé du "script dhclient"?
Mise à jour 2 :
J'ai copié le fichier "/ sbin/dhclient-script" d'une installation Centos 6 sur le serveur Centos 7. Maintenant tout fonctionne bien. Je vais étudier quels changements ils ont fait, mais il semble qu'ils ont introduit un bogue dans Centos 7.
Mise à jour 3 :
J'ai compris le problème. Ils ont ajouté un chèque de ping (stupide) dans la nouvelle version de/sbin/dhclient-script qui essaie de ping la passerelle avant de l'ajouter. Alors que je bloque des pings dans mon pare-feu sur le serveur DHCP, il n'a pas répondu et que le script DHClient n'a ajouté aucun itinéraire par défaut.
Assurez-vous que le serveur DHCP répond à Ping. Sinon, le script/sbin/dhclient-script ne définira pas correctement la voie par défaut.
Ce "chèque" supplémentaire semble avoir été ajouté aux versions ultérieures de Dhclient ou spécialement ajoutées dans Centos 7. Le chèque de ping n'existe pas dans les versions Centos antérieures à 7.
Peut-être que vous avez défini une passerelle par défaut dans /etc/sysconfig/network/routes
déjà?
Sinon, vous pouvez au moins configurer que ce que vous acheminez manuellement est effectué automatiquement dans ce fichier:
144.76.190.224 - 255.255.255.255 ens4
default 144.76.190.224 - ens4
J'avais ce problème simplement sur une installation propre d'un invité Centos 7 VMware et cela m'a été dû à la configuration d'une réservation DHCP avant l'invité dans VMware Workstation à l'adresse suivante:
C:\programdata\vmware\vmnetdhcp.conf
Donc, le correctif est de commenter ou de supprimer les deux lignes dans le fichier CONF se rapportant au serveur CENTOS:
Host VMnet8 {
hardware ethernet 00:40:56:C0:00:08;
fixed-address 192.168.80.1;
#hardware ethernet 00:0C:29:19:C7:7A; <--Comment or remove this CentOS line
#fixed-address 192.168.80.111; <--Comment or remove this CentOS line
option domain-name-servers 0.0.0.0;
option domain-name "";
option routers 0.0.0.0;
}
Enregistrez le fichier (en tant qu'administrateur), redémarrez le service VMware DHCP sur l'hôte, puis effectuez un network service restart
Sur Centos. Vous aurez maintenant une passerelle pour sortir sur Internet. Cependant, vous devez également avoir besoin de yum update
Pour corriger la réservation DHCP Aucun problème de passerelle. Sinon, si vous ajoutez la réservation en arrière avant cela, il n'aura aucune passerelle sur le prochain redémarrage. Une fois que les mises à jour sont effectuées, la question doit être résolue. Par conséquent, ajoutez les lignes au-dessus du fichier CONF et redémarrez le service VMware DHCP afin que votre réservation soit de retour en place et que vous êtes défini.
Ce n'est que le cas sur la configuration initiale de Centos. Donc, c'est juste douloureux que la fois après une installation propre. Je ferai des instantanés VMware avancer, malgré l'inconvénient de cela.
Pour l'enregistrement, mon réseau de réseau est activé. Si quelqu'un sait un moyen permanent d'éviter cela après une installation propre, veuillez partager. Cela pourrait être corrigé dans une mise à jour ultérieure de Centos car yum update
La corrige.
C'est une sorte de situation spécifique, mais pas une configuration rare. Je posté surtout cette réponse parce que je serai probablement de retour ici dans le futur essayant de me souvenir de ce que j'ai fait. Mais, j'ai tué quelques heures à ce sujet, j'espère donc que cela aide également quelqu'un d'autre.
J'ai eu cette question. Je déployais un Centos 7 VM à partir d'un modèle VMware
La réponse concernant "/ etc/sysconfig/réseau/itinéraires" m'a aidé en fournissant une grande idée!
Le "routeur d'option" bien que défini dans le /var/lib/dhclient/dhclient--Eth0.Lease n'a pas pris effet lorsque j'ai examiné la sortie de la commande de route et que je ne pouvais atteindre que des nœuds dans mon sous-réseau.
J'ai pu définir manuellement une passerelle dans mon /etc/sysconfig/network-scripts/ifcfg-eth0.cfg et cela fonctionnerait bien
En fin de compte, j'ai trouvé un fichier appelé/etc/sysconfig/réseau contenant une passerelle par défaut
Quand j'ai commenté cette passerelle et redémarré mon service de réseau, tout était bien