← 문제 라이브러리
Network 입문 NETWORK-027 · 13분

설정의 짧은 호스트 이름 db가 어느 날부터 엉뚱한 서버로 붙음

주문 서비스는 설정 파일에 DB 주소를 짧게 db라고만 적어 두고 몇 년째 문제없이 써 왔습니다.

검수된 문제무료
시나리오

주문 서비스는 설정 파일에 DB 주소를 짧게 db라고만 적어 두고 몇 년째 문제없이 써 왔습니다. 그런데 어제 오후부터 주문 서비스가 DB 인증 실패를 내며 주문 저장이 모두 실패합니다. DB 서버와 계정에는 아무 변경이 없었습니다. 어제 다른 팀이 corp.acme.dev 영역에 테스트용 DB를 만들고 이름을 db로 등록했다는 공지가 있었습니다. 담당자는 DB 계정 비밀번호가 바뀐 것 같다며 비밀번호를 초기화하려고 합니다. 주문 서비스 외에도 몇몇 서비스가 설정에 db를 쓰는 것으로 알려져 있습니다.

단서
주문 서비스 서버
$ cat /etc/resolv.conf
search corp.acme.dev acme.dev
nameserver 10.0.0.12

$ getent hosts db
10.30.1.5       db.corp.acme.dev
$ getent hosts db.acme.dev
10.20.1.5       db.acme.dev
주문 서비스 로그
ERROR db connect failed: host=db (10.30.1.5): FATAL: password authentication failed for user "orders"

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • 짧은 이름이 검색 도메인(search)에 따라 어떻게 펼쳐지는지
  • 접속 대상 IP가 원래 서버가 맞는지
점검 체크리스트
  1. resolv.conf 의 search 순서
  2. getent hosts <짧은 이름> 으로 실제로 풀리는 이름·IP
  3. 로그의 접속 대상 IP와 원래 DB 서버 IP 비교