본문 바로가기
TWIL

[TWIL] DNS와 /etc/hosts

by amungstudy 2025. 4. 13.

사이트에서 DNS 서버 정보를 변경해서 /etc/resolv.conf 파일이 변경이 되었는데,

서비스에 영향도가 있냐는 문의가 왔었습니다.

 

오늘은 DNS 서버는 무엇이고, /etc/resolv.conf 파일은 무엇인지.

hostName 설정하는 /etc/hosts 파일은 무엇인지

정리해보는 시간을 가져보겠습니다. 

 

1. DNS 서버

네임서버라고도 불리는 DNS(Domain Name System)서버는 도메인을 IP주소로 변환시켜서 

사용자가 원하는 정보를 가진 컴퓨터로 찾아가게 해주는 역할을 수행합니다.

 

예를 들면,

1. 웹 브라우저에 도메인을 입력하면 컴퓨터는 해당 IP 주소를 얻기 위해 DNS 서버에 요청을 보냅니다

2. DNS서버는 데이터베이스를 검색하거나 다른 DNS서버에 연결하여 도메인과 연결된 IP주소를 찾습니다

3. IP 주소를 찾으면 컴퓨터로 반환되어 요청된 서비스에 연결할 수 있습니다.

 

2. 실제 IP 주소를 얻는 내부 흐름

출처 : 이것이 리눅스다

 

실제 내부에서는 아래와 같은 흐름으로 이루어지게 됩니다

1. /etc/hosts 파일에 먼저 해당하는 도메인과 IP 정보가 있는지 확인

DNS가 없던 옛날에는 모든 서버의 /etc/hosts 파일에 domain과 IP주소를 직접 등록하여 사용했다고 합니다.

지금도 원하는 IP와 도메인 명을 등록해두고 사용하면, DNS요청을 네임서버에 보내지않고 바로연결합니다.

 

이중화 구성에서는 보통 고정IP를 사용해서 서로 통신하는데,

이렇게 도메인 이름으로 매핑해두면 코드나 설정 파일에서 IP가 아닌 도메인으로 통신할 수 있어 유지보수성이 좋습니다.

그리고 DNS서버에 연결이 안되어도 안정적으로 운영 가능합니다.

$ cat /etc/hosts

127.0.0.1   localhost
::1         localhost

127.0.1.1   your-hostname.localdomain your-hostname

# Custom mappings 이중화 구성
192.168.10.100   ha-master
192.168.10.101   ha-backup

 

2. /etc/resolv.conf 에서 네임서버 확인

/etc/hosts 파일에 해당하는 도메인이 없는 경우 네임서버를 이용해야하는데요, 그 네임서버를 찾기 위해서

/etc/resolv.conf 파일을 봅니다. 

이는 도메인 이름을 IP 주소로 바꿀 때 사용할 DNS 서버의 주소를 정의해 둔 설정 파일입니다.

$cat /etc/resolv.conf

nameserver 8.8.8.8 // 구글 공개 DNS서버
nameserver 8.8.4.4

 

3. 네임 서버에 질의한다

도메인을 네임 서버에 질의하여 IP주소를 반환받아 서비스 연결을 한다

 

 

우리는 DNS 설정이 정상적인지 nslookup 명령으로 간단하게 테스트 해볼 수 있습니다.

nslookup [domain]

 

 

nslookup [도메인명]를 입력하면 원하는 도메인의 ip정보가 출력됩니다

nslookup 성공 시 IP 주소를 한 개 이상 반환


 

만약 네임서버를 변경하려면 

 

NIC 정보를 담고 있는 /etc/sysconfig/network-script/ifcfg-enp0sx 파일에서 DNS 항목의 설정을 변경하거나

resolv.conf 파일에서 직접 변경하는 방법이 있습니다. 

 

사용하는 어댑터의 /etc/sysconfig/network-script/ifcfg-enp0sx 파일을 편집해서 DNS 서버 정보 변경 후

systemctl restart network // 변경 정보 반영 

// DNS 설정 테스트 
nslookup [DOMAIN]

 

 

 

참고 : https://youtu.be/csoVpxPJuR8?si=DgZidVjiJHdRFDOf

https://wikidocs.net/9668