Tag Archives: bind

[CentOS] bind IPv6 설정 제거하기

IPv4환경의 서버에서 bind를 구동하게 되면 다음과 같은 오류메시지가 /var/log/messages 에 쌓이는것을 볼 수 있습니다.

Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'US/DNSKEY/IN': 2001:503:d1ae:ffff:ffff:ffff:ffff:ff7e#53
Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'US/DNSKEY/IN': 2001:500:3682::11#53
Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'ns1.isc.ultradns.net/A/IN': 2610:a1:1014::1#53
Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'ns1.isc.ultradns.net/A/IN': 2001:502:f3ff::1#53
Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'pdns6.ultradns.co.uk/A/IN': 2001:502:ad09::3#53
Jan 19 18:10:55 theeye named[5464]: error (network unreachable) resolving 'pdns6.ultradns.co.uk/A/IN': 2a01:40:1001:35::2#53
Jan 19 18:10:56 theeye named[5464]: error (network unreachable) resolving 'pdns6.ultradns.co.uk/A/IN': 2610:a1:1016::1#53
Jan 19 18:10:56 theeye named[5464]: error (network unreachable) resolving 'pdns6.ultradns.co.uk/A/IN': 2610:a1:1015::1#53
Jan 19 18:10:58 theeye named[5464]: error (network unreachable) resolving 'doc.gov/ANY/IN': 2001:49f0:a02a:1000::238#53

위의 오류는 IPv6 기반의 통신을 하지 못해서 루트 서버로의 접근을 못해서 발생하는것으로 IPv4로만 동작하도록 설정하면 문제가 해결됩니다. /etc/named.conf 파일(chroot설정이 되어있다면 /var/named/chroot/etc/named.conf)의 다음의 설정을 주석처리 합니다.

// listen-on-v6 port 53 { ::1; };

이후에 /etc/sysconfig/named 의 마지막줄에 다음을 추가해 줍니다.

OPTIONS="-4"

위의 설정은 IPv4환경으로만 동작하게 하는 옵션입니다. 반대로 -6로 설정할 경우 IPv6로만 동작합니다. 서버를 재구동하고 로그를 확인해 보면 스팸같이 쌓이던 로그가 더이상 쌓이지 않는것을 확인할 수 있습니다.

$ service named restart

 

[BIND] DNS Round Robin Load Balancing

사업이 번창하여 서버를 증설해야 하는 상황이지만 L4 스위치와 같은 로드밸런싱 장비가 부담이 된다면?

정말 저렴하고도 간단하게 로드밸런싱을 구현하는 방법이 있습니다.

사실 로드밸런싱이라고 부르긴 좀 엄하지만 그래도 접속하는 사용자들을 분산시키는 효과는 분명히 있습니다.

Round Robin 방식을 이용한 로드 밸런싱 방법이 그것인데요. DNS를 이용하여 손쉽게 구현할 수 있습니다.

Round Robin 방식이란 서버가 A, B, C 3대가 있다고 하면 첫번째 요청에는 A에 연결하여 주고 두번째 요청은 B에 연결하여 주고 세번째 요청은 C에 연결하여 주고 마지막으로 또다시 요청이 오면 A로 연결하여 주는 무한히 반복 연결하여 주는 방식입니다.

L4의 클라이언트 세션을 유지해 가며 처음 연결했던 서버에 지속적으로 연결해 주는 기능은 없지만 간단히 요청과 결과로만 이루어진 페이지들이라면 써볼만 합니다.

BIND의 Zone 파일을 다음과 같이 간단히 수정하면 구현할 수 있습니다.

[code]; zone file fragment
        IN  MX  10  mail.example.com.
….
mail IN  A       192.168.0.4
        IN  A       192.168.0.5
        IN  A       192.168.0.6[/code]
설정 후에 확인을 해보면 다음과 같은 결과를 볼 수 있습니다.
[code]C:\>nslookup mail.example.com


*** Default servers are not available
Server:  UnKnown
Address:  168.126.63.1


Non-authoritative answer:
Name:    mail.example.com
Addresses:  192.168.0.4, 192.168.0.5, 192.168.0.6[/code]


Addresses의 서버들의 순서가 매 요청때 마다 바뀌는걸 알 수 있습니다.