Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig [2012/08/06 14:28] – [Erstellen] klaus | tachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig [2012/12/19 13:15] (aktuell) – [Konstellationsbeschreibung] klaus |
---|
<code> | <code> |
| |
+-------------------+ +---------------------+ | +-------------------+ +---------------------+ |
| | | | | | | | | |
| MASTER-Server | | SLAVE-Server | | | MASTER-Server | | SLAVE-Server | |
| ============= | | ============ | | | ============= | | ============ | |
| | | | | | | | | |
| Präsenz: | | Präsenz: | | | Präsenz: | | Präsenz: | |
| DMZ | | DMZ, Intranet | | | DMZ | | DMZ, Intranet | |
| | | | | | | | | |
+-------------------+ +---------------------+ | +-------------------+ +---------------------+ |
| | | | | | | | | |
| DMZ-IP-Adresse: | | DMZ-IP-Adresse: | | | DMZ-IP-Adresse: | | DMZ-IP-Adresse: | |
| 192.168.0.20 | -------> Transfer der Zone DMZ <------> Anfrage des Transfers der Zone DMZ <------- | 192.168.0.10 | | | 192.168.0.20 | -------> Transfer der Zone DMZ ------> | 192.168.0.10 | |
| | | | | | | | | |
| DMZ-IP-Adresse: | | intra-IP-Adresse: | | | DMZ-IP-Adresse: | | intra-IP-Adresse: | |
| 192.168.0.20 | -------> Transfer der Zone intra <------> Anfrage des Transfers der Zone intra <------- | 192.168.1.1 | | | 192.168.0.20 | -------> Transfer der Zone intra ------> | 192.168.1.1 | |
| | | | | | | | | |
+-------------------+ +---------------------+ | +-------------------+ +---------------------+ |
| |
</code> | </code> |
* **Slave**-Servers | * **Slave**-Servers |
um nachfolgende Zeilen erweitert werden, damit dem jeweiligen Server der **gleiche TSIG-Schlüssel** bekannt ist und verwendet werden kann (**nur relevanter Ausschnitt**): | um nachfolgende Zeilen erweitert werden, damit dem jeweiligen Server der **gleiche TSIG-Schlüssel** bekannt ist und verwendet werden kann (**nur relevanter Ausschnitt**): |
<code> | <code ini> |
... | ... |
key "intra." { | key "intra." { |
}; | }; |
... | ... |
| </code> |
| |
| ===== Log-Datei des Zonen-Transfers ===== |
| |
| Zur Überprüfung, ob ein **Zonen-Transfer** erfolgreich durchgeführt wurde, kann nachfolgender Befehl genutzt werden, der die Log-Datei |
| * **''/var/named/data/named.run''** |
| auf dem **Slave**-Server, zur Ausgabe auf den Bildschirm bring (**nur relevanter Ausschnitt**): |
| <code> |
| ... |
| 06-Aug-2012 14:21:35.719 general: info: zone tachtler.net/IN/intra: Transfer started. |
| 06-Aug-2012 14:21:35.720 xfer-in: info: transfer of 'tachtler.net/IN/intra' from 192.168.0.20#53: connected using 192.168.1.1#57420 |
| 06-Aug-2012 14:21:35.723 general: warning: zone tachtler.net/IN/intra: main._domainkey.tachtler.net/A: bad owner name (check-names) |
| 06-Aug-2012 14:21:35.723 general: info: zone tachtler.net/IN/intra: transferred serial 2012080502: TSIG 'intra' |
| 06-Aug-2012 14:21:35.724 xfer-in: info: transfer of 'tachtler.net/IN/intra' from 192.168.0.20#53: Transfer completed: 1 messages, 98 records, |
| 2459 bytes, 0.003 secs (819666 bytes/sec) |
| 06-Aug-2012 14:21:35.218 general: info: zone 171.217.88.in-addr.arpa/IN/intra: Transfer started. |
| 06-Aug-2012 14:21:35.219 xfer-in: info: transfer of '171.217.88.in-addr.arpa/IN/intra' from 192.168.0.20#53: connected using 192.168.1.1#58583 |
| 06-Aug-2012 14:21:35.220 general: info: zone 171.217.88.in-addr.arpa/IN/intra: transferred serial 2012080502: TSIG 'intra' |
| 06-Aug-2012 14:21:35.220 xfer-in: info: transfer of '171.217.88.in-addr.arpa/IN/intra' from 192.168.0.20#53: Transfer completed: 1 messages, |
| 6 records, 306 bytes, 0.001 secs (306000 bytes/sec) |
| ... |
| </code> |
| |
| ==== Fehlersuche ==== |
| |
| Falls ein Fehler, wie nachfolgend dargestellt (**nur relevanter Ausschnitt**), |
| <code> |
| ... |
| 06-Aug-2012 13:00:36.510 general: info: zone 171.217.88.in-addr.arpa/IN/intra: refresh: failure trying master 192.168.0.20#53 |
| (source 192.168.1.1#0): tsig indicates error |
| ... |
| </code> |
| in der Log-Datei auftreten sollte und der **Zonen-Transfer**, **nicht stattgefunden hat**, sollten nachfolgende Konfigurationen überprüft werden: |
| - Ist der generierte Schlüssel korrekt erstellt worden? |
| - Ist der **Name** des generierten Schlüssels (hier z.B. **intra.**), auch so in der Konfigurationsdatei konfiguriert? (**Punkt am Ende das Namens?)** |
| - Sind die **Views** korrekt konfiguriert? |
| - z.B. Zone - **ohne** - TSIG, wie z.B. ''localhost'' |
| - <code>match-clients { !key intra. ; "localhost"; };</code> |
| - <code>match-destinations { "localhost"; };</code> |
| - z.B. Zone - **mit** - TSIG, wie z.B. ''intra'' |
| - <code>match-clients { key intra. ; "intra"; };</code> |
| - <code>match-destinations { key intra. ; "intra"; };</code> |
| - **Master**-Server -> <code>server 192.168.1.1 { keys intra; };</code> |
| - **Slave**-Server -> <code>server 192.168.0.20 { keys intra; };</code> |
| |
| ===== Zonen-Transfer über NAT-Firewall ===== |
| |
| Um einen **Zonen-Transfer** über eine Firewall, welche z.B. bei alle ausgehenden Verbindungen, via **NAT** die Absender-IP-Adresse umschreibt (MASQUERADING), sind nachfolgende **iptables**-Regeln |
| * :!: **VOR** :!: |
| der **MASQUERADING**-Regel einzufügen: |
| |
| Um die aktuellen ''iptables''-Regeln **(CHAIN NAT)** erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann: |
| <code> |
| # iptables -t nat -nvL --line-numbers |
| Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) |
| num pkts bytes target prot opt in out source destination |
| |
| Chain POSTROUTING (policy ACCEPT 980 packets, 82233 bytes) |
| num pkts bytes target prot opt in out source destination |
| 1 5224 379K SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:10.0.0.10 |
| |
| Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) |
| num pkts bytes target prot opt in out source destination |
| </code> |
| |
| Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk **(CHAIN NAT)** jeweils ab der **Position 1** hinzu, ohne das der Paketfilter angehalten werden muss: |
| * <code>-A POSTROUTING -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT</code> |
| * <code>-A POSTROUTING -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT</code> |
| * <code>-A OUTPUT -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT</code> |
| * <code>-A OUTPUT -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT</code> |
| |
| und hier die Befehle: |
| <code> |
| # iptables -I POSTROUTING 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT |
| # iptables -I POSTROUTING 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT |
| # iptables -I OUTPUT 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT |
| # iptables -I OUTPUT 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT |
| </code> |
| |
| Ein erneute Abfrage des ''iptables''-Regelwerts **(CHAIN NAT)** , sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann: |
| <code> |
| # iptables -t nat -nvL --line-numbers |
| Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) |
| num pkts bytes target prot opt in out source destination |
| |
| Chain POSTROUTING (policy ACCEPT 980 packets, 82233 bytes) |
| num pkts bytes target prot opt in out source destination |
| 1 36 2160 ACCEPT tcp -- * eth0 192.168.1.1 192.168.0.20 tcp dpt:53 |
| 2 82 10989 ACCEPT udp -- * eth0 192.168.1.1 192.168.0.20 udp dpt:53 |
| 3 5224 379K SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:192.168.0.10 |
| |
| Chain OUTPUT (policy ACCEPT 3598 packets, 294K bytes) |
| num pkts bytes target prot opt in out source destination |
| 1 36 2160 ACCEPT tcp -- * eth0 192.168.1.1 192.168.0.20 tcp dpt:53 |
| 2 82 10989 ACCEPT udp -- * eth0 192.168.1.1 192.168.0.20 udp dpt:53 |
| </code> |
| |
| Die neuen Zeilen sind an **Position 1** und **Postition 2** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**): |
| <code> |
| ... |
| 1 36 2160 ACCEPT tcp -- * eth0 192.168.1.1 192.168.0.20 tcp dpt:53 |
| 2 82 10989 ACCEPT udp -- * eth0 192.168.1.1 192.168.0.20 udp dpt:53 |
| ... |
| 1 36 2160 ACCEPT tcp -- * eth0 192.168.1.1 192.168.0.20 tcp dpt:53 |
| 2 82 10989 ACCEPT udp -- * eth0 192.168.1.1 192.168.0.20 udp dpt:53 |
| ... |
| </code> |
| |
| Um diese ''iptables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden: |
| <code> |
| # service iptables save |
| iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] |
</code> | </code> |
| |