[IT Trend]/Network

RRDNS(Round-Robin DNS)

하늘을닮은호수M 2006. 6. 28. 15:47
반응형

1. 개요

RRDNS는 서로 다른 여러개의 시스템(서로 다른 IP address 사용)을 하나의 호스트
이름으로 mapping하여, hostname에 대한 IP address lookup시 DNS 서버에 지정된
여러개의 IP address가 순차적으로 한번씩 보여주기 때문에 Web 서버 또는 dialup
user account service 를 제공해 주는 서버를 운용시 시스템 로드를 분산 시키고자
할때 사용된다.

-----------
| Router |-------------->
---------- ----------- To Internet
| DNS | |
| server |----------------------------------------------------
---------- | | |
www:203.251.1.1 ------------- ------------- -------------
203.251.1.2 | www1 | | www2 | | www3 |
203.251.1.3 |203.251.1.1| |203.251.1.2| |203.251.1.3|
------------- ------------- -------------

2. RRDNS를 위한 DNS entry 지정

DNS 서버의 host DB 화일(db.domain)에 아래와 같이 A record를 만들면 된다.

www IN A 203.251.1.1 ; www1
IN A 203.251.1.2 ; www2
IN A 203.251.1.3 ; www3

3. /etc/nscd.conf 화일 수정

RRDNS를 사용하기 위해서는 DNS server/client 모두 /etc/nscd.conf에 아래와 같이
enable-cache를 "no"로 하여 name service시 앞서 caching된 데이타 값을 보여주지
않게 해야 한다.

% cat /etc/nscd.conf

enable-cache hosts no
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

debug-level 0

positive-time-to-live passwd 600
negative-time-to-live passwd 5
suggested-size passwd 211
keep-hot-count passwd 20
old-data-ok passwd no
check-files passwd yes

positive-time-to-live group 3600
negative-time-to-live group 5
suggested-size group 211
keep-hot-count group 20
old-data-ok group no
check-files group yes

positive-time-to-live hosts 3600
negative-time-to-live hosts 5
suggested-size hosts 211
keep-hot-count hosts 20
old-data-ok hosts no
check-files hosts yes

/etc/nscd.conf의 내용을 변경하면 "nscd" daemon을 kill 한후 restart 한다.

4. Patch install

RRDNS를 사용하기 위해서는 DNS server에 반드시 "103663-01"을 설치 한후 시스템을
rebooting 하여야 한다.

5. 테스트

nslookup 또는 telnet을 사용하여 확인

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.1, 203.251.1.2, 203.251.1.3
^^^^^^^^^^^

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.2, 203.251.1.3, 203.251.1.1
^^^^^^^^^^^

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.3, 203.251.1.1, 203.251.1.2
^^^^^^^^^^^

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.1, 203.251.1.2, 203.251.1.3
^^^^^^^^^^^

% telnet www
Trying 203.251.1.2...
Connected to www.
Escape character is '^]'.


UNIX(r) System V Release 4.0 (www2)

login:

% telnet www
Trying 203.251.1.3...
Connected to www.
Escape character is '^]'.


UNIX(r) System V Release 4.0 (www3)

login:

6. Tip

1) RRDNS를 사용하기 위해서는 DNS A record에 지정된 각 IP address가 같은 network
address 이어야 한다. 만약 아래와 같이 서로 다른 network address이면 hostname
에 대한 IP address lookup시 Round Robin이 적용되지 않는다.

www IN A 203.251.1.1 ; <- 203.251.1.0 network
IN A 203.251.2.1 ; <- 203.251.2.0 network

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.1 203.251.2.1
^^^^^^^^^^^

% nslookup www.sun.com
Name: www.sun.com
Addresses: 203.251.1.1 203.251.2.1
^^^^^^^^^^^

2) RRDNS는 server들의 현재 load/performance 와는 관계없이 오직 Round Robbin
방식에 의하여 순차적으로 DNS A record에 등록된 시스템의 IP address를
lookup 하여 연결해 주기 때문에 어느 한 server에 연결되어 사용중인 user들이
연결을 끊지 않고 계속사용할 경우 특정 server에 부하가 걸릴수 있는 단점이
있다.

반응형