Ich baue ein kleines privates Netzwerk innerhalb meines Universitätsnetzwerks auf. Ich habe eine Centos 6-Box ( Sonne ) zwischen meinem privaten Netzwerk und dem WAN der Universität. eth0 on the sun ist über einen netgear smart switch mit dem WAN und eth1 mit meinem privaten Netzwerk verbunden. sun fungiert als Router für das private Netzwerk und leitet den Datenverkehr von eth1 nach eth0 mithilfe von NAT weiter, das mit iptables konfiguriert wurde. Den Clients im privaten Netzwerk (von denen es gerade Quecksilber gibt ) werden über dnsmasq, das auf der Sonne läuft, eine IP, ein Gateway usw. und ein Hostname zugewiesen . dnsmasq ist so konfiguriert, dass eine bestimmte IP und ein bestimmter Hostname an die MAC-Adresse (n) des / der Clients gesendet werden.
Ich habe hart codiert die Host - Namen / IP - Adressen in /etc/hosts
auf Sonne nur:
# 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
Momentan wird die IP-Adresse von eth0 (WAN-Ausrichtung) über DHCP zugewiesen ( sun eth0 wird unabhängig davon immer dieselbe IP zugewiesen. So macht die Universität die Dinge, aber ich bin dabei, dies zu ändern, um dies zu ermöglichen mir eine statische IP zuzuweisen). Meine /etc/resolv.conf
auf Sonne ist:
; generated by /sbin/dhclient-script
search biol.uregina.ca
nameserver 142.3.102.202
nameserver 142.3.100.15
Dies scheint beim Neustart überschrieben zu werden, sodass ich Folgendes habe /etc/dnsmasq-resolv.conf
search beowulf.iecs biol.uregina.ca
nameserver 127.0.0.1
nameserver 8.8.8.8
und haben dnsmasq angewiesen, es anstelle von zu verwenden /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
Meistens funktioniert dieses Setup. Das Problem ich habe (und ich bin nicht sicher , ist es ein großer ein, aber ...) ist , dass nslookup
und dig
nicht beide zu lösen Namen für Sonne und Quecksilber , es sei denn ich diese Befehle , die DNS - Server zu Abfrage informieren:
# 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
Die gleiche Leistung wird für Quecksilber anstelle von ** Sonne * angegeben. Repräsentative dig
Ausgabe ist:
# 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
und funktioniert nicht, wenn ich den zu verwendenden Nameserver nicht spezifiziere:
# 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
Im letzten Beispiel oben ( dig
) SERVER: 142.3.102.202#53(142.3.102.202)
ist dies der erste DNS-Server in. /etc/resolv.conf
Standardmäßig verwendet sun diesen Nameserver anstelle von dnsmasq, das ich aufgrund der Einstellungen in erwartet hätte /etc/dnsmasq.conf
.
Also, ist das ein Problem? Ich kann Sonne und Quecksilber von der Sonne aus anpingen und mich mit SSH mit Quecksilber von der Sonne verbinden .
Wenn dies ein Problem ist (oder auch nicht), gibt es eine Möglichkeit, sun zu konfigurieren und darauf dnsmasq
auszuführen, um die privaten Hostnamen automatisch aufzulösen?
/etc/resolv.conf
, weiß sun nichts davon und verwendet es weiterhin. Dies /etc/resolv.conf
wird überschrieben, dhclient-script
wenn es nach einer IP-Adresse vom WAN-DHCP-Server fragt. FWIW, die privaten DNS-Informationen werden von sun (192.168.42.1) bereitgestellt, aber sun weiß dies nicht aufgrund dessen, was in/etc/resolv.conf