[네트워크] 7-3. GSLB와 DHCP
by 콰이엇고재성, 이상훈 저자님의 “IT 엔지니어를 위한 네트워크 입문” 책을 학습하고 정리한 글입니다.
3. GSLB (Global Service Load Balancing)
📌 DNS 로드밸런싱
도메인 질의에 따라 응답받는 IP 주소를 나누어 로드밸런싱 하는 방법
DNS 서버는 각 레코드에 대한 서비스 체크가 이루어지지 않고 설정된 값에 따라 동작하여 서비스 가용성 향상 방법으로는 부적합하다. GSLB는 DNS의 이런 문제점을 해결해 도메인을 이용한 로드밸런싱 구현을 돕는다. GSLB는 DNS와 동일하게 도메인 질의에 응답해주는 역할과 동시에 로드 밸런서처럼 등록된 도메인에 연결된 서비스가 정상적인지 헬스 체크를 수행한다. 이런 이유로 GSLB를 "인텔리전스 DNS"라고도 부른다.
3-1. GSLB 동작 방식
- 상기 예시에서 GSLB는 현재 설정된 분산 방식에 따라 서울 또는 부산 데이터 센터의 IP 주소 값을 DNS에 응답한다. (모두 정상적인 서비스가 가능한 상태라면 사전에 정의된 알고리즘을 통해 어느 데이터 센터의 IP 주소를 응답할지 결정한다)
3-2. GSLB 구성 방식
✍🏻 GSLB를 사용한 도메인 설정 방법
- 도메인 자체를 GSLB로 사용
- 해당 도메인에 속하는 모든 레코드 설정을 GSLB 장비에서 관리한다.
- 즉, GSLB가 DNS 서버 역할을 하는 경우 도메인의 레코드 중 헬스 체크가 불필요한 경우 뿐만 아니라, 모든 레코드에 대한 질의가 GSLB를 통해 이루어져 GSLB에 부하가 발생한다.
- 도메인 내의 특정 레코드만 GSLB 사용
- GSLB를 사용하려는 레코드에 대해서만 GSLB로 처리하도록 설정
- GSLB 적용이 불필요한 경우가 많아 도메인 내의 특정 레코드에 대해서만 GSLB로 처리를 이관하는 방식 이용
- 별칭(Alias) 사용 방법과 위임(Delegation) 사용 방법이 있다.
✍🏻 별칭(CNAME)을 이용해 GSLB를 사용하는 방법
- 실제 도메인과 다른 별도의 도메인 레코드로 GSLB에 등록한다.
- 일반적으로 외부 CDN을 사용하거나 회사 내부에 GSLB를 사용해야 할 도메인이 많은 경우 한꺼번에 관리하기 위해 사용한다.
- CNAME 값으로 등록되는 FQDN이 DSLB가 네임 서버로 등록된 도메인을 사용해 GSLB로 재질의하게 만드는 것이다.
🤔 별칭을 사용한 GSLB 예시
예시는 순차적으로 경로를 따라가다보면 이해가 되는 순간이 온다
- 사용자가 web.zigispace.net을 LDNS(1.1.1.1)로 질의
- LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차적으로 질의
- zigispace.net을 관리하는 DNS(2.2.2.2)에 web.zigispace.net의 주소 질의
- DNS 서버는 LDNS에게 별칭으로 web.zigispace.net은 web.zigispace.gslb.net이 관리하고 있다는 응답을 수신
- 다시 LDNS(1.1.1.1)는 gslb.net을 관리하는 NS 서버를 root부터 순차 질의
- LDNS(1.1.1.1)는 web.zigispace.gslb.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에 web.zigispace.gslb.net에 대해 질의
- GSLB(3.3.3.3)는 LDNS(1.1.1.1)에 web.zigispace.gslb.net에 IP(10.10.10.10)를 응답
- LDNS(1.1.1.1)는 해당 결과값(10.10.10.10)을 사용자에게 최종 응답
✍🏻 NS 레코드를 이용해 위임하여 GSLB를 사용하는 방법
- DNS에서 특정 FQDN 설정을 NS 레코드로 설정하면 해당 FQDN 값을 NS 레코드 값의 네임 서버로 재질의한다.
- NS 레코드를 이용한 위임으로 재질의하는 경우, 최초 요청한 FQDN을 그대로 재질의하므로 GSLB에서 관리하는 도메인은 사용자가 최초 호출하는 동일한 FQDN이 된다.
🤔 NS 레코드를 사용한 GSLB 예시
- 사용자가 web.zigispace.net을 LDNS(1.1.1.1)로 질의
- LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차적으로 질의
- zigispace.net을 관리하는 DNS(2.2.2.2)에 web.zigispace.net의 주소 질의
- DNS(2.2.2.2)는 GSLB(3.3.3.3)가 web.zigispace.net을 관리한다고 응답
- 다시 LDNS(1.1.1.1)는 web.zigispace.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에게 web.zigispace.net을 질의
- GSLB(3.3.3.3)는 LDNS(1.1.1.1)에 web.zigispace.net의 IP 응답
- LDNS(1.1.1.1)는 해당 결과 값을 사용자에게 최종 응답
3-3. GSLB 분산 방식
GSLB를 이용해 서비스를 분산하면 다음과 같은 주요 목적을 달성할 수 있다.
- 서비스 제공의 가능 여부를 체크해 트래픽 분산
- 지리적으로 멀리 떨어진 다른 데이터 센터에 트래픽 분산
- 지역적으로 가까운 서비스에 접속해 더 빠른 서비스 제공이 가능하도록 분산
서비스 헬스 체크를 통한 서비스 안정적 제공 외에 서로 다른 사이트로 서비스를 분산시키는 것이 GSLB의 중요한 역할이다.
GSLB에서 지원되는 분산 방식은 대부분 다음 두 가지 헬스 체크 모니터링 요소를 지원하고 있다.
- 서비스 응답 시간/지연 (RTT/Letency)
서비스 요청에 대한 응답 속도와 지연 정도를 확인하여 분산 처리하는 역할 - IP에 대한 지리(Geography) 정보
서비스 제공이 가능한 각 사이트의 IP 주소에 대한 Geo 값을 확인해 가까운 사이트로 서비스 분산 처리
두 분산 방법은 다르지만 서비스가 가능한 사이트로 트래픽을 분산하고, 신속한 서비스를 제공하는 사이트로 접속하는 것을 유도하는 것이 궁극적인 목표다.
4. DHCP (Dynamic Host Configuration Protocol)
네트워크와 통신하려면 물리적 네트워크 구성, 네트워크 정보(IP 주소, 서브넷 마스크, 게이트웨이)와 DNS 주소 설정이 필요하다.
- 정적 할당 : 수동으로 IP와 네트워크 정보를 직접 설정하는 것
- 동적 할당 : 자동으로 IP와 네트워크 정보를 설정하는 것
최근에는 기본적으로 동적 할당 방식을 기본으로 사용한다. 이렇게 IP를 동적으로 할당하는 DHCP 프로토콜을 활용하여 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당 받아 사용할 수 있다.
- 별도의 IP 설정 작업이 필요없어 사용자와 관리자 모두 편리하게 네트워크에 접속할 수 있다.
- 사용하지 않는 IP 정보는 회수되어 사용하는 경우에만 재할당되어 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용하다.
- IP가 자동으로 관리되어 직접 입력하며 발생하는 설정 정보 오류나 중복 IP 할당 문제를 예방할 수 있다.
4-1. DHCP 프로토콜
DHCP는 BOOTP(BOOTstrap Protocol) 프로토콜을 기반으로 하여 유사하지만 몇 가지 기능이 추가 확장된 프로토콜이다.
- 두 프로토콜 사이에는 호환성이 있어 서비스 포트가 같고, 각 클라이언트가 서로 다른 서버를 사용해 정보를 수신할 수도 있다.
- DHCP는 서버와 클라이언트로 동작하며 클라이언트 서비스 포트는 68(bootpc), 서버의 서비스 포트는 67(bootps)이다.
4-2. DHCP 동작 방식
✍🏻 호스트가 DHCP 서버로 IP를 할당받는 과정
- DHCP Discover : DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트 전송
- DHCP Offer : DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당할 IP 주소와 서브넷, 게이트웨이, DNS 정보, Lease Time 등의 정보를 포함한 DHCP 메시지를 클라이언트로 전송
- DHCP Request : DHCP 서버로부터 제안 받은 IP 주소(Request IP)와 DHCP 서버 정보(DHCP Server Identifier)를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송
- DHCP Acknowledgement : DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상 수신했다는 응답을 전송
위 과정으로 DHCP 서버를 통해 신규 IP를 할당받는데, 이는 DHCP IP Pool에서 클라이언트에 정해진 시간동안 IP를 사용할 수 있도록 할당하는 것이므로 이를 임대 과정(Lease)이라고 한다. DHCP 서버는 클라이언트에 할당할 IP 정보와 함께 임대 시간을 지정해 전달하여, 만료되면 클라이언트에 할당된 IP를 다시 IP Pool로 회수한다. 이에 따라 클라이언트는 다시 DHCP Discover 과정을 거쳐 재할당 받아야 한다.
실제로는 매번 할당받은 IP 주소를 반환하고 새로 할당을 요청하는 반복하지 않고, 갱신 과정(Renewal)을 거쳐 사용 중인 동안 IP 주소가 IP 풀에 반환하지 않고 계속 사용하게 된다.
✍🏻 DHCP 갱신 흐름
- DHCP에서 IP를 할당받은 후 임대 시간의 50%가 지나면 DHCP 갱신 과정을 수행
- 이미 DHCP 서버 정보와 사용 중인 IP 정보가 있어 DHCP Discover / DHCP Offer 과정을 생략하게 된다.
- 이처럼 갱신 과정은 초기 임대 과정과 비교하면 짧고, 유니캐스트로 진행하여 불필요한 브로드캐스트가 발생하지 않는다.
4-3. DHCP 릴레이
DHCP 서버에서 IP 주소를 할당받기 위해 브로드캐스트를 사용하게 되는데, 이는 동일 네트워크에서만 전송하므로 DHCP를 사용하려면 각 네트워크마다 DHCP 서버가 있어야 한다.
네트워크 영역이 여러 개인 환경에서 DHCP를 이용한다면 DHCP 서버 배치, 이중화와 관련된 다양한 사항을 고려해야 한다. 네트워크가 여러 개로 나뉜 환경에서는 DHCP의 브로드캐스트가 전달되지 않으므로 각 네트워크 환경에서 DHCP 서버를 개별적으로 구축해야 한다.
하지만 DHCP 릴레이 에이전트(Relay Agent) 기능을 사용하면 DHCP 서버 한 대로 여러 네트워크 대역에서 IP 풀을 관리할 수 있다. DHCP 릴레이 에이전트가 DHCP 클라이언트와 DHCP 서버가 서로 다른 대역에 있는 경우, DHCP 패킷을 중간에서 중계하는 역할을 수행한다. 이게 가능한 이유는 브로드캐스트로 전달하는 DHCP 패킷을 동일 네트워크 대역의 DHCP 릴레이 에이전트가 수신하면 DHCP 서버로 갈 수 있도록 유니캐스트로 변환해주는 역할을 한다. 즉, 릴레이 에이전트를 이용하면 DHCP 서버를 네트워크마다 구성하지 않고 중앙 DHCP 만으로도 여러 네트워크 DHCP 환경을 운영할 수 있다.
참고자료
- 책 - IT 엔지니어를 위한 네트워크 입문 (고재성/이상훈, 2020년 10월)
'컴퓨터과학 > 네트워크' 카테고리의 다른 글
[네트워크] 12. 로드 밸런서 (0) | 2024.11.05 |
---|---|
[네트워크] 7-2. DNS (0) | 2024.10.29 |
[네트워크] 7-1. NAT/PAT (0) | 2024.10.29 |
[네트워크] 6. 로드밸런서/방화벽: 4계층 장비 (0) | 2024.10.24 |
[네트워크] 5. 라우터/L3 스위치: 3계층 장비 (0) | 2024.10.24 |
블로그의 정보
콰이엇의 개발기록
콰이엇