Skip to content

Cisco ルータを DNS サーバとして使う

Cisco ルータは DNS サーバとして使うこともできます。とは言え、操作性も良いわけでは無いので、決してお勧めはしませんが・・・今回は IOS のバージョン 15.0(1)M2 で Cisco ルータの DNS 機能を検証してみました。

Cisco ルータで DNS 機能を有効化する

DNS サービスを起動するには "ip dns server" を設定します。これで Cisco ルータが UDP/53 を Listen 開始するようです。

1
2
3
Router(config)# ip dns server ?
  queue       Configure queue parameters
  view-group  Configure a DNS view-list for global use on this system

A レコード、PTR レコードを登録する

A レコードを登録するには "ip host [FQDN] [Address]" を設定します。A レコードを設定すると、自動的に対になる PTR レコードも登録されます。

1
2
Router(config)# ip host www.example.local 10.0.0.1 ?
  A.B.C.D  Host IP address

SOA レコードを設定する

SOA レコードを登録するには "ip dns primary [FQDN] soa [DNS Server] [MailAddress] [Refresh] [Retry] [Expire] [Minimum]" を設定します。

1
Router(config)# ip dns primary example.local soa dns01.example.local root.example.local 3600 900 86400 3600

Linux サーバから dig で名前解決した結果

しかし、Linux サーバから dig で名前解決テストしてみると A レコードは正常に引けるものの、PTR が上手く解決出来ないようです???また、SOA は問い合わせるごとに Serial が自動的に増えているようです???(そもそも、Cisco ルータの設定上、シリアル番号は指定できないようです)

A レコードを問い合わせた結果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
$ dig @10.0.1.185 www.example.local. A

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @10.0.1.185 www.example.local. A
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22229
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.example.local.             IN      A

;; ANSWER SECTION:
www.example.local.      10      IN      A       10.0.0.1

;; Query time: 2 msec
;; SERVER: 10.0.1.185#53(10.0.1.185)
;; WHEN: Fri Apr  8 15:08:37 2011
;; MSG SIZE  rcvd: 51

PTR レコードを問い合わせた結果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
$ dig @10.0.1.185 10.0.0.1 PTR

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @10.0.1.185 10.0.0.1 PTR
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2043
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;10.0.0.1.                      IN      PTR

;; AUTHORITY SECTION:
.                       10800   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2011040701 1800 900 604800 86400

;; Query time: 32 msec
;; SERVER: 10.0.1.185#53(10.0.1.185)
;; WHEN: Fri Apr  8 15:09:49 2011
;; MSG SIZE  rcvd: 101

SOA レコードを問い合わせた結果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
$ dig @10.0.1.185 example.local. SOA

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @10.0.1.185 example.local. SOA
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15552
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;example.local.                 IN      SOA

;; AUTHORITY SECTION:
example.local.          3600    IN      SOA     dns01.example.local. root.example.local. 3511236465 3600 900 86400 3600

;; Query time: 2 msec
;; SERVER: 10.0.1.185#53(10.0.1.185)
;; WHEN: Fri Apr  8 15:21:20 2011
;; MSG SIZE  rcvd: 117