Ubuntu DNS&DHCP設定

posted by brdofprds on 2009.05.19, under Ubuntu
19th

CG-HDC4EU3500用にWD10EADS-M2Bを4つ購入しました。
5400回転ですが静かで低消費電力なのでRAIDを組むのにはちょうどいいと思います。

今回は、UbuntuをインストールしたLS-XHLに対してDNSサーバとDHCPサーバを構築しました。少数のマシンしかないLANを導入するのは高コストですが、このBlogのように外向けのサービスを行っている場合には外側と内側で同じドメインを利用できるので便利です。設定も覚えてしまえば簡単なのでぜひ試してみてください。

1. DNSサーバ

参考 https://help.ubuntu.com/9.04/serverguide/C/dns.html

まずは、DNSサーバであるbind9をインストールします。

$ sudo aptitude install bind9

/etc/bind以下に設定ファイルができるので、ここを編集します。以下の例では設定するドメイン名はchimaki.infoです。適宜変更してください。また192.168.1.0/24のネットワークについて設定をしています。

A. ゾーンの設定

/etc/bind/named.conf.local

zone "chimaki.info" {
     type master;
     file "/etc/bind/db.chimaki.info";
};

zone "1.168.192.in-addr.arpa" {
     type master;
     file "/etc/bind/db.192.168.1";
};

B. 正引き(Name => IP)の設定

db.localhostをコピーして編集します。
設定ファイルのSerialは変更の度に増やす必要があります。そのため日時を入力することが推奨されています。下記の例では、dns.chimaki.info. => 192.168.1.254という対応を作り、www.chimaki.info. = dns.chimaki.info.という別名を設定しています。

/etc/bind/db.chimaki.info

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     dns.chimaki.info. root.chimaki.info. (
                          5171400     ; Serial <= mmddHHMMの形式とした。
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      dns.chimaki.info.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1

; 名前 => アドレスを定義する。
;  IN A
dns IN A 192.168.1.254 linux IN A 192.168.1.10 ; 名前の別名を定義する。 ; IN CNAME www IN CNAME dns

C. 逆引き(IP => Name)の設定

db.127をコピーして作成します。
下記の例では、192.168.1.254 => dns.chimaki.info.という対応を設定しています。
同様に他の固定IPのマシンの名前を付けることができます。(例ではlinux.chimaki.infoを定義している。)

/etc/bind/db.192.168.1

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     dns.chimaki.info. root.chimaki.info. (
                         5171401     ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.

; アドレス => 名前を定義する。
;
IN PTR 254 IN PTR dns.chimaki.info. 10 IN PTR linux.chimaki.info.

D. オプション

192.168.1.0/24に限定するように設定します。
また名前を引けなかったときに、プロバイダのDNSにforwardすることでLANのDNSの記述を一つにできます。

/etc/bind/named.conf.options

options {
        directory "/var/cache/bind";

    allow-query {
        192.168.1.0/24;
        localhost;
    };

    allow-recursion {
        192.168.1.0/24;
        localhost;
    };

    allow-transfer {
        none;
    };

    forwarders {
        # プロバイダのDNSを書く
    };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

E. サービスの起動

サービスを再起動します。

$ sudo /etc/init.d/bind9 restart

F. テスト

digコマンドで引けるようになっているか確認します。
ANSWER SECTIONがあれば動作しています。
動かない場合は、/var/log/daemon.logなどのログを便りに修正します。

$ dig @192.168.1.254 dns.chimaki.info

; <<>> DiG 9.5.1-P2 <<>> @192.168.1.254 dns.chimaki.info
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50716
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;dns.chimaki.info.              IN      A

;; ANSWER SECTION:
dns.chimaki.info.       604800  IN      A       192.168.1.254

;; AUTHORITY SECTION:
chimaki.info.           604800  IN      NS      dns.chimaki.info.

;; Query time: 19 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Tue May 19 00:35:16 2009
;; MSG SIZE  rcvd: 64

2. DHCPサーバ

DHCPサーバを次のようにしてインストールします。

$ sudo aptitude install dhcp3-server

/etc/dhcp3/dhcpd.confを以下のように編集します。
例では192.168.1.50から192.168.1.60をDHCPアドレスとして配布します。

#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#

ddns-update-style none;
# DNSサーバを作成したらauthoritativeを有効にする。
authoritative;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
       range 192.168.1.50 192.168.1.60;
       option domain-name "chimaki.info";
       option domain-name-servers 192.168.1.254;
       option routers 192.168.1.1;
       option broadcast-address 192.168.1.255;
       default-lease-time 21600;
       max-lease-time 43200;
}

サービスを再起動します。

$ sudo /etc/init.d/dhcp3-server restart

ルータなど他の機器でDHCPを起動していないことを確認して、DHCPでIPアドレスを取得してみます。
DHCPの更新などを行うとうまくとれるはずです。

次のようにしてサーバのログを監視すると動作状況が分かります。

$ sudo tail -f /var/log/messages

3. DNSとDHCPの連携

固定IPならば/etc/bind/db.chimaki.infoなどに記述すれば名前を登録することができます。
DHCPでIPを取得したマシンについても名前を登録することができます。(しかも動的にです。)

上記のDNSの設定と、DHCPの設定が完了し動作していると仮定します。
allow-updateを追加します。

/etc/bind/named.conf.local

zone "chimaki.info" {
    type master;
    file "/etc/bind/db.chimaki.info";
    allow-update {
        127.0.0.1;
        192.168.1.0/24;
    };
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.1";
    allow-update {
        127.0.0.1;
        192.168.1.0/24;
    };
};
/etc/dhcp3/dhcpd.conf

# noneからinterimに変更
ddns-update-style interim;

また/etc/bindにbindユーザが書き込めるように権限を変更します。

$ sudo chown bind:bind /etc/bind

最後にサービスをそれぞれ再起動して設定は終了です。

$ sudo /etc/init.d/bind9 restart
$ sudo /etc/init.d/dhcp3-server restart

ログを見ながらDHCPでアドレスを取得させると登録される状況が分かります。
登録されると設定ファイル(例では/etc/bind/db.chimaki.info)に名前が追加されます。

LANのマシンには/etc/resolv.confを

search chimaki.info
nameserver 192.168.1.254

のようにドメインサーチとDNSサーバを追加します。
searchはxxx.chimaki.infoのようにすべて入力しないでもxxxで引けるようにするためのものです。

Ubuntu Localeの設定

posted by brdofprds on 2009.05.09, under Ubuntu
09th

以前紹介したlocaleの設定では、Ubuntuの場合不完全でしたので修正方法を紹介します。

aptitudeやemacsで日本語が表示されてなかったので、exportで環境変数を表示させてみたところLANGの設定がありませんでした。

簡単な修正としては

$ export LANG=ja_JP.UTF-8

とすれば、LANGが設定されて日本語が期待通り表示されます。

.bashrcに書くのはスマートではないので調べたところ、Ubuntuでは/etc/default/localeにLANGとLANGUAGEを設定するようです。(/etc/init.d/以下のスクリプトを見て発見しました。)

# vi /etc/default/locale
LANG="ja_JP.UTF-8"
LANGUAGE="ja_JP:ja:en_US:en"

設定後、再度ログインするとLANGが設定されていました。(再起動は必要ありません。)

pagetop