본문 바로가기

리눅스/CentOs (Rocky 8 )

[리눅스/CentOS] DNS서버 구축

(+)vi 편집기 

  • 맨 밑으로 : G 
  • 문장의 맨 끝으로 : $ 

 

DNS 관련 주요 파일 및 디렉터리

메인 설정 파일 /etc/named.conf
conf - zone 연결 /etc/named.rfc1912.zones
zone 파일 디렉터리 /var/named 




 

DNS 서버 구축 과정 큰 틀

  1. bind 설치 및 데몬(named) 실행 
  2. named.conf 설정
  3. named.rfc1912.zones에 작성할 존파일, rev존파일 적어주기. 
  4. /var/named에 zone파일 및 rev zone 생성

 

1. named.conf 설정

  • 주요 설정 구문
# 53번 포트 외부 접근 허용
listen-on port 53 { 127.0.0.1; };
→ listen-on port 53 { any; }; 

# 외부에서 오는 query에 대한 IP 대역 모두 허용
allow-query     { localhost; };
→ allow-query     { localhost; 특정 대역 ip/서브넷; any; };
  • 보안상의 이유로 any는 비추천. 

 

  • 문법 오류 확인
named-checkconf /etc/named.conf



if 오류

root@localhost named]# named-checkconf /etc/named.conf
/etc/named.conf:19: '192.111.111.222/24': address/prefix length mismatch

 

이유

  • IP주소 표기 잘못. 
  • 표기는 CIDR형식이거나 단일 IP형식으로 적어야 한다. 
CIDR 형식 : 111.111.111.0/24 와 같이 표기 
단일 IP 주소 : 별도의 서브넷 길이 필요로 X

 

 

 

2. named.rfc1912.zones 수정

 

# my -web
zone "jini-web.com" IN {
        type master;
        file "jini-web.zone";
        allow-update { none; };
};

zone "111.111.192.in-addr.arpa" IN {
        type master;
        file "jini-web.rev";
        allow-update { none; };
};





3. 존 파일 생성

* 소유자 확인 잘하기. root:named여야함. 

  • sample 파일 복사시 cp -a 로 소유자까지 그대로 복사해주기. 
  • 소유권 바꿔야 한다면 chown root:named




jini-web.zone 기본 설정

TTL 1D
@       IN SOA  ns.jini-web.com. admin.jini-web.com. (
                                        20241138 ; serial
                                        1D       ; refresh
                                        1H       ; retry
                                        1W       ; expire
                                        3H )     ; minimum
        NS      ns.jini-web.com.
        A       192.111.111.222
www     A       192.111.111.222




  • 문법 오류 확인
named-checkzone    도메인 이름    존 파일 경로

 

[오류1]  : 잘못된 명령어 사용

[root@localhost named]# named-checkconf jini-web.zone
jini-web.zone:1: unknown option '$TTL'
jini-web.zone:3: unknown option 'serial'
jini-web.zone:4: unknown option 'refresh'
jini-web.zone:5: unknown option 'retry'
jini-web.zone:6: unknown option 'expire'
jini-web.zone:7: unknown option 'minimum'
jini-web.zone:13: unexpected token near end of file

 

[해결1 ]

*named-checkzone으로 사용해야 함. 

named-checkconf는 named.conf 파일 사용할 때. 





[오류2] 

[root@localhost named]# named-checkzone jini-web.com /var/named/jini-web.zone
/var/named/jini-web.zone:11: #.jini-web.com: bad owner name (check-names)
/var/named/jini-web.zone:12: #ns.jini-web.com: bad owner name (check-names)
zone jini-web.com/IN: NS 'ns.jini-web.com' has no address records (A or AAAA)
zone jini-web.com/IN: not loaded due to errors.

 

[해결2]

@       IN SOA  ns.jini-web.com. admin.jini-web.com. (
               2024113801 ; serial
               86400      ; refresh
               3600       ; retry
               604800     ; expire
               10800 )    ; minimum

        IN NS   ns.jini-web.com.
        IN A    192.111.111.222 
ns      IN A    192.111.111.222
www     IN A    192.111.111.222 
  • 모든 NS 레코드는 반드시 A 또는 AAAA 레코드와 연결되어야 함. 그렇지 않으면 클라이언트가 네임 서버의 IP를 확인할 수 없습니다.
  • 주석으로 ‘#’ 사용 금지



문법 오류가 없는 화면

ok라고 나와야 함.





rev zone 생성

cp -a  존파일명    리버스_존파일명





  • 문법 확인
named-checkzone 111.111.192.in-addr.arpa /var/named/jini-web.rev
  • rfc 문서에 등록한 rev존 명
  • ‘ok’라고 나오면 성공






/etc/resolv.conf에 도메인과 ip 등록

 

Q. resolv.conf 는 무슨 파일 ? 

A. 리눅스의 resolv.conf 파일은 시스템이 DNS를 통해 도메인 이름을 해석할 때 사용할 네임 서버와 관련 설정을 정의하는 파일입니다. 도메인을 설정하여 DNS 질의에 활용하려면 resolv.conf에 네임 서버 정보와 관련 옵션을 적절히 추가해야 합니다.



/etc/resolv.conf

nameserver <DNS 서버 IP> 
search <도메인> 
domain <도메인>





설정 후 확인

  1. nslookup 도메인
  2. dig @dns_ip  도메인명

; <<>> DiG 9.11.36-RedHat-9.11.36-16.el8_10.2 <<>> @DNS서버IP주소
www.jini-web.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42474
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4c314a0c8d31f70cbc93c27867482203a91a9d1074805890 (good)
;; QUESTION SECTION:
;www.jini-web.com.              IN      A

;; ANSWER SECTION:
www.jini-web.com.       86400   IN      A       DNS서버IP주소

"dns_test.log" 28L, 781C


 

  • 정상 출력: ANSWER SECTION에 도메인 정보가 포함된다면 성공적인 도메인 서버 구축 완료 !