본문 바로가기
AWS Cloud School 8기/서버가상화_클라우드 이미지

DNS/ 호스트네임 변경하는 방법

by YUNZEE 2025. 1. 22.
728x90

DNS(Domain Name System)

- 도메인 이름을 IP주소로 변환해 주는 시스템임

- 우리가 www.google.com 같은 도메인을 입력하면, DNS가 알아서 "8.8.8.8" 같은 IP 주소로 변환해서 서버에 연결해 줌

 

- 통신을 한다는 것은 물리적인 주소가 필요함

- 영문주소에 대한 ip를 "안내" 해주는 시스템

- 53 port, tcp + udp 둘 다 사용

- 일반적으로 왼쪽에서 오른쪽으로 읽어 내려가지만, 도메인 네임의 경우 오른쪽에서 왼쪽으로 읽어 내려감

- 즉, 오른쪽으로 갈수록 큰 개념

 

- DNS가 왜 필요할까?

-> IP주소를 외우기 어렵기 때문에 이름으로 안내해 줌

-> IP주소가 변경될 수도 있음 

-> 여러 개의 서버를 하나의 도메인으로 관리 가능

 

www는 naver.com의 '하위' 도메인

 

DNS 서버 구축

 

VM이름 - dns (vmnet8 대역)

2 core, 2GB, 20GB, vmnet8 대역

 

IP - 211.183.3.53

GW - 211.183.3.2

DNS - 8.8.8.8

 

호스트네임 변경하는 방법

[root@localhost ~]# hostnamectl set-hostname dns

 

방화벽 off

[root@dns ~]# systemctl stop firewalld

[root@dns ~]# systemctl disable firewalld

 

셀리눅스 off

[root@dns ~]# vi /etc/selinux/config

 

yum install -y bind bind-utils

bind : DNS서버 구성 패키지/ DNS 서버를 실행하는 프로그램

-> 내 컴퓨터를 DNS서버로 만들기 위한 프로그램임

bind-utils: client 역할(query) - nslookup(query) - dig(자세한 정보)

->  DNS 서버를 관리하거나 테스트하는 데 필요한 추가 도구들이 포함되어 있음

 

- 패키지 여러 개 설치했을 땐 명령을 한번 더 쳐서 already가 갯수만큼 있는지 확인 

1. /etc/named.conf 수정을 통해 기능적인(수신포트, 허용할 대상) 설정

-> 리눅스에서 DNS서버 설정 파일을 수정하는 과

[root@dns ~]# vi /etc/named.conf

2. 영역(zone) 생성

- 내가 만약 naver.com의 도메인을 관리하는 사람이라면, 내 영역은 naver.com 일 것이고, 내 영역에 다양한 하위 도메인들이 있을 것(www.naver.com)

 

[root@dns ~]# vi /etc/named.rfc1912.zones

zone은 생성할 이름

- zone 파일 - rapa.com의 하위 도메인 정보가 담긴 파일

- 아직 미생성

- 누군가 나에게 rapa.com에 대한 쿼리를 했을 때 rapa.com.db라는 파일의 내용을 토대로 안내해 줄 예정. 우리는 내가 생성한 영역에 대한 안내파일인 /var/named/rapa.com.db을 만들 예정

 

 

3. 존(zone) 파일 생성.

위에서 생성한 영역인 rapa.com에 대한 영역파일인 rapa.com.db를 만들어주자

[root@dns ~]# vi /var/named/rapa.com.db

 

$TTL 3H 

OA     @       root # DNS서버 관리자(
                                                0       ; serial #존 파일 버전
                                                1D      ; refresh #존 정보 갱신 시간
                                                1H      ; retry #실패 시 재시도

                                                1W      ; expire #만료
                                                3H )    ; minimum #존 정보 없는 경우

                IN      NS      @
# IN 인터넷을 의미함

# NS 네임 서버

# @ 자신
                IN      A       211.183.3.53 #DNS와 동일한 IP주소임

영역의 최상위 도메인 레코드는 꼭 만들어줘야 됨

-> www.rapa.com  -> 211.183.3.80

-> 원하는 하위도메인에 대한 레코드(하위도메인에 대한 주소를 매칭) 생성

-> 누군가 www.rapa.com을 을 물어보면 211.183.3.80이라는 IP를 안내

[root@dns ~]# systemctl restart named

[root@dns ~]# systemctl enable named

 

nslook => query

server => DNS서버 => 내가 현재 안내받고 있는 서버

 

-> 211.183.4.53이라는 dns서버를 구축했기 때문에, 이 서버가 잘 동적 하는지 테스트해보고 싶다면, 내 네임서버를 내가 안내받을 서버로 변경해 줘야 됨.

 

vi /etc/sysconfig/network-scripts/ifcfg-ens32

-> 내가 안내받고 싶은 서버(dns서버)

-> 네트워크 스크립트 파일에서 내가 안내받고 싶은 서버를 수정

-> 그리고 꼭  restart

-> 네트워크 재시작 후 내가 안내받을 서버가 바뀐 걸 확인할 수 있음(resolv.conf) 

 

이제 외부 client에서 확인

-> DNS 서버가 8.8.8.8로 되어있기 때문에 변경해 줘야 됨

 

yum install -y bind-utils

-> nolookup 명령이 있는 bind-utils 패키지를 설치

 

vi /etc/sysconfig/network-scripts/ifcfg-ens32

변경 후 restart

-> 내가 구축한 DNS서버를 네임서버로 지정

오늘의 오류 발생/ 해결 방안

-> 어딘가 running 하고 있다는 요청이 발생

yum -y install net-tools 했을 때

밑에 Another app is currently~~ pid 1379라는  뜻은 이미 1379라는 곳에서 실행되고 있다는 의미임

그럴 때는 kill -9 1379를 입력하면 강제로 아웃됨

재설치했을 때 이미 설치된 상태라고 뜸

(maybe 그래서 오류가 생겼던 것 같음)

-> ~~. service 오류가 발생한다면

systemctl status ~~ 해서 확인해 볼 수 있음

1. OS코드 변경해 줬는지 확인

2. 명칭 똑바로, IP 똑바로 적었는지 확인

728x90