Je crée un petit réseau privé au sein de mon réseau universitaire. J'ai une boîte Centos 6 (Sun) Assis entre mon réseau privé et l'université WAN. eth0 sur le Sun est connecté au WAN et eth1 à mon réseau privé via un interrupteur intelligent Netgear. Sun agit comme un routeur pour Le réseau privé, transmet le trafic d'ETH1 à Eth0 à l'aide NAT configuré à l'aide d'iptables. Les clients du réseau privé (dont il y en a pour le moment, Mercury) Ont assigné une adresse IP, une passerelle, etc. et un nom d'hôte via Dnsmasq fonctionnant sur le Sun. Dnsmasq est configuré pour envoyer une adresse IP et un nom d'hôte spécifique à l'adresse MAC (s) du ou des clients.
J'ai le codage dur le nom d'hôte/ips dans /etc/hosts
Sur Sun seulement:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.42.1 Sun sun.beowulf.iecs
192.168.42.2 mercury mercury.beowulf.iecs
Pour le moment, l'adresse IP de l'ETH0 (WAN Face) est attribuée via DHCP (-Sun Eth0 est attribué la même adresse IP tout le temps indépendamment; voici comment l'université fait des choses mais je suis dans le processus d'obtention de cela modifié pour me permettre d'attribuer une adresse IP statique). Mon /etc/resolv.conf
Sur Sun est:
; generated by /sbin/dhclient-script
search biol.uregina.ca
nameserver 142.3.102.202
nameserver 142.3.100.15
qui semble être écrasé lorsque je redémarre alors j'ai ce qui suit /etc/dnsmasq-resolv.conf
search beowulf.iecs biol.uregina.ca
nameserver 127.0.0.1
nameserver 8.8.8.8
et ont demandé à DNSMASQ de l'utiliser au lieu de /etc/resolv.conf
# Change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
resolv-file=/etc/dnsmasq-resolv.conf
# By default, dnsmasq will send queries to any of the upstream
# servers it knows about and tries to favour servers to are known
# to be up. Uncommenting this forces dnsmasq to try each query
# with each server strictly in the order they appear in
# /etc/resolv.conf
strict-order
Surtout cette configuration fonctionne. Le problème que j'ai (et je ne suis pas sûr que ce soit un majeur, mais ...) est-ce que nslookup
et Dig
_ Les deux échecent de résoudre les noms pour Sun = et mercure sauf si , j'informe ces commandes que DNS Server doit interroger:
# nslookup Sun.beowulf.iecs Sun.beowulf.iecs
Server: Sun.beowulf.iecs
Address: 192.168.42.1#53
Name: Sun.beowulf.iecs
Address: 192.168.42.1
# nslookup Sun sun.beowulf.iecs
Server: Sun.beowulf.iecs
Address: 192.168.42.1#53
Name: Sun
Address: 192.168.42.1
# nslookup Sun
Server: 142.3.102.202
Address: 142.3.102.202#53
** server can't find Sun: NXDOMAIN
# nslookup Sun.beowulf.iecs
Server: 142.3.102.202
Address: 142.3.102.202#53
** server can't find Sun.beowulf.iecs: NXDOMAIN
La même sortie est donnée pour Mercury au lieu de ** Sun *. Représentant Dig
Sortie est:
# Dig @192.168.42.1 mercury.beowulf.iecs
; <<>> Dig 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @192.168.42.1 mercury.beowulf.iecs
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65090
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mercury.beowulf.iecs. IN A
;; ANSWER SECTION:
mercury.beowulf.iecs. 0 IN A 192.168.42.2
;; Query time: 0 msec
;; SERVER: 192.168.42.1#53(192.168.42.1)
;; WHEN: Wed Jun 25 12:05:31 2014
;; MSG SIZE rcvd: 54
et ne fonctionne pas lorsque je ne spécifie pas le serveur de noms à utiliser:
# Dig mercury.beowulf.iecs
; <<>> Dig 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> mercury.beowulf.iecs
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 29153
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;mercury.beowulf.iecs. IN A
;; AUTHORITY SECTION:
. 7988 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2014062500 1800 900 604800 86400
;; Query time: 0 msec
;; SERVER: 142.3.102.202#53(142.3.102.202)
;; WHEN: Wed Jun 25 12:05:37 2014
;; MSG SIZE rcvd: 113
Dans le dernier exemple ci-dessus (Dig
), la fonction SERVER: 142.3.102.202#53(142.3.102.202)
est le premier serveur DNS dans /etc/resolv.conf
SO par défaut Sun semble utiliser ce serveur de noms Au lieu de DNSMASQ, je m'attendais à ce qu'il utiliserait à cause des paramètres de /etc/dnsmasq.conf
.
Alors, est-ce un problème? Je peux ping Sun et mercure de -Sun et se connecter à Mercury de Sun utiliser ssh.
S'il s'agit d'un problème (ou même si ce n'est pas), existe-t-il un moyen de configurer Sun et dnsmasq
exécuté dessus pour résoudre automatiquement les noms d'hôte privés?
Dig
( Informations de domaine Groperer) ==) et nslookup
( Demander des serveurs de noms Internet de manière interactive) sont des outils qui interrogent les serveurs de noms. À moins qu'un serveur de noms spécifique soit spécifié en tant qu'argument de commande de commande, ils interrogeront le ou les serveurs de noms trouvés dans /etc/resolv.conf. Ils ne considèrent tout simplement pas des sources alternatives d'informations d'hôte telles que le /etc/hosts
Fichier ou autres sources spécifiées dans /etc/nsswitch.conf
.
Si vous souhaitez forcer toutes les requêtes DNS via DNSMASQ sur votre Sun hôte, le /etc/resolv.conf
Il devrait indiquer Dnsmasq, c'est-à-dire que ça devrait ressembler à:
#/etc/resolv.conf on Sun
nameserver 127.0.0.1
Pour empêcher ce fichier d'être écrasé lorsque vous redémarrez l'interface de réseau Eth0 Edit /etc/sysconfig/network-scripts/ifcfg-eth0
et ajouter le optionPEERDNS=no
Deuxièmement dans /etc/dnsmasq-resolv.conf
Vous essayez de configurer DNSMASQ pour vous utiliser comme le serveur de noms en amont nameserver 127.0.0.1
... Ce fichier devrait ressembler à:
#/etc/dnsmasq-resolv.conf
search beowulf.iecs biol.uregina.ca
nameserver 8.8.8.8
si vous souhaitez utiliser le serveur de noms de Google. Il serait peut-être une bonne idée d'utiliser les serveurs de noms de l'université 142.3.102.202 et 142.3.100.15, car il n'est pas rare d'avoir certaines ressources uniquement visibles du réseau de campus.
Si votre Mercury L'hôte est configuré par DHCP, il doit obtenir sa configuration de DNSMASQ et de la /etc/resolv.conf
Il pointe du serveur de noms DNSMASQ sur 192.168.42.1
Les 142.3.102.202 et 142.3.100.15 ne connaissent rien de votre réseau privé local afin qu'ils rentrent correctement NXDOMAIN . Ce sont également les serveurs de noms par défaut du système afin de ne pas spécifier de serveur de noms qu'ils seront utilisés.
Vous devrez écraser le contenu de /etc/resolv.conf
et configurer les directives du serveur de noms pour pointer vers votre serveur de noms DNSMASQ local qui doit être configuré pour transférer les requêtes qu'elle ne peut pas répondre en amont.