Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/11/2012, à 19:13

Roguntu

Trouver son serveur DNS

Salut les pinguins,
existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?
C'est pour afficher dans conky, et j'aimerais avoir un fichier conky.conf qui soit le plus universel possible.

SVP pas de
cat /etc/resolv.conf
ni de dig xxx.com
car les deux retournent 127.0.1.1 si un serveur dns local est installé
Avec wireshark je vois que le système utilise le dns qui lui est attribué par le DHCP.


dnsmasq est aparrament installé sur mon système, c'est pourquoi ces deux commandes retournent 127.0.1.1

# ps aux | grep dns | grep -v grep
nobody    1831  0.0  0.0  33072  1556 ?        S    17:20   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
 # dig xxx.com

; <<>> DiG 9.8.1-P1 <<>> xxx.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5162
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;xxx.com.			IN	A

;; ANSWER SECTION:
xxx.com.		3600	IN	A	67.23.112.226

;; AUTHORITY SECTION:
xxx.com.		452	IN	NS	ns2.xxx.com.
xxx.com.		452	IN	NS	ns1.xxx.com.

;; Query time: 197 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Nov 29 19:08:13 2012
;; MSG SIZE  rcvd: 77

Hors ligne

#2 Le 29/11/2012, à 20:14

Haleth

Re : Trouver son serveur DNS

SVP pas de
cat /etc/resolv.conf
ni de dig xxx.com
car les deux retournent 127.0.1.1 si un serveur dns local est installé

Ben ouais, c'est moche, mais ca reste ton DNS.

Ton serveur DNS est 127.0.1.1, c'est tout.


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#3 Le 29/11/2012, à 20:24

tiramiseb

Re : Trouver son serveur DNS

existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?

Pour cette question-là, en effet je rejoins la réponse d'Haleth.


Si tu veux rester cantonné à Ubuntu et ne pas faire universel, j'ai un peu fouillé je ne trouve pas trop comment avoir ça facilement.

Avec la commande suivante (attention c'est hyper goret) tu obtiens le fichier dans lequel il y a le bail DHCP en cours de validité, dans lequel tu as l'info en question, mais il faut encore piocher la bonne info ; il peut y avoir plusieurs entrées de plusieurs baux dans le fichier, il faut prendre le plus récent.

ps auxww | grep -- "-lf .*\.lease" | grep -v grep | grep -v sed | sed 's{^.*-lf \(.*\.lease\).*{\1{'

Peut-être y a-t-il plus simple, je n'ai pas (encore) trouvé...

Dernière modification par tiramiseb (Le 29/11/2012, à 20:25)

Hors ligne

#4 Le 29/11/2012, à 20:34

tiramiseb

Re : Trouver son serveur DNS

Pour Ubuntu, voili voilou...

nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'

Mais attention, ça ne fonctionne QUE sur les systèmes qui utilisent NetworkManager.


Pour quelque chose d'à peu près universel mais sans aucune certitude :

resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2)
echo $resolv | grep -q ^127\.0
if [ $? -eq 0 ]
then
  nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'
else
  echo $resolv
fi

Hors ligne

#5 Le 29/11/2012, à 20:42

Haleth

Re : Trouver son serveur DNS

tiramiseb a écrit :

Pour quelque chose d'à peu près universel mais sans aucune certitude :

resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2)
echo $resolv | grep -q ^127\.0
if [ $? -eq 0 ]
then
  nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'
else
  echo $resolv
fi

Avec la même restriction; utilisé NM

Pour un truc universel, y'a une commande qui est bien:

cat /etc/resolv.conf

Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#6 Le 29/11/2012, à 20:49

tiramiseb

Re : Trouver son serveur DNS

Haleth a écrit :

Avec la même restriction; utilisé NM

Gné ? Ben non justement, ce script retourne l'adresse dans resolv.conf si celle-ci n'est pas en 127.0.x.x, donc c'est plus universel que ce que tu dis...


Haleth a écrit :

Pour un truc universel, y'a une commande qui est bien:

cat /etc/resolv.conf

Sauf que ce n'est pas ce que Roguntu demande.

Là tu lui dis "eh bien tu vois que tu interroges 127.0.1.1 et basta t'as pas à en savoir plus".
S'il veut connaître le serveur DNS que sa machine interroge, il n'a pas le droit ? Il doit désinstaller Network Manager et gérer sa config réseau a la mano ?

Hors ligne

#7 Le 29/11/2012, à 20:54

Haleth

Re : Trouver son serveur DNS

tiramiseb a écrit :
Haleth a écrit :

Avec la même restriction; utilisé NM

