web-dev-qa-db-fra.com

Ubuntu ne peut pas cingler le nom d’hôte mais peut cingler IP?

eh bien, je viens d’entrer dans le monde Ubuntu pour l’administration. J'ai trouvé des discussions similaires, sauf que je suis en mesure de cingler mon propre nom d'hôte et mon adresse IP et que Windows peut cingler mon nom d'hôte linux, mais Ubuntu ne peut pas cingler le nom d'hôte Windows.

Problème:

  • J'ai 4 ordinateurs Windows et 1 ordinateur Ubuntu.
  • Mon ordinateur Windows peut effectuer un ping sur un ordinateur Ubuntu par nom d’hôte et par adresse IP. En outre, Net View (Invite cmd) affiche le nom d'hôte de l'ordinateur Ubuntu.
  • L'ordinateur Ubuntu peut uniquement exécuter une commande ping par adresse IP et non par nom d'hôte. J'ai également installé Samba.
  • L'ordinateur Ubuntu peut s'interroger par adresse IP et par nom d'hôte.
  • Je peux utiliser la commande arp et afficher tous les ordinateurs IP sur le réseau, mais seulement par adresse IP.

Comment se fait-il que je puisse uniquement envoyer une requête ping par adresse IP et non par nom d'hôte aux ordinateurs Windows? Mais Ubuntu peut s’envoyer lui-même une adresse IP et un nom d’hôte, et les ordinateurs Windows peuvent également effectuer une commande ping sur Ubuntu?

14
user2805313

Le problème décrit ici peut ne pas être lié au DNS.

Vous devez savoir que Windows peut résoudre le nom d'hôte Windows en adresse IP via d'autres mécanismes que le DNS standard: recherche NetBIOS, WINS, ...

Comme vous l'avez dit, Samba est installé sur votre Ubuntu, c'est probablement ce qui se passe. Sur l’ensemble de votre ordinateur Windows, il est possible, d’emblée, que le nom Windows soit résolu en son adresse IP. Comme Samba est installé sur Ubunut, pour votre PC Windows, ils voient le PC Ubuntu comme un PC Windows et la même résolution est possible.

Vous dites que vous exécutez net view sous Windows et que vous voyez votre PC Ubuntu. Le nom NetBIOS est donc bien publié sur votre réseau et fonctionne donc sous Windows.

Pour obtenir le même comportement sous Ubuntu que sous Windows, vous devez installer et configurer des logiciels supplémentaires. Ce qu'il vous faut, c'est ajouter une bibliothèque de recherche qui permettra à Ubuntu de convertir les noms NetBIOS en IP. Cette bibliothèque est contenue dans le paquetage libnss-winbind .

Comme tous les autres packages Ubuntu, vous l'installez en faisant Sudo apt-get install libnss-winbind. Peut-être que la bibliothèque est déjà installée, vous pouvez vérifier sa présence en faisant dpkg -l|grep libnss-winbind.

Une fois la bibliothèque installée, vous devez l'activer dans le fichier /etc/nsswitch.conf. Ce fichier est le fichier de configuration du NSS ( Name Service Switch ), qui définit à partir de quelles sources Linux est capable de résoudre le nom d’hôte, les noms d’utilisateur, les noms de groupes, etc.
Dans ce fichier, vous avez déjà une ligne commençant par hosts:, qui ressemble probablement à ceci

hosts:          files dns

Cela indique à votre système d'examiner d'abord le fichier /etc/hosts, puis le DNS configuré pour résoudre les noms d'hôte.
Vous devez modifier cette façon:

hosts:          files dns wins

Notez que l'ordre des mots fichiers , dns et gagne sont importants . Tout d'abord, le système vérifiera la résolution du fichier local, puis demandera au serveur DNS et enfin, s'il n'est pas encore trouvé, effectuera une recherche NetBIOS.

Une fois que cela est mis à jour, pour fonctionner correctement, vous devez également exécuter le service winbind . Le paquet qui le contient est une dépendance de libnss-winbind , il a donc été installé en même temps.
Faites service winbind start pour l'activer.

22
Benoit

La conversion de noms d’hôte en IP peut survenir si:

-Vous les déclarez dans le fichier/etc/hosts (non recommandé)

-Vous l'obtenez d'un serveur DNS.

Je dirais que votre problème peut être lié à la configuration de votre interface réseau sans serveur DNS ou à l'utilisation de celui utilisé par Windows. S'ils utilisent la configuration d'interface DHCP, la configuration DNS est le plus souvent incluse et si vous avez un serveur de domaine Windows sur votre réseau, ils l'utilisent probablement comme DNS primaire.

Essayez: 'nslookup some_machine_name' en ligne de commande pour voir ce qui se passe. Il vous dira quel serveur vous utilisez le cas échéant.

HTH

0
Pyrophorus