본문 바로가기
서버/Linux

리눅스 도메인(DNS)설정 방법

by redbear0077 2022. 8. 6.
반응형

리눅스 도메인(DNS)설정 방법

가능하면 자주해주자

systemctl restart network

1. bind설치

yum -y install bind

2. 포트 열기

firewall-cmd --permanent --add-port=53/tcp    // 53번 포트 tcp로 추가

firewall-cmd --permanent --add-port=53/udp    // 53번 포트 udp로 추가

firewall-cmd --permanent --add-service=dns    // dns서비스 추가

firewall-cmd --reload

setenforce 0

 

3. named.conf파일 수정

vi /etc/named.conf

    - 변경

4. rfc1912.zones 수정

vi /etc/named.rfc1912.zones

    -최하단에 내용을 추가한다.(최하단 바로가기 shift+g)

정방향 설정
// 추가하고싶은 도메인 이름
zone "test.com" IN {
// master(주서버), slave(보조서버), 캐시서버 가 있다.
	type master;
// /var/named 에 생성할 파일 이름 꼭 /var/named에 생성해야한다.
	file "test.com.zone";
// 업데이트 허가 요청
	allow-update { none; };
// 파일 변경 허가 요청
	allow-transfer { none; };

};

역방향 설정
// 본이 IP를거꾸로 넣는다.(예 111.222.333.444 > 444.333.222.111) 마지막 자리는 생략한다.
zone "333.222.111.in-addr.arpa" IN {
	type master;
// /var/named 에 생성할 파일 이름 꼭 /var/named에 생성해야한다.
	file "ipname.zone";

	allow-update { none; };

	allow-transfer { none; };

};

    - 수정 내용 이상 확인

named-checkconf /etc/named.conf

 

    - 정상일경우 

구조

DNS설정시 /etc/named에 있는 파일이 이상있는지 확인해주는 명령어

named-checkconf /검사할파일 경로/검사할 파일

 

5. zone파일 생성

경로 이동
# cd /var/named 

zone파일 생성(/etc/named.rfc1912.zones)경로에서 만든 file이름과 동일하게 생성
named.localhost, named.loopback를 복사하여 vincoding.ml.zone, ipname.zone를 만든다.

정방향 파일
# cp named.localhost test.ga.zone
역방향 파일
# cp named.loopback ipname.zone

    - zone파일 수정(test.ga.zone)

# vi test.ga.zone

    - 수정할 내용

$TTL 1D
// 사용할 IP. 꼭 아이피 뒤에 .을 넣어야한다.
@	IN SOA test.com.	root(
					0 ; serial
					1D ; refresh
					1H ; retry
					1W ; expire
					3H ) ; minimum
	IN NS	www.test.com.
	IN A	111.222.333.444
www	IN A	111.222.333.444

    - zone파일 수정(ipname.zone)

# vi ipname.zone

    - 수정할 내용

$TTL 1D
// 사용할 도메인 주소
@	IN SOA test.com.	root(
					0 ; serial
					1D ; refresh
					1H ; retry
					1W ; expire
					3H ) ; minimum
	IN NS	www.test.com.
444	IN PTR	test.com.
444	IN PTR	www.test.com.

※ 444는 사용할 IP의 마지막 자리이다.(IP예 : 111.222.333.444)

 

설명

- TTL (Time To Live) : 데이터가 유지될 수 있는 시간(1일)

- 첫째줄 @ , study.com. : 이 도메인을 기본 도메인으로 사용하겠다는 선언

- IN : 인터넷

- SOA (Start Of Authority) : 인증 시작

- root : 관리자 메일주소

- serial : 데이터 버전 수정 횟수

- refresh : 2차 nameserver가 1차 nameserver 재조회하는 시간 (새로고침)

- retry : refresh가 안될 경우 다시 재조회하는 시간 (재시도)

- expire : retry나 1차 nameserver에 데이터가 수정 및 삭제 되었을 경우 해당 정보 삭제하는 시간 (만료기간)

- minimum : 최소 유지 기간

- NS : nameserver

- A : 호스트 레코드(도메인을 IP로 연결, 쉽게 IP주소를 말함)

- AAAA : IPv6용

- PTR : A의 역방향 레코드(A레코드 하나당 똑같이 하나씩 존재해야함)

 

6. zone파일 소유 권한 변경 및 파일검사

# chown root:named test.com.zone
# chown root:named ipname.zone

    - 수정 내용 정상확인

# named-checkconf /etc/named.conf

    - 정상일경우 

    - zone파일 검사

