当サイトで紹介している『DHCPサーバの構築』で動的IPを割り振った場合、『DNSサーバの構築(BIND)』で、その動的IPアドレスをホスト名に割り付ける事が出来ません。
このページで紹介する方法は、クライアントに任意のIPアドレスを付与し、クライアント情報(クライアントのコンピュータ名)をDNSサーバに紐付けて管理者側の負担を軽減させる方法を紹介致します。
サーバのホスト名は『fedora』、FQDNは『fedora.kajuhome.com』『192.168.1.5』とします。 ただし、外部と同じ名前でアクセスできる様に『kajuhome.com』で定義します。 また、サンプルを兼ねて別名で『www』、FQDN『www.kajuhome.com』も定義します。 クライアントは2台あり、コンピュータ名が『client1』、FQDNを『client1.kajuhome.com』、割り振るIPアドレスを『192.168.1.xxx』、 もう一方のコンピュータ名が『client2』、FQDNを『client2.kajuhome.com』、割り振るIPアドレスを『192.168.1.yyy』として紐付けます。 (備考:クライアントの数は、DHCPによるクライアントに割り当てるIPアドレス数内であれば何台あっても構いません) |
『DHCPサーバの構築』の設定ファイル「dhcpd.conf」を基準に変更点や追加設定を赤文字で記載しています。
リリース時間を変更している点としては、ダイナミックに変更するIPアドレスを長い時間貸し出しさせない為です。(特に理由はありません。)
DHCP設定ファイルの編集 「dhcpd.conf」はバージョンによってパス位置が違うので注意(DHCPサーバの構築(DHCP)参照) # vi /etc/dhcp/dhcpd.conf ddns-update-style interim; ignore client-updates; not authoritative; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name "kajuhome.com"; option domain-name-servers 192.168.1.5; クライアントに割り当てるIPアドレスの範囲を指定(100〜149の50個を割り当てる) range dynamic-bootp 192.168.1.100 192.168.1.149; デフォルトリース時間(秒) default-lease-time 600; 最大リース時間(秒) max-lease-time 7200; } Dynamic DNSのための追加設定(DNSサーバの設定ファイル「ZONE名」とあわせる事。) 正引きゾーン zone kajuhome.com { サーバのアドレスを設定 primary 192.168.1.5; } 逆引きゾーン zone 1.168.192.in-addr.arpa { サーバのアドレスを設定 primary 192.168.1.5; } |
bind設定ファイルの編集 # vi /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; // listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; category lame-servers { null; }; }; view "internal" { match-clients { localhost; localnets; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "kajuhome.com" { type master; file "kajuhome.com.lan"; Dynamic DNS機能を付加(更新するサーバのIPアドレスを指定) allow-update { 192.168.1.5; }; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.db"; Dynamic DNS機能を付加(更新するサーバのIPアドレスを指定) allow-update { 192.168.1.5; }; }; }; view "external" { match-clients { any; }; recursion no; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "kajuhome.com" { type master; file "kajuhome.com.wan"; allow-update { none; }; }; zone "xxx.151.221.in-addr.arpa" { type master; file "xxx.151.221.in-addr.arpa.db"; allow-update { none; }; }; }; |
DNSサーバが起動するプロセスは「named」ユーザで起動されます。
しかし、DNSサーバ(bind)をインストールしたデフォルトのZONEファイル配置ディレクトリ「/var/named」のアクセス権は 750 、オーナ・グループは root:named となっており、namedではファイル更新ができません。
プロセスがZONE情報を更新できる様に、アクセス権を変更します。
インストール直後のZONE配置パスのオーナ # ls -ld /var/named drwxr-x--- 3 root named 4096 6月 20 15:52 named ZONE配置パスのアクセス権変更 # chmod 770 /var/named ZONE配置パスのアクセス権確認 # ls -ld /var/named drwxrwx--- 3 root named 4096 6月 20 15:52 named 正引き・逆引きファイルのアクセス権・オーナ変更 # chown named:named /var/named/kajuhome.com.lan # chown named:named /var/named/1.168.192.in-addr.arpa.db # chmod 660 /var/named/kajuhome.com.lan # chmod 660 /var/named/1.168.192.in-addr.arpa.db 正引き・逆引きファイルのアクセス権・オーナ確認 # ls -l /var/named 合計 276 -rwxrwx--- 1 named named 301 4月 9 08:39 1.168.192.in-addr.arpa.db -rwxrwx--- 1 named named 360 4月 9 09:39 kajuhome.com.lan |
DNSサーバの起動 【FC1 から Fedora14 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/named start 【Fedora15以降 / CentOS7 の場合】 # systemctl start named.service DNSサーバ起動直後のログ内容 # cat /var/log/messages Jun 20 14:26:07 fedora named: named 起動 succeeded Jun 20 14:26:07 fedora named[3412]: loading configuration from '/etc/named.conf' Jun 20 14:26:07 fedora named[3412]: listening on IPv4 interface lo, 127.0.0.1#53 Jun 20 14:26:07 fedora named[3412]: listening on IPv4 interface eth0, 192.168.1.5#53 Jun 20 14:26:07 fedora named[3412]: zone 'kajuhome.com' allows updates by IP address, which is insecure Jun 20 14:26:07 fedora named[3412]: zone '1.168.192.in-addr.arpa' allows updates by IP address, which is insecure Jun 20 14:26:07 fedora named[3412]: command channel listening on 127.0.0.1#953 Jun 20 14:26:07 fedora named[3412]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2005062001 Jun 20 14:26:07 fedora named[3412]: zone kajuhome.com/IN: loaded serial 2005062001 Jun 20 14:26:07 fedora named[3412]: running DHCPサーバの起動 【FC1 から Fedora14 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/dhcpd start 【Fedora15以降 / CentOS7 の場合】 # systemctl start dhcpd.service DHCPサーバ起動直後のログ内容 # cat /var/log/messages Jun 20 14:26:27 fedora dhcpd: Internet Systems Consortium DHCP Server V3.0.1rc14 Jun 20 14:26:27 fedora dhcpd: Copyright 2004 Internet Systems Consortium. Jun 20 14:26:27 fedora dhcpd: All rights reserved. Jun 20 14:26:27 fedora dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ Jun 20 14:26:27 fedora dhcpd: Wrote 0 leases to leases file. Jun 20 14:26:27 fedora dhcpd: Internet Systems Consortium DHCP Server V3.0.1rc14 Jun 20 14:26:27 fedora dhcpd: Copyright 2004 Internet Systems Consortium. Jun 20 14:26:27 fedora dhcpd: All rights reserved. Jun 20 14:26:27 fedora dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ Jun 20 14:26:27 fedora dhcpd: Wrote 0 leases to leases file. Jun 20 14:26:27 fedora dhcpd: Listening on LPF/eth0/00:0c:29:e5:36:d3/192.168.1.0/24 Jun 20 14:26:27 fedora dhcpd: Listening on LPF/eth0/00:0c:29:e5:36:d3/192.168.1.0/24 Jun 20 14:26:27 fedora dhcpd: Sending on LPF/eth0/00:0c:29:e5:36:d3/192.168.1.0/24 Jun 20 14:26:27 fedora dhcpd: Sending on Socket/fallback/fallback-net Jun 20 14:26:27 fedora dhcpd: Jun 20 14:26:27 fedora dhcpd: Sending on LPF/eth0/00:0c:29:e5:36:d3/192.168.1.0/24 Jun 20 14:26:27 fedora dhcpd: Sending on Socket/fallback/fallback-net Jun 20 14:26:27 fedora dhcpd: dhcpd 起動 succeeded |
クライアント起動(「client1」がクライアントのホスト名)直後のログ内容(クライアントのホスト名は「client1」) # cat /var/log/messages Jun 20 14:58:33 fedora dhcpd: DHCPDISCOVER from 00:0c:29:b7:69:85 via eth0 Jun 20 14:58:34 fedora dhcpd: DHCPOFFER on 192.168.1.150 to 00:0c:29:b7:69:85 (client1) via eth0 Jun 20 14:58:34 fedora named[3412]: client 192.168.1.5#1039: updating zone 'kajuhome.com/IN': adding an RR Jun 20 14:58:34 fedora named[3412]: client 192.168.1.5#1039: updating zone 'kajuhome.com/IN': adding an RR Jun 20 14:58:34 fedora named[3412]: journal file kajuhome.com.lan.jnl does not exist, creating it Jun 20 14:58:34 fedora dhcpd: Added new forward map from client1.kajuhome.com to 192.168.1.150 Jun 20 14:58:34 fedora named[3412]: client 192.168.1.5#1039: updating zone '1.168.192.in-addr.arpa/IN': deleting an rrset Jun 20 14:58:34 fedora named[3412]: client 192.168.1.5#1039: updating zone '1.168.192.in-addr.arpa/IN': adding an RR Jun 20 14:58:34 fedora named[3412]: journal file 1.168.192.in-addr.arpa.db.jnl does not exist, creating it Jun 20 14:58:34 fedora dhcpd: added reverse map from 150.1.168.192.in-addr.arpa. to client1.kajuhome.com Jun 20 14:58:34 fedora dhcpd: DHCPREQUEST for 192.168.1.150 (192.168.1.5) from 00:0c:29:b7:69:85 (client1) via eth0 Jun 20 14:58:34 fedora dhcpd: DHCPACK on 192.168.1.150 to 00:0c:29:b7:69:85 (client1) via eth0 クライアントよりIPアドレス要求があり、ハードウェアアドレス(MACアドレス)とホスト名が通知される。 今回は、初期起動の為、journal file「kajuhome.com.lan.jnl」と「1.168.192.in-addr.arpa.db.jnl」が なかった為、新規に作成され、サーバで割り当てたアドレスが登録される。 クライアントに割り当てたdhcp情報 # cat /var/lib/dhcpd/dhcpd.leases # All times in this file are in UTC (GMT), not your local timezone. This is # not a bug, so please don't ask about it. There is no portable way to # store leases in the local timezone, so please don't request this as a # feature. If this is inconvenient or confusing to you, we sincerely # apologize. Seriously, though - don't ask. # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-V3.0.1rc14 lease 192.168.1.150 { starts 1 2005/06/20 15:20:59; ends 1 2005/06/20 15:30:59; binding state active; next binding state free; hardware ethernet 00:0c:29:b7:69:85; uid "\001\000\014)\267i\205"; set ddns-rev-name = "150.1.168.192.in-addr.arpa."; set ddns-txt = "31fc0ba4fc319265778c120b762742ef3f"; set ddns-fwd-name = "client1.kajuhome.com"; client-hostname "client1";} |
実際にIPアドレスを要求したクライアントより確認をしてみる。 (下記は、クライアント(ホスト名:client1)より実施しています) Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. IPアドレスの確認 C:\Documents and Settings\Fedora>ipconfig /all Ethernet adapter ローカル エリア接続: Connection-specific DNS Suffix . : kajuhome.com Description . . . . . . . . . . . : AMD PCNET Family PCI Ethernet Adapter Physical Address. . . . . . . . . : 00-0C-29-B7-69-85 Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.1.150 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 DHCP Server . . . . . . . . . . . : 192.168.1.5 DNS Servers . . . . . . . . . . . : 192.168.1.5 Lease Obtained. . . . . . . . . . : 2005年6月20日 15:20:59 Lease Expires . . . . . . . . . . : 2005年6月20日 15:30:59 「nslookup」による、DNSサーバ動作確認 C:\Documents and Settings\Fedora>nslookup Default Server: kajuhome.com Address: 192.168.1.5 サーバのFQDNで検索 > fedora.kajuhome.com Server: kajuhome.com Address: 192.168.1.5 サーバのホスト名とIPアドレスが返ってきた Name: kajuhome.com Address: 192.168.1.5 Aliases: fedora.kajuhome.com ← 別名(CNAME)で解決されている サーバのホスト名(ショート名)で検索 > fedora Server: kajuhome.com Address: 192.168.1.5 サーバのホスト名とIPアドレスが返ってきた Name: kajuhome.com Address: 192.168.1.5 Aliases: fedora.kajuhome.com ← 別名(CNAME)で解決されている サーバのIPアドレスで検索 > 192.168.1.5 Server: kajuhome.com Address: 192.168.1.5 サーバのホスト名とIPアドレスが返ってきた Name: kajuhome.com Address: 192.168.1.5 クライアントのFQDNで検索 > client1.kajuhome.com Server: kajuhome.com Address: 192.168.1.5 クライアントのFQDNとIPアドレスが返ってきた Name: client1.kajuhome.com Address: 192.168.1.150 クライアントのホスト名(ショート名)で検索 > client1 Server: kajuhome.com Address: 192.168.1.5 クライアントのFQDNとIPアドレスが返ってきた Name: client1.kajuhome.com Address: 192.168.1.150 クライアントのIPアドレスで検索 > 192.168.1.150 Server: kajuhome.com Address: 192.168.1.5 クライアントのFQDNとIPアドレスが返ってきた Name: client1.kajuhome.com Address: 192.168.1.150 >exit |
ZONEファイルの状態。上記でjournal fileが作成された事が分かる。 # ls -l /var/named/ -rw------- 1 named named 329 6月 20 14:24 1.168.192.in-addr.arpa.db -rw-r--r-- 1 named named 806 6月 20 14:58 1.168.192.in-addr.arpa.db.jnl -rw------- 1 named named 337 6月 20 14:24 kajuhome.com.lan -rw-r--r-- 1 named named 849 6月 20 14:58 kajuhome.com.lan.jnl *:ここから配下は実行する必要はありません。(確認の為、意図的に行っています。) DNSサーバを意図的に停止 【FC1 から Fedora14 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/named stop 【Fedora15以降 / CentOS7 の場合】 # systemctl stop named.service ZONEファイルの状態。オリジナルの正引き・逆引きZONEファイルに変更がかかっている。 # ls -l /var/named/ -rw------- 1 named named 482 6月 20 15:09 1.168.192.in-addr.arpa.db -rw-r--r-- 1 named named 806 6月 20 14:58 1.168.192.in-addr.arpa.db.jnl -rw------- 1 named named 537 6月 20 15:09 kajuhome.com.lan -rw-r--r-- 1 named named 849 6月 20 14:58 kajuhome.com.lan.jnl 正引きZONEファイルの中身。(DNSサーバによってクライアントのAレコードが追加されている) # cat /var/named/kajuhome.com.lan $ORIGIN . $TTL 8640 ; 2 hours 24 minutes kajuhome.com IN SOA kajuhome.com. root.kajuhome.com. ( 2005062002 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS kajuhome.com. MX 10 kajuhome.com. $ORIGIN kajuhome.com. A 192.168.1.5 $TTL 300 ; 5 minutes client1 A 192.168.1.150 TXT "31fc0ba4fc319265778c120b762742ef3f" $TTL 8640 ; 2 hours 24 minutes www CNAME kajuhome.com. fedora CNAME kajuhome.com. 逆引きZONEファイルの中身。(DNSサーバによってクライアントのPTRレコードが追加されている) # cat /var/named/1.168.192.in-addr.arpa.db $ORIGIN . $TTL 86400 ; 1 day 1.168.192.in-addr.arpa IN SOA kajuhome.com. root.kajuhome.com. ( 2005062002 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS kajuhome.com. $ORIGIN 1.168.192.in-addr.arpa. $TTL 300 ; 5 minutes 150 PTR client1.kajuhome.com. $TTL 86400 ; 1 day 5 PTR kajuhome.com. |
自前DNSサーバを外部に公開するに当たって、ルータの設定が必要です。
ルータのポート開閉は、ご自分のルータ取扱説明書をご覧ください。