Konfiguration eines DNS-Servers im Cisco IOS

In meinem Heim-Netz stehen im Moment ein paar Änderungen an, um einen PC-Server mit seinen diversen Diensten abzulösen. Der erste Schritt war die Migration des DHCP-Servers auf einen Catalyst 3560. Über den DHCP-Server im IOS bzw. der ASA wurde aber vermutlich schon genug geschrieben.

Der nächste Schritt ist die Migration des Windows 2003 DNS-Servers auf meinen Internet-Router (im Moment ein Cisco 1841 mit IOS AdvSec. 12.4(20)T). Im IOS ist ein fast vollwertiger DNS-Server enthalten, dessen Konfiguration dem eines “richtigen” DNS-Servers sehr ähnlich ist. Alles was man in dem hervorragenden Buch “DNS and BIND” gelernt hat, bleibt auch hier gültig. Einschränkungen sind, daß man im IOS keinen Zonentransfer machen kann, was für ein Heim-Netz aber verschmerzbar ist. Weiterhin funktionieren die Reverse-Lookup-Zonen nicht, das vermisse ich schon mehr.

Eine kleine Basis-Konfiguration (der IOS DNS-Server kann noch deutlich mehr):

Als erstes wird die Zone definiert:

ip dns primary domain-name soa primary-server-name mailbox-name 
     [refresh-interval [retry-interval [expire-ttl [minimum-ttl]]]]

Im einfachsten Fall ist das also ein

gw(config)#ip dns primary example.com soa ns.example.com admin.example.com

Für die fehlenden Angaben werden vom Router automatisch Default-Werte eingetragen:

gw(config)#do sh run | i ip dns
ip dns server
ip dns primary example.com soa ns.example.com admin.example.com 21600 900 7776000 86400

Die Zeile “ip dns server” wurde vom Router auch automatisch konfiguriert.

Als nächster Schritt wird dem Router noch ein eigener Domain-Name mitgegeben und die Ressourcen des Netzes werden definiert:

gw(config)#ip domain-name example.com
gw(config)#ip host gw.example.com 10.255.250.1
gw(config)#ip host server.example.com 10.255.255.10
gw(config)#ip host csamc.exampe.com 10.255.255.14
gw(config)#ip host c3560.exampe.com 10.255.255.1
gw(config)#ip host c2940.exampe.com 10.255.255.5

und so weiter und so fort. Ein Eintrag, der bei dem DNS-Server nicht zwingend ist, aber zu einer “sauberen” Konfiguration dazugehört, ist,

gw(config)#ip host example.com ns ns.example.com
gw(config)#ip host ns.example.com 10.255.250.1

Genau so können bei Bedarf MX- und SRV-Records eingetragen werden.

Wer in seinem Home-Netz redundante Server hat, kann natürlich auch mehrere Adressen für einen FQDN konfigurieren:

gw(config)#ip host www.example.com 10.255.255.11 10.255.255.12

Als letzte Konfiguration muss dafür gesorgt werden, daß der Router auch Anfragen für fremde Domains zu einem Upstream-DNS-Server weiterleiten kann. Ich benutze vor meinem 1841 eine Fritzbox als DSL-Router, daher reicht ein einfacher name-server-Eintrag:

gw(config)#ip name-server 192.168.178.1

Wenn der Router seine IP-Konfiguration per DHCP oder PPP bekommt, kann auch der gelernte DNS-Server verwendet werden:

interface Dialer1
 ip address negotiated
 encapsulation ppp
 ppp ipcp dns request

Überprüfen kann man die Konfiguration mit einem “show hosts”:

gw#sh hosts
Default domain is example.com
Name/address lookup uses domain service
Name servers are 192.168.178.1

Codes: UN - unknown, EX - expired, OK - OK, ?? - revalidate
temp - temporary, perm - permanent
NA - Not Applicable None - Not defined

Host                      Port  Flags      Age Type   Address(es)
example.com               NA    (perm, OK)  0  NS       ns.example.com
SOA      ns.example.com admin.example.com
0 21600 900 7776000 86400
gw.example.com            None  (perm, OK)  0   IP    10.255.250.1
server.example.com        None  (perm, OK)  0   IP    10.255.255.10
csamc.exampe.com          None  (perm, OK)  0   IP    10.255.255.14
c3560.exampe.com          None  (perm, OK)  0   IP    10.255.255.1
c2940.exampe.com          None  (perm, OK)  0   IP    10.255.255.5
ns.example.com            None  (perm, OK)  0   IP    10.255.250.1
www.example.com           None  (perm, OK)  0   IP    10.255.255.11
10.255.255.12
security-planet.de        None  (temp, OK)  0   IP    88.198.206.211
gw#

Der letzte Eintrag (security-planet.de) ist ein temporärer, den der Router über seinen Upstream-DNS aufgelöst hat.

Und hier komplett die relevante Konfiguration:

hostname gw
!
ip domain name example.com
ip host example.com ns ns.example.com
ip host gw.example.com 10.255.250.1
ip host server.example.com 10.255.255.10
ip host csamc.exampe.com 10.255.255.14
ip host c3560.exampe.com 10.255.255.1
ip host c2940.exampe.com 10.255.255.5
ip host ns.example.com 10.255.250.1
ip host www.example.com 10.255.255.11 10.255.255.12
ip name-server 192.168.178.1
!
ip dns server
ip dns primary example.com soa ns.example.com admin.example.com 21600 900 7776000 86400

7 Replies to “Konfiguration eines DNS-Servers im Cisco IOS”

  1. toll, was man so alles mit einer cisco kiste mit ios machen kann.. sogar dns, beeindruckend 😉

  2. Gut, dass mir der SDM des 851 mir diese Zeile nicht in die Konfig des Dialers eingebaut hat:

    ppp ipcp dns request

    Manuell via CLI konfiguriert ist das doch gleich ein viel grösserer Lerneffekt gewesen. So langsam komme ich meiner Wunsch-Konfiguration näher. 😉

    Danke für den Artikel!

  3. Pingback: :: blazilla.de ::

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.