# named-checkzone test.com /var/named/test.com.zone

# named-checkzone ipname.zone /var/named/ipname.zone

    - 정상일경우

구조

zone파일을 이상있는지 확인해주는 명령어

named-checkzone /검사할파일 경로/검사할 파일

 


7. named 재시작

# systemctl restart named

8. 호스트 IP로 DNS설정

    - 1번 DNS에 접속을 못할경우 사용중인 통신사DNS를 사용

# vi /etc/resolv.conf

    - 수정할내용

# Generated by NetworkManager
nameserver 사용할 IP	<<<<< 수정
nameserver 168.126.63.1 //(kt DNS)

 

9.nslookup 를 이용하여 정상적으로 연결하는지 확인

    - nslookup 설치 방법

# yum -y install bind-utils

    - 사용방법

# nslookup

    - 정상작동

이부분은 설정하고 끝나고 오류난다면 일단해보자

넷트워크 시작오류시 ifcfg-ens3를 확인해보자

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

수정내용

NAME="ens3"
DEVICE="ens3"
ONBOOT=yes
NETBOOT=yes
UUID="7d7a6121-a68b-4722-83b0-0c1359a567e0"
IPV6INIT=no
BOOTPROTO=static		//dhcp > static
TYPE=Ethernet
NM_CONTROLLED=no
IPADDR=152.69.224.124	//내아이피
NETMASK=255.255.255.0	
GATEWAY=10.0.0.1
DNS1=152.69.224.124		//내아이피
DNS2=169.254.169.254	//서버가 사용중이 인터넷 아이피

resolv.conf 내용 수정

vi /etc/resolv.conf

수정 내용

nameserver 에 내가 사용중인 아이피를 적어준다.

빠른설정

1. [root@main12 named]# yum -y install bind

2. [root@main12 named]# firewall-cmd --permanent --add-port=53/tcp
3. [root@main12 named]# firewall-cmd --permanent --add-port=53/udp
4. [root@main12 named]# firewall-cmd --permanent --add-service=dns
4. [root@main12 named]# firewall-cmd --reload
4. [root@main12 named]# setenforce 0

5. [root@main12 named]# vi /etc/named.conf
	13번줄 listen-on port 53 { any; };
    14번줄 listen-on-v6 port 53 { none; };
    21번줄 allow-query     { any; };
    
6. [root@main12 named]# vi /etc/named.rfc1912.zones
최하단 추가
zone "vincoding.ml" IN {
	type master;
	file "vincoding.ml.zone";
	allow-update { none; };
	allow-transfer { none; };
};

zone "84.24.144.in-addr.arpa" IN {
	type master;
	file "ipname.zone";
	allow-update { none; };
	allow-transfer { none; };
};

7. [root@main12 named]# named-checkconf /etc/named.conf

8. [root@main12 named]# cd /var/named 

9. [root@main12 named]# cp named.localhost vincoding.ml.zone

10. [root@main12 named]# cp named.loopback ipname.zone

11. [root@main12 named]# vi vincoding.ml.zone
추가
$TTL 1D
@	IN SOA vincoding.ml.	root(
					0 ; serial
					1D ; refresh
					1H ; retry
					1W ; expire
					3H ) ; minimum
	IN NS	www.vincoding.ml.
	IN A	144.24.84.112
www	IN A	144.24.84.112

12. [root@main12 named]# vi ipname.zone
추가
$TTL 1D
@	IN SOA vincoding.ml.	root(
					0 ; serial
					1D ; refresh
					1H ; retry
					1W ; expire
					3H ) ; minimum
	IN NS	www.vincoding.ml.
112	IN PTR	vincoding.ml.
112	IN PTR	www.vincoding.ml.

13. [root@main12 named]# chown root:named vincoding.ml.zone
14. [root@main12 named]# chown root:named ipname.zone

15. [root@main12 named]# named-checkzone vincoding.ml /var/named/vincoding.ml.zone

16. [root@main12 named]# named-checkzone ipname.zone /var/named/ipname.zone

17. [root@main12 named]# systemctl restart named

18. [root@main12 named]# vi /etc/resolv.conf
수정
# Generated by NetworkManager
nameserver 사용할 IP	<<<<< 수정
nameserver 168.126.63.1 //kt DNS

19. [root@main12 named]# yum -y install bind-utils

20. [root@main12 named]# nslookup

 

참조사이트 (https://it-serial.tistory.com/entry/Linux-CentOS-7-DNS-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%84%A4%EC%A0%95)

반응형