LabHub

네트워크 트러블슈팅 · /etc/hosts 와 이름 해석 순서 · 실습

/etc/hosts 읽고 쓰고 감사하기

LabHub 에서 이어서 보기

목표

/etc/hosts 를 읽고, 고치고, 감사합니다. 그리고 getentdig 가 왜 다른 답을 하는지 손으로 확인합니다.

왜 중요한가

/etc/hostsnsswitch.confhosts: 줄에서 files 가 앞에 있는 한 DNS 보다 먼저 봅니다. 그래서 hosts 에 잘못된 줄이 하나 남아 있으면 DNS 를 아무리 고쳐도 애플리케이션은 계속 옛 주소로 갑니다. 더 나쁜 것은 이 사고가 DNS 오류의 얼굴을 하지 않는다는 점입니다 — 이름은 멀쩡히 풀리고, 증상은 connection refused 나 timeout 으로 나타납니다. dig 는 이 파일을 전혀 보지 않기 때문에 "dig 는 정상인데 애플리케이션만 실패" 라는 미궁이 만들어집니다.

단계

1. /root/net 디렉터리를 만들고, /etc/hosts 에서 루프백 주소를 가진 줄만 골라 /root/net/hosts-loopback.txt 로 저장하세요. IPv4(127. 로 시작)와 IPv6(::1) 양쪽이 모두 들어가야 합니다.
2. /etc/hosts10.10.0.11app1.labhub.local(정규 이름), app1(별칭) 항목을 추가하고, getent hosts app1.labhub.local 의 출력을 /root/net/getent-app1.txt 로 저장하세요.
3. 별칭 app1 로도 같은 IP 가 나오는지 확인해 /root/net/getent-alias.txt 로 저장하세요.
4. /etc/nsswitch.conf 에서 hosts: 로 시작하는 줄을 /root/net/nsswitch-hosts.txt 로 저장하세요.
5. /etc/hosts 에 IPv6 항목 fd00:cafe::11app6.labhub.local 을 추가하고, IPv6 주소만 조회한 결과를 /root/net/getent-v6.txt 로 저장하세요.
6. /etc/hostsweb.labhub.local 이라는 같은 이름10.10.0.2110.10.0.22 두 IP 에 각각 한 줄씩 추가하고, getent ahosts web.labhub.local 의 출력을 /root/net/getent-multi.txt 로 저장하세요.
7. /opt/fixtures/nt-hosts/hosts.broken 을 감사하세요. 아래 세 규칙을 어긴 줄 번호만 오름차순으로 한 줄에 하나씩 /root/net/hosts-audit.txt 에 적으세요.

참고

단계 8개

  1. 루프백 항목 확인
  2. 항목 추가하고 해석 확인
  3. 별칭으로도 풀리는지 확인
  4. 해석 순서 확인
  5. IPv6 항목 다루기
  6. 한 이름에 여러 IP
  7. 망가진 hosts 감사
  8. 정리된 최종본 제출