Gné ? Ben non justement, ce script retourne l'adresse dans resolv.conf si celle-ci n'est pas en 127.0.x.x, donc c'est plus universel que ce que tu dis...

Donc inadapté si t'as un DNS local


Sauf que ce n'est pas ce que Roguntu demande.

Là tu lui dis "eh bien tu vois que tu interroges 127.0.1.1 et basta t'as pas à en savoir plus".
S'il veut connaître le serveur DNS que sa machine interroge, il n'a pas le droit ?

Ouais, sauf que ton truc est intrinsequement lié au fonctionnement du bousin d'ubuntu

Il doit désinstaller Network Manager et gérer sa config réseau a la mano ?

Si t'es en ethernet (je te conseille d'y être .. pas en wifi..), t'as tout intérêt à virer NM et tout le foutoir qui va avec


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#8 Le 29/11/2012, à 21:00

tiramiseb

Re : Trouver son serveur DNS

Haleth a écrit :

Ouais, sauf que ton truc est intrinsequement lié au fonctionnement du bousin d'ubuntu

Intrinsèquement lié au fonctionnement de Network Manager, qui propose les mêmes commandes sur d'autres distributions qu'Ubuntu.

Haleth a écrit :

Si t'es en ethernet [...], t'as tout intérêt à virer NM et tout le foutoir qui va avec

Sauf que "NM et tout le foutoir qui va avec" ça me facilite notamment vachement la vie pour me connecter aux VPN de mes clients.

Je ne comprend pas pourquoi cette haine envers Network Manager, pour ma part j'en suis très content.

Hors ligne

#9 Le 29/11/2012, à 21:07

Haleth

Re : Trouver son serveur DNS

Ben, parcque parfois il craque (prendre 1 core pour gérer un réseau .. dafuq ?!), parcqu'il a parfois des comportements irrationnnels, parcqu'il écrase la conf sans aucune pitié..

Bref


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#10 Le 29/11/2012, à 21:09

tiramiseb

Re : Trouver son serveur DNS

Haleth a écrit :

(prendre 1 core pour gérer un réseau .. dafuq ?!)

jamais vu

Haleth a écrit :

parcqu'il a parfois des comportements irrationnnels,

jamais vu

Haleth a écrit :

parcqu'il écrase la conf sans aucune pitié..

Ça c'est son job...

Hors ligne

#11 Le 29/11/2012, à 21:25

Roguntu

Re : Trouver son serveur DNS

Merci pour vos réponses,
je suis d'accord avec vous, en greppant j'ai troué l'IP de mon serveur dns dans dans les fichiers leases dhcp, dans syslog (networkmanager).
mais avec wireshark je vois que mon système utilise l'IP du DNS fournis par mon serveur DHCP. Je crois que dnsmasq n'est pas vraiment un serveur DNS, il se relaie sur le DNS fournis par le DHCP et ne se connecte pas aux TLD, si j'ai tout compris c'est juste un cache.
Je suis assez satisfait du Network-manager que je trouve aussi très pratique, meme s'il a quelques petits défauts. Le but c'est pas de désinstaller quelque chose, ni dnsmasq ou le network-manager. Je recherche une solution moin cat grep awk sur des fichiers log, mais aparement...
WIND0W$ nous bat sur ce point, un simple "ipconfig /all", c'est fou sad  (Faites moi supprimer cette affirmation svp)
Faut que j'utilise

wine ipconfig /all

je plaisante bien sur.



find /var/log -type f -print0 | xargs -0 cat -  | grep 62.65.128.10
Nov 28 20:45:09 mint14-VPCEH1S8E NetworkManager[785]: <info>   nameserver '62.65.128.10'
Nov 28 20:45:10 mint14-VPCEH1S8E dnsmasq[1696]: using nameserver 62.65.128.10#53
Nov 28 21:08:03 mint14-VPCEH1S8E NetworkManager[785]: <info>   nameserver '62.65.128.10'
Nov 28 21:32:49 mint14-VPCEH1S8E NetworkManager[785]: <info>   nameserver '62.65.128.10'
Nov 28 21:58:52 mint14-VPCEH1S8E NetworkManager[785]: <info>   nameserver '62.65.128.10'
Nov 29 17:20:16 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 17:20:17 mint14-VPCEH1S8E dnsmasq[1831]: using nameserver 62.65.128.10#53
Nov 21 18:45:05 mint NetworkManager[1744]: <info>   nameserver '62.65.128.10'
Nov 21 18:45:06 mint dnsmasq[2994]: using nameserver 62.65.128.10#53
Nov 29 17:46:43 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 18:09:04 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 18:09:05 mint14-VPCEH1S8E dnsmasq[1831]: using nameserver 62.65.128.10#53
Nov 29 18:35:02 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 19:02:40 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 19:31:35 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 19:54:38 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 20:22:08 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 20:47:06 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'
Nov 29 21:16:51 mint14-VPCEH1S8E NetworkManager[783]: <info>   nameserver '62.65.128.10'

