web-dev-qa-db-fra.com

Comment appeler dhclient sous 12.04

Dans mon installation 12.04 Precise, lorsque je démarre le système ou que je branche un câble Ethernet, dhclient ne s'exécute pas automatiquement sur ma connexion câblée eth0. Je n'ai pas de démon dhclient en cours d'exécution. Lorsque j'exécute manuellement dhclient, il parvient à extraire une adresse et à configurer eth0 et la table de routage. Cependant, il génère les éléments suivants:

jdoe@example:~$ Sudo dhclient eth0
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd

ce qui indique que c'est une chose gérée parvenue. Il n'y a pas de script de démarrage dans/etc/init/pour dhclient.

Je suis en cours d'exécution isc-dhcp-client version 4.1.ESV-R4-0ubuntu5.1 , la version stable actuelle.

  • Dhclient doit-il fonctionner en permanence en tant que démon sur une installation de bureau 12.04 standard?
  • Est-ce que dhclient est supposé être lancé au démarrage de la machine via Upstart comme le message curieux que je reçois lors de l'exécution de dhclient?
  • Devrais-je avoir un de ces paquets ifplugd ou netplug pour lancer dhclient lorsqu'un câble est branché sur eth0?
  • Dhclient est-il instancié par NetworkManager et ne fonctionne peut-être pas à tout moment?
  • Pour une installation standard d'Ubuntu 12.04, NetworkManager devrait-il avoir quelque chose de répertorié dans l'onglet "Câblé" de la boîte de dialogue Connexions réseau? [ exemple, capture d'écran ] J'ai créé un profil de connexion Wired et l'ai laissé vide. Aucun des deux n'affecte l'exécution de dhclient.

Les autres symptômes que je ressens pour le contexte sont:

  • NetworkManager ne gère pas correctement les connexions filaires et sans fil, il utilise simplement le réseau sans fil.
  • NetworkManager ne connecte pas le VPN que j'ai configuré et essaie parfois de l'utiliser, via le réseau câblé, mais uniquement via le réseau sans fil.

@roadmr avait demandé le contenu de/etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
#NetworkManager#iface eth0 inet dhcp
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto
3
gene_wood

Lorsque vous mettez le système sous tension, la première chose qui devrait signaler l'interface Ethernet est le noyau. Sur la base de l'ID PCI, le noyau essaiera de charger un pilote approprié pour la carte.

Dans votre fichier /var/log/syslog, vous devriez voir quelque chose comme ceci:

Jun 21 09:54:59 snowflake kernel: [ 2600.056067] sky2 0000:03:00.0: eth0: Link is up at 1000 Mbps, full duplex, flow control rx
Jun 21 09:54:59 snowflake kernel: [ 2600.056731] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Jun 21 09:54:59 snowflake NetworkManager[1059]: <info> (eth0): carrier now ON (device state 20)
Jun 21 09:54:59 snowflake NetworkManager[1059]: <info> (eth0): device state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Jun 21 09:54:59 snowflake NetworkManager[1059]: <info> Auto-activating connection 'Wired connection 1'.

Cela vous indique que le noyau informe NetworkManager du périphérique. Ce que je pense qui se passe (en spéculant juste ici), c'est que le noyau informe udev, qui à son tour informe NetworkManager (qui peut être enregistré pour recevoir des événements udev), puis NetworkManager gère le reste de la configuration.

Maintenant, NetworkManager refusera de gérer toute interface déclarée dans /etc/network/interfaces. En effet, si vous l'avez configuré manuellement dans ce fichier, vous souhaitez le gérer vous-même.

Donc, un moyen d’amener NetworkManager à gérer votre interface consiste à supprimer les entrées de /etc/network/interfaces. C'est pourquoi je vous ai demandé d'ajouter ces données afin que nous puissions voir si c'est ce qui se passe et peut-être vous conseiller davantage. Bien entendu, avec la configuration appropriée même dans /etc/network/interfaces, l'interface devrait bien fonctionner même sans NetworkManager et sans que vous ayez à le faire manuellement à chaque fois. Néanmoins, l’endroit pour regarder ce qui peut se passer est ce fichier :)

1
roadmr

Cela a été causé par le gestionnaire de réseau. Mon fichier /etc/NetworkManager.conf ressemblait à ceci:

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

Ce fichier de configuration a été défini comme ceci lors de la construction de la machine (il peut s'agir d'un bogue). Du fait que "managed" était défini sur false, NetworkManager n’initialisait pas le dhclient pour l’interface et ne considérait pas la connexion filaire comme une véritable connexion. Par conséquent, il n’initierait pas non plus le VPN.

J'ai changé "géré" en "vrai" et redémarré le système. Cela fonctionne comme je l'espère maintenant, lance dhclient, VPN, etc.

Et pour répondre à certaines de mes propres questions:

  • Voici à quoi devrait ressembler l’onglet Connexion filaire d’une boîte de dialogue Connexions réseau NetworkManager standard: http://i.imgur.com/TgUs8.png
  • dhclient est lancé par NetworkManager puis reste actif tant que la connexion est établie
1
gene_wood

Dans le coin supérieur droit, cliquez sur l'icône de connexion réseau, choisissez Modifier les connexions> Sans fil (onglet)> Mettez votre connexion en surbrillance> Cliquez sur le bouton Éditer> Paramètres IPv4 (onglet). Vérifiez ce qui est affiché comme méthode: s'il lit "partagé avec d'autres ordinateurs" utilisez la flèche vers le bas de la boîte pour sélectionner "DHCP automatique", puis redémarrez le réseau sans fil fonctionnera sans avoir à exécuter manuellement dhclient

0
user208352