네트워크 트러블슈팅 · /etc/hosts 와 이름 해석 순서 · 실습
/etc/hosts 읽고 쓰고 감사하기
목표
/etc/hosts 를 읽고, 고치고, 감사합니다. 그리고 getent 와 dig 가 왜 다른 답을 하는지 손으로 확인합니다.
왜 중요한가
/etc/hosts 는 nsswitch.conf 의 hosts: 줄에서 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/hosts 에 10.10.0.11 → app1.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::11 → app6.labhub.local 을 추가하고, IPv6 주소만 조회한 결과를 /root/net/getent-v6.txt 로 저장하세요.
6. /etc/hosts 에 web.labhub.local 이라는 같은 이름을 10.10.0.21 과 10.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 에 적으세요.
- 규칙 A: 모든 항목 줄은 IP 와 이름을 합쳐 2개 이상의 필드를 가져야 한다
- 규칙 B: IPv4 주소의 각 옥텟은 0~255 여야 한다
- 규칙 C: 같은 정규 이름(둘째 필드)이 파일 안에서 두 번 이상 나오면 안 된다
8. 7번에서 찾은 문제를 모두 고친 최종본을 /root/net/hosts.final 로 제출하세요. 원래 있던 정상 항목은 그대로 유지하고, db01.labhub.local 은 10.20.30.13, bad.labhub.local 은 10.20.30.18 로 고치고, 이름이 없는 줄은 10.20.30.14 log01.labhub.local log01 로 채우고, 중복된 정규 이름을 가진 줄은 정규 이름을 web01-old.labhub.local 로 바꾸세요.
참고
getent hosts <이름>은 애플리케이션과 같은 경로로,dig +short <이름>은 DNS 서버에만 직접 묻습니다.getent ahostsv6 <이름>으로 IPv6 결과만 볼 수 있습니다.- 줄 번호는
grep -n이나awk '{print NR}'로 셉니다. 주석과 빈 줄도 번호에 포함됩니다. - 흔한 실수 1: 7번에서 같은 IP 가 두 번 나오는 줄을 문제로 세는 경우. 한 IP 에 여러 이름을 붙이는 것은 정상입니다.
- 흔한 실수 2: 2번에서 탭 대신 공백만 써도 동작하지만, 이름을 IP 앞에 쓰면 해석되지 않습니다. 순서는 항상 IP 가 먼저입니다.
단계 8개
- 루프백 항목 확인
- 항목 추가하고 해석 확인
- 별칭으로도 풀리는지 확인
- 해석 순서 확인
- IPv6 항목 다루기
- 한 이름에 여러 IP
- 망가진 hosts 감사
- 정리된 최종본 제출