Si on analyse, on peut suposer que NetworkManager fournit l'IP à dnsmasq, mais ça ne fait pas avancer le schmilblick...

Dernière modification par Roguntu (Le 29/11/2012, à 21:42)

Hors ligne

#12 Le 29/11/2012, à 21:38

tiramiseb

Re : Trouver son serveur DNS

Roguntu a écrit :

Je recherche une solution moin cat grep awk sur des fichiers log

La possibilité que je t'ai donnée ne se base pas sur des fichiers de log ou trucs dans ce genre, mais sur le contenu du fichier "/etc/resolv.conf" et, si nécessaire, le retour de la commande "nmcli". Je pense qu'on ne peut pas faire mieux.

Roguntu a écrit :

WIND0W$ nous bat sur ce point, un simple "ipconfig /all", c'est fou sad

Sous Windows il y a une et une seule manière de faire. Nous on a une infinité d'approches possibles, limitée uniquement par notre imagination. Du coup en effet certaines choses sont plus complexe.
Mais si tu veux remettre des menottes et faire "bêêêêh" alors tu peux retourner sous Windows tongue

Hors ligne

#13 Le 29/11/2012, à 21:58

Roguntu

Re : Trouver son serveur DNS

ton script est bien, mais apparement il n'y a pas de commande "prévue" pour ça.

tiramiseb a écrit :
resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2)
echo $resolv | grep -q ^127\.0
if [ $? -eq 0 ]
then
  nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'
else
  echo $resolv
fi

Hors ligne

#14 Le 29/11/2012, à 22:00

Haleth

Re : Trouver son serveur DNS

Ben, la commande est "cat /etc/resolv.conf"..
Ca te retourne la même info que ton ipconfig /all,
C'est l'adresse que les apps vont utiliser pour résoudre un nom
C'est commun à tout les PC ou presque

...


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#15 Le 29/11/2012, à 22:21

Roguntu

Re : Trouver son serveur DNS

Haleth a écrit :

Ben, la commande est "cat /etc/resolv.conf"..
Ca te retourne la même info que ton ipconfig /all,
C'est l'adresse que les apps vont utiliser pour résoudre un nom
C'est commun à tout les PC ou presque

...

Je suis pas sur que tu as tout compris...

Hors ligne

#16 Le 29/11/2012, à 22:29

Haleth

Re : Trouver son serveur DNS

Ben si j'ai très bien compris.
Ubuntu intègre un serveur DNS local par défaut.

Donc toi, t'as deux trucs:
- Soit tu cherches à savoir la configuration de ce serveur, auquel cas tu te fixes à ubuntu (ou tu fais des scripts plus ou moins craignos) avec du plaisir à maintenir (parcque ca change à chaque version ou presque
- Soit tu cherches le serveur DNS, de manière universelle.

J'avais cru lire dans ton premier message, ce qui me pousse vers la 2eme solution:

existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?

Visiblement, j'ai mal lu..


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#17 Le 30/11/2012, à 08:35

serged

Re : Trouver son serveur DNS

Trouvé des explications ici. La bonne réponse est :

nm-tool|grep "DNS:"

(nm-tool est dans le paquet network-manager)

$ nm-tool|grep "DNS:"
    DNS:             192.168.1.1
    DNS:             2a02:8420:6d76:f400::1

(ici la box sert de DNS)

Dernière modification par serged (Le 30/11/2012, à 08:36)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#18 Le 30/11/2012, à 08:45

tiramiseb

Re : Trouver son serveur DNS

serged a écrit :

Trouvé des explications ici. La bonne réponse est :

nm-tool|grep "DNS:"

Euh ce n'est pas universel.
C'est tout aussi limité que la commande suivante, que j'ai citée dans le message #4 (*) :

nmcli dev list | grep ^IP4.DNS

Il faut aussi l'enrober dans un script (cf, encore une fois, le message #4), pour avoir un comportement à peu près universel ("à peu près" car cela ne fonctionnera que si le serveur DNS n'est en effet pas l'hôte local et uniquement si son adresse est dans /etc/resolv.conf ou gérée par Network Manager).


(*) ... c'est à se demander si les gens lisent les messages précédents !

Hors ligne