1. BIND의 설치
명령
yum install bind bind-sdb
2. mysql 설정하기
먼저 데이터베이스를 작성한다.
CREATE DATABASE mydns;
사용자를 작성하는 명령은 다음과 같다.
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFIED BY 'password'
3. mysql에 zone 정보 저장하기
DNS 정보를 저장할 테이블의 형식을 작성하는 SQL은 다음과 같다.
CREATE TABLE 테이블명 (
name varchar(255) default NULL,
ttl int(11) default NULL,
rdtype varchar(255) default NULL,
rdata varchar(255) default NULL
) TYPE=MyISAM;
name varchar(255) default NULL,
ttl int(11) default NULL,
rdtype varchar(255) default NULL,
rdata varchar(255) default NULL
) TYPE=MyISAM;
Zone 정보를 저장하기 위해서 bind의 named.conf의 zone내용의 수정이 필요하다.
zone "yarang.kr" IN {
type master;
file "kr.yarang.zone";
allow-update { none; };
};
type master;
file "kr.yarang.zone";
allow-update { none; };
};
위 박스의 내용을 아래 박스의 내용과 같이 수정해야 한다.
zone "yarang.kr" IN {
type master;
database "mysqldb mydns 테이블명 localhost mydns password";
allow-update { none; };
};
type master;
database "mysqldb mydns 테이블명 localhost mydns password";
allow-update { none; };
};
수정된 내용의 형식은 다음과 같다.
database "mysqldb mydns 테이블명 localhost mydns password";
database : SDB를 통한 데이터베이스를 사용한다는 것을 알린다.
mysqldb : mysql 데이터베이스를 사용하는 것을 지정한다. pgsql을 사용하면 postgresl을 지정하여 사용할 수 있다.
mydns : 데이터베이스에서 네임서버의 정보를 저장할 데이터베이스의 이름을 지정한다.
테이블명 : zone 정보를 저장하는 테이블의 이름을 지정한다. 하나의 zone은 하나의 테이블을 가진다.
localhost : 데이터베이스가 동작하는 서버를 지정한다.
mydns : 데이터베이스에 로그인할 사용자의 이름이다.
password : 데이터베이스 로그인에 사용할 암호이다.
위의 설정으로 bind가 sdb를 사용할 수 있도록 설정되었다.
4. 기본 zone 정보 넣기
기본으로 들어갈 zone 정보를 넣는다.
INSERT INTO yarangkr VALUES ('yarang.kr', 259200, 'SOA', 'yarang.kr. ns.yarang.kr. 200309181 28800 7200 86400 28800');
INSERT INTO yarangkr VALUES ('yarang.kr', 259200, 'NS', 'ns.yarang.kr.');
INSERT INTO yarangkr VALUES ('yarang.kr', 259200, 'NS', 'nse.yarang.kr.');
NS 레코드와 SOA 레코드를 넣는 명령이다. 위의 sql명을 사용하면 원하는 정보를 넣어 엔트리를 추가할 수 있다.
