반응형
DNS 가중치란?
DNS서버는 로드밸런서처럼 하나의 도메인에 여러 주소를 매핑시킬 수 있습니다. 매핑된 주소가 여러 개이면 클라이언트에게 DNS응답을 줄 때 어떤 주소를 줄지 정책을 정해야 합니다. 이 정책을 몇대몇 비율로 정하며, 비율을 정하는 것을 가중치(Weight)라고 합니다. Route53 등 알려진 DNS서버는 가중치를 모두 지원합니다.
DNS 가중치 테스트 하는 방법
DNS 가중치가 설정되어 있으면 같은 DNS요청이더라도 다른 DNS응답을 받습니다. 예를 들어 google.com의 DNS응답을 보면 같은 응답을 받거나 다른 응답을 받습니다. (google.com은 가중치개념과 거리가 멀지만 쉽게 설명하기 위해 예를 들었습니다.)
다른 응답을 받는 것을 핵심 포인트로 설정하여 쉘 스크립트로 응답비율을 확인할 수 있습니다.
#!/bin/bash
domain="테스트 도메인"
# remove file contents
echo > dig_result.txt
for i in {1..100}
do
result=$(dig $domain +short)
echo -e $result >> dig_result.txt
done
# print Route53 weight
awk '{print $0}' dig_result.txt | tr ' ' '\n' | sort | uniq -c
위 쉘 스크립트에서 domain변수에 테스트할 도메인을 입력하면 됩니다. 예를 들어 google.com을 테스트 도메인으로 설정할 수 있습니다.
domain=google.com
쉘 스크립트를 실행하면 아래 그림처럼 결과가 나옵니다. 왼쪽 숫자가 가중에 해당합니다.
반응형