본문 바로가기
Linux/DNS server

mydomain.tld/IN: extra input text

by aegypius 2022. 7. 27.
728x90
반응형

mydomain.tld/IN: loading from master file /path/filename.ext failed: extra input text
mydomain.tld/IN: not loaded due to errors


bind(Berkeley Internet Name Domain)가 구동되지 않고 오류가 발생한다면 journalctl로 오류 로그를 확인하여 잘못된 곳을 찾는건 어렵지 않을 것이다.

네임서버의 설정을 변경한 후에 다시 구동을 했을 때 오류가 발생한다면 당연히 최종 변경한 부분에서 오류를 찾을 것이다. 하지만 새로운 서버를 설정하면서 특정 도메인에 대한 DNS 서버를 구축과정에서 오타가 없고, ZONE 파일의 문법에 오류가 없음에도 위와같은 오류가 발생한다면 ZONE 파일의 permission을 자세히 살펴보자.

보통 서버를 새로 구축할 때에 bind의 존파일 작성은 기존에 생성되어 있는 파일(named.localhost, named.loopback 등)을 복사하여 내용을 수정한 후에 다른 이름으로 저장해서 사용하는 경우도 있고, 처음부터 빈파일로 시작해서 하나하나 입력하여 만드는 경우도 있다. 여기서 발생할 수 있는 문제는 기존에 생성되어 있는 파일(named.localhost 등등)은 640(-rw-r-----)의 퍼미션을 갖고 있는데, 이것을 복사, 편집하여 원하는 파일명으로 저장한 후에 bind를 구동시키면 위의 제목과 같은 오류가 발생할 수도 있다. 이때 새로 생성한 존 파일의 퍼미션을 640에서 644로 변경하면 오류없이 네임서버가 정상적으로 구동된다. 재미있는 것은 이렇게 퍼미션을 조정해서 네임서버가 정상작동을 한다면 존파일의 퍼미션을 다시 640으로 변경하고 네임서버의 재구동하더라도 오류는 발생하지 않는다. 그래도 644로 설정하는 것이 안전(?)하지 않을까...라는 생각이다.

참고로 네임서버에서 loading configuration: permission denied오류가 발생한다면 zone파일의 소유권(Ownership)을 확인해보자. 소유자는 root, 소유그룹은 named로 설정한다면 permission denied 오류는 해결 할 수 있을 것이다.

728x90
반응형

댓글