총 7대의 slave와 1대의 master로 구성된 클러스터 서버에서 IP주소를 일일이 외우지 않고, domain name으로 각 서버컴퓨터들을 사용하기 위해서 bind9을 이용한 DNS를 master서버에 구축하였다.
* DNS의 원리
slave.dns.server.co.kr : 이런식으로 구성된 도메인은 역순으로 구성된 DNS서버들을 거쳐서 recursive하게 ip주소를 받아낸다. 즉, kr -> co -> server -> dns 순서로 DNS를 물어본다.
보통의 경우 server.co.kr은 도메인을 구입해서 사용해야하고, 그 앞의 slave와 dns에 해당하는 부분을 서버 개발자가 구성하게 된다.
# bind9 설정하기
우선 아래의 링크만 정말 천천히 정독하면, 거의 한 번에 구현이 가능하다. 이 글은 이 내용을 요약한 것에 불과하다.
1) Master 설정
sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc
sudo vim /etc/default/bind9
>> OPTIONS="-4 -u bind" 으로 수정해서 IP-v4 로 설정한다.
sudo vim /etc/bind/named.conf.options
>> 다음을 입력해서 DNS서버가 신뢰하는 ip주소를 설정하고, 또한 어떤 ip주소가 Master인지 알려준다.
acl "trusted" {
10.128.10.11; # Master server ip - can be set to localhos
10.128.100.101; # slave 2 ip
10.128.200.102; # slave 2 ip
};
options {
directory "/var/cache/bind";
recursion yes; # enables resursive queries
allow-recursion { trusted; }; # allows recursive queries from "trusted" clients
listen-on { [Master server IP]; }; # ns1 private IP address - listen on private network only
allow-transfer { none; }; # disable zone transfers by default
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
sudo vim /etc/bind/named.conf.local
>> 다음을 입력해서 domain --> ip를 담당하는 forward zone과 ip --> domain을 담당하는 reverse zone을 생성한다.
zone "master.dns.server.com" {
type master;
file "/etc/bind/zones/db.master.dns.server.com"; # zone file path
};
zone "128.10.in-addr.arpa" { # master ip주소의 앞 2자리를 역순으로 입력
type master;
file "/etc/bind/zones/db.10.128"; # 10.128.0.0
};
sudo mkdir /etc/bind/zones
cd /etc/bind/zones
sudo cp ../db.local ./db.master.server.com
sudo vim /etc/bind/zones/db.master.server.com
>> 다음을 입력해서 domain --> ip 맵핑 테이블을 생성
$TTL 604800
@ IN SOA master.dns.server.com. admin.dns.server.com. (
3 ; Serial # 한 번 이 파일을 수정할 때마다 값을 1씩 증가시켜야함
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
IN NS master.dns.server.com.
; name servers - A records
master.dns.server.com. IN A 10.128.10.11
slave1.dns.server.com. IN A 10.128.100.101
slave2.dns.server.com. IN A 10.128.200.102
sudo cp ../db.127 ./db.10.128
sudo vim /etc/bind/zones/db.10.128
>> 다음을 입력해서 IP --> domain 맵핑 테이블을 생성
$TTL 604800
@ IN SOA master.dns.server.com. admin.dns.server.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; name servers
IN NS master.dns.server.com.
; PTR Records
11.10 IN PTR master.dns.server.com. ; 10.128.10.11 #여기도 끝자리 ip 2자리를 역순으로 입력
101.100 IN PTR slave1.dns.server.com. ; 10.128.100.101
102.200 IN PTR slave2.dns.server.com. ; 10.128.200.102
# 설정 점검하기
sudo named-checkconf
sudo named-checkzone dns.server.com db.dns.server.com
sudo named-checkzone 128.10.in-addr.arpa db.10.128
위의 문법 검사에서 문제가 없으면, 이제 bind9을 재시작한다.
sudo service bind9 restart
2) Client 설정
sudo vim /etc/resolvconf/resolv.conf.d/head # 원래 써있던 overwirte경고문을 무시하고 그냥 하면 잘 됨,
>> 다음을 입력해서 어떤 DNS서버 ip주소를 지정한다.
search bigpu.snu.ac.kr
nameserver 147.46.215.81 # bind9 이 돌아가고 있는 DNS서버
sudo resolvconf -u
nslookup 10.128.100.101
nslookup [도메인이름]
ping [도메인이름]
ssh [도메인이름]
'Development > Free Topic' 카테고리의 다른 글
Ubuntu 여러 에러 잡기, 설치 (0) | 2017.09.06 |
---|---|
IP타임 공유기 스위치 허브 모드 (0) | 2016.12.15 |
Ubuntu에서 FTP파일 서버 구축 (0) | 2016.09.27 |
Ubuntu GUI 관련 트러블슈팅. Gym, Xserver, pyglet, TeamViewer (0) | 2016.07.26 |
Ubuntu 서버 구입부터 설치 및 인터넷 설정까지 (0) | 2016.02.12 |
댓글