GSLB에 매핑된 VIP 변경 작업 기록

MARCH 19, 2025

이번에 클러스터 이관작업을 하면서 GSLB에 매핑된 VIP 변경도 진행하게 되었는데, 이에 대한 작업 이력을 기록한다.


✔︎ GSLB에 새로운 VIP 추가

  • 새로운 vip 추가시, 트래픽 분배 방식을 ratio 로 설정. (기존 트래픽 방식은 round robin)
  • 한 리전씩 1%로 설정하여 투입.

✔︎ 1% 투입 후 테스트

  • 도메인에 매핑되는 IP를 강제하여 새로 투입된 VIP 연결에 문제가 없는지 확인한다.
  • TLS 또는 Pod까지 플로우에 문제가 없는지 체크

확인방법 1) /etc/hosts 파일 수정

  • 여태 /etc/hosts 파일을 수정해서 curl 테스트를 진행했었는데, 파일 수정 후 curl 명령어를 수행하는게 번거로웠다.
$ curl -v https://digitaldocs.kakao.com -o /dev/null -s

* Host digitaldocs.kakao.com:443 was resolved.
* IPv6: (none)
* IPv4: 121.53.108.101
*   Trying 121.53.108.101:443...
* Connected to digitaldocs.kakao.com (121.53.108.101) port 443

확인방법 2) curl resolve 옵션

  • curl에 —resolve 옵션을 사용하여 ip를 강제 지정하는 방법이 있다.
$ curl -v --resolve digitaldocs.kakao.com:443:211.183.222.21 https://digitaldocs.kakao.com -o /dev/null -s

* Added digitaldocs.kakao.com:443:211.183.222.21 to DNS cache
* Hostname digitaldocs.kakao.com was found in DNS cache
*   Trying 211.183.222.21:443...
* Connected to digitaldocs.kakao.com (211.183.222.21) port 443
  • ip가 잘못 들어가면 커넥션에 실패한다.
$ curl -v --resolve digitaldocs.kakao.com:443:211.183.222.222 https://digitaldocs.kakao.com -o /dev/null -s

* Added digitaldocs.kakao.com:443:211.183.222.222 to DNS cache
* Hostname digitaldocs.kakao.com was found in DNS cache
*   Trying 211.183.222.222:443...
* connect to 211.183.222.222 port 443 from 172.20.40.200 port 50047 failed: Operation timed out
* Failed to connect to digitaldocs.kakao.com port 443 after 75000 ms: Couldn't connect to server
* Closing connection

✔︎ dig 명령어로는 1% 테스트가 잘 안된다?

  • dig(Domain Information Groper)는 DNS(Domain Name System) 정보를 조회하는 명령어로, 주로 도메인의 IP 주소, 네임서버(NS)를 조회하는데 확인한다.
  • /etc/hosts 파일 수정 후, dig 명령어를 이용해도 동일하게 강제 설정된 IP가 조회될 것이라고 생각했지만, 예상과는 다르게 ratio가 높은 IP가 조회되었다.

원인)

  1. /etc/hosts는 로컬에서만 적용됨

    • /etc/hosts는 OS의 로컬 DNS 해석 단계에서만 사용.
    • 하지만 dig는 기본적으로 네트워크상의 DNS 서버를 직접 조회하기 때문에 /etc/hosts의 설정을 반영하지 않음.
  2. dig는 시스템 DNS 설정을 무시하고 네트워크 쿼리를 수행

    • dig example.com을 실행하면, 현재 설정된 DNS 서버(ex. 8.8.8.8 같은 공용 DNS)를 사용해서 실제 네트워크에서 조회한 결과를 반환.
    • 즉, /etc/hosts 설정을 사용하지 않고, 네트워크에 등록된 공식적인 DNS 정보를 가져온다.

작업 기록 블로그