8. Zone File Configuration (4)
Hanterm - cat /var/named/oops.zone |
[root@bbuwoo named]$ cat /var/named/oops.zone
; generated by JoungKyun Kim <http://oops.org>
;
$TTL 86400
@ IN SOA ns.oops.org. admin.oops.org. (
2002062110 ; Serial
10800 ; Refresh
3600 ; Retry
432000 ; Expire
86400 ; Minimum (TTL)
)
; Name Server
;
IN NS ns.oops.org.
IN MX 10 oops.org.
IN A 210.24.154.2
;
; Host name & Infomations
ns IN A 210.24.154.2
IN HINFO "i686 Pentium IV" "Linux"
;
; VirtualHost
ftp IN A 210.24.154.155
babo IN A 210.24.154.156
webadmin IN A 210.24.154.158
; Alias
www IN CNAME @
[root@bbuwoo named]$
|
이번 PAGE 에서는 설정에 사용되는 Record type 에 대해서 알아보도록 하겠다.
A record
호스트명에 대한 IP 주소를 지정해 주는 것이다.
babo IN A 210.24.154.156
babo 호스트의 IP 주소는 210.24.154.157 라고 지정해 주고 있다. 이 A record 를 이용해서
분 산 system 을 설정할 수가 있는데 즉, CNAME record 와 반대로 하나의 Domain name 에 여
러개의 IP address 를 부여해서 여러개의 서버를 하나의 서버처럼 사용하는 것을 말한다.
좀더 자세히 살펴 보기로 하자. 아래와 같이 "A" record 를 복수로 지정을 하고
chollian.net. IN A 210.120.128.180
IN A 210.120.129.180
nslookup 으로 어떻게 나오는지 확인 해보도록 하자.
# nslookup chollian.net
Server: oops.org
Address: 210.24.154.2
Name: chollian.net
Addresses: 210.120.129.180, 210.120.251.50, 210.120.251.80, 210.120.128.180
이렇게 지정하면 어떤 경우가 발생하느냐? chollian.net 으로 접속을 시도하게 되면 지정한
3 개의 IP 로 돌아가면서 접속을 시도하게 되는 것이다. 이러한 방식을 Round Robbin 방식이
라 하며, 실제로 대형 server 들은 이런식으로 운영을 하고 있다. 물론 Round Robbin 방식만
으로 분산 시스템을 구성하기는 힘들지만 여기서는 Round Robbin 방식이 무엇이라는 것만 명
심해 두면 된다. 분산 시스템을 구성하려다 보면 자주 접하게 되는 단어이니 말이다.
NS record
네임 서버의 IP 주소 혹은 호스트명을 지정해 주게 된다.
ns.babo IN A 168.126.127.100
babo IN NS ns.babo
또는
ns.babo.oops.org. IN A 168.126.127.100
babo.oops.org IN NS ns.babo.oops.org.
이런식으로 연결해서 sub domain 을 작성할 수도 있다. 항상 NS 로 지정하는 호스트명은 IP
주소가 지정되어 있어야 한다.
이렇게 설정함으로서 babo.oops.org 지역 도메인 (zone)에 대해서는 ns.babo.oops.org 의 네
임서버가 담당하게 되는 것이다. oops.org 네임서버는 단지 "그 지역 도메인은 저녀석이 관
리하는거야 그쪽으로 가봐" 라고 해줄 뿐이다. (자신의 서버가 네임서버의 역할을 하기 위해
서는 자신의 상위 네임서버에서 바로 이런 설정이 되어 있어야 하는 것이다.)
MX record
MX는 Mail Exchange 의 약자이다. 즉 그 서버에 오는 메일을 처리할 메일 서비스를 지정하는
record 이다.
@ IN A 210.24.154.2
IN MX 10 mail
IN MX 20 mail2
mail IN A 210.24.154.3
mail2 IN A 210.24.154.4
oops.org 로 오는 mail 을 mail.oops.org 라는 server 로 보내서 처리 하게끔 하는 것이다.
즉 oops.org 에 mail demon 이 없지만 ID@oops.org 로 mail 을 보내게 되면 이 MX record 에
의해서 mail.oops.org 가 대신 처리를 하게 하는 것이다. 그러니 굳이 ID@mail.oops.org 로
보내나 ID@oops.org 로 보내나 동일하게 되는 것이다. MX 뒤의 숫자는 우선순위 정도로 생각
하면 되고 숫자가 낮은쪽부터 접속을 시도하게 된다.
또한 위와 같이 MX record 를 여러개를 지정을 할 수도 있는데 mail 은 일단 MX record 뒤의
숫자에 의해 우선 순위를 가지고 있는 mail.oops.org 로 보내지게 되고 이 server 가 응답이
없으면 다음 순위인 mail2.oops.org 로 보내져서 처리가 되는 것이다. 물론 이 서버까지 죽
는다면 메일은 반송 되거나 메일서버가 살아날 때까지 대기하게 될것이다. 기본 메일서버를
하나 놓고 백업서버를 사용할때에 이런식으로 구성할 수가 있다.
주의 할 것은 위에서의 설정에서 mail2.oops.org 은 메일을 받지는 않는다. 2 차 MX 의 경우
(2 차 MX 라는 것은 우선 순위 2 번째 서버를 의미한다) 에는 1차 MX 즉 메일을 받을 서버가
죽었을 경우 살아날때 까지 일정 시간동안 queuing 만을 하게 된다. 즉 일정시간 즉 2 차 MX
의 queuing 제한 시간이 끝나면 결국에는 반송이 되게 되는 것이다.
또 하나 주의 할 것은 relay 문제이다. 만약 relay 가 모든 곳으로 부터 풀려 있다면 내 마
음대로 아무 메일 서버를 2차 mx record 로 잡을 수 있게 된다. 하지만 sendmail 8.9 부터는
spam 에 대처하기 위해 기본적으로 localhost 만을 relay 를 허락하게 되어 있다. 이러한 경
우 해당 호스트는 큐잉 서버로 동작하지 못함에 유의하자. 보통 기관의 SMTP 서버는 타인에
의한 남용을 막기위해 내부 IP (혹은 도메인) 에 대해서만 릴레이를 허용하도록 설정하지만,
메일 큐잉 서버의 경우는 본 Feature 를 끄거나 해당 호스트를 목적지로 하는 편지에 대해서
는 릴레이를 허용하도록 (이 말의 의미하는 바를 잘 모르겠다면 모든 IP에 대해 릴레이를 허
용토록 설정하라) 조정하여야 한다.
(참고: Allowing controlled SMTP relaying in Sendmail 8.9)
또한 2 차 MX 로 지정된 서버에서 주의할 점은 local-host-naems 파일 또는 sendmail.cw 에
ORIGIN 으로 오는 메일을 받도록 설정을 하면 안된다. 이럴경우 메일을 큐잉을 하는 것이 아
니라 받아 버리게 되므로 동기화에 문제가 발생하게 되는 것이다.
마지막으로, MX record 는 Alias 되어진 이름을 지정할 수가 없다. 아래의 예는 잘못된 예이
다.
@ IN A 210.24.152.2
IN MX 10 mail
mail IN CNAME @
위의 설정에서
mail IN CNAME @
은
mail IN A 210.24.152.2
으로 되어야 제대로 된 설정이다.
HINFO record
그 호스트의 하드웨어와 운영체제에 대한 정보를 제공한다. 사용법은 아주 간단하다. 하드웨
어, 운영체제 순으로 적어 주기만 하면된다.
ns IN A 210.24.154.2
IN HINFO "i686 Pentium IV" "Linux"
ns 호스트의 CPU 는 i686 Pentium IV 를 사용 중이고 운영체제로 리눅스를 사용 한다고 해준
것이다. 뛰어 쓰기를 사용하고 싶다면 `` '' 로 묵으면 된다.
이 레코드는 정의하지 않는 것을 권장한다. 앞에서도 밝혔듯이 불필요한 정보를 전달할 필요
는 없다. 오히려 보안상 크래킹에 필요한 정보를 전해주는 일이 될 수 있기 때문이다.
CNAME record
한 IP address 에 대해 여러개의 호스트 명을 지정할 수 있다. 물론 A 로 지정해 주어도 된
다. 지정할수 있는 갯수의 제한은 없다. 하고 싶은 만큼 하면 된다.
@ IN A 210.24.154.2
www IN CNAME @
또는
@ IN A 210.24.154.2
www IN A 210.24.154.2
위의 2 가지의 예는 동일한 결과를 산출한다. 즉 CNAME 을 쓰나 A 를 쓰나 동일하게 할 수도
있다는 말이다. 이를 해석하면 www 라는 호스트는 @ ( oops.org) 라는 호스트의 별명이라고
지정해 주고 있다. 즉 @ (oops.org) 로 접속을 하든 oops.org 로 접속을 하든 동일한 결
과를 얻는다는 얘기이다. 별명을 부른다고 인간이 바뀌는 것이 아닌 것 처럼 말이다.
한가지 주의할 것이 있다면 @ 를 alias 로 걸면 안된다.
www IN A 210.24.154.2
@ IN CNAME www
이런식으로 @ 를 alias 로 지정해버릴 경우에는 secondary 서버쪽에서 이쪽의 데이타를 가져
가지를 못한다. nslookup 했을때 ls 명령으로 등록된 도메인명을 볼 수도 없다. 물론 세컨더
리 서버를 운영하지 않는다면, 저렇게 지정해도 별 상관은 없지만 정석은 아니며, 문제가 야
기될 수도 있다는 얘기이다.
다음은 zone file 문법중 bind 8.x 에서 추가된 사항에 대해 알아 보겠다.
>> 이전 : zonf file configuration (3)
>> 다음 : zone file 에서의 기타 표현법
|