[잡설] DNS에 대해 ,, 이런저런 ,,
DNS는 Domain Name System. 도메인 주소 (parkchisu.com) 을 넣으면 거기에 맞는 IP(32.132.12.123)를 리턴하는 시스템이다. 당연히 이런 기초정보를 공부하기 위해 쓰는 건 아니고.. 이번에 작업하면서 약간 헷갈렸던 부분이 있어 관련 내용을 공유한다.
회사의 내부망에서도 자체 DNS 서버를 운영할 일이 생긴다. 예를 들어 사내망에서만 접속할 수 있는 URL(local-parkchisu.com)이 있다든지. 브라우저에 도메인을 입력했을 때 맞는 ip로 찾아가게 하려면 dns 서버를 세팅해두든지 아니면 클라이언트 호스트의 hosts 파일을 수정하는 것 밖에 없는데 hosts 수정은 본인 컴퓨터에만 적용되므로 실전성이 높지 않다.
예를 들어 이런 상황이라면 어떻게 해야할까?
본인의 회사가 parkchisu.com 이라는 외부 접속 도메인이 있다고 치자. 근데 사내망에서만 local.parkchisu.com 을 입력했을 때 전용 사이트로 접속하게 하고 싶다면?
이 때 바로 내부망에서 DNS 서버를 활용한다.
위 목적을 이루기 위해 해야할 일을 간단하게 얘기하면
1. DNS 서버를 구축하고, 거기에 local.parkchisu.com에 대해 A 레코드를 등록한다. (내부망이라면 private ip가 좋을 것이다)
2. 내부망의 PC들이 1차적으로 거치는 DNS 서버를 내부의 DNS 서버 주소로 변경한다. (변경 전에는 보통 1.1.1.1 이나 8.8.8.8 이나 통신사에서 운영하는 DNS 서버로 설정되어 있을 것이다) 이 때 하나하나 변경해주는 것이 매우 귀찮으므로, 각 PC들이 연결되어 있는 인터넷 라우터, 예를들면 IPtime 관리자에 접속해서 거기서 일괄적으로 수정해줄 수 있다.
3. 그러면 내부망의 PC들은 local.parkchisu.com에 접속하면 내부망 dns 서버에서 준 ip로 찾아가게 된다.
내부망 DNS 서버를 구축할 경우, 네임스페이스가 parkchisu.com 이라고 하면
- A 레코드 (parkchisu.com)
- NS 레코드 (ns.parkchisu.com)
위 2개는 기본적으로 입력해둬야 한다. 나는 내부 DNS 서버에 ns 레코드만 입력해뒀었는데, 그렇게 해두면 내부망에서 외부망 주소인 parkchisu.com을 입력했을 때 맥에서는 접속이 되는데 윈도우에서는 접속이 안되더라. 아마 윈도우에서 DNS 검색 로직이 좀 더 경직되어 있는 모양이다. 아무튼 A 레코드 추가했더니 모두 접속 잘되는 것 확인함.
Q. 내부 DNS 서버가 답변 못하는 도메인도 있을텐데?
A. 당연히 그렇다. 그래서 보통 2차 DNS 서버도 공유기 설정에서 설정할 수 있다. 이거를 1.1.1.1이나 뭐 다른 걸로 설정해두면 내부 DNS 서버에서 찾지못한 IP를 2차에서 찾아서 접속 가능하다.
Q. DNS 서버용으로 PC를 사야 하나요?
A. 그래도 되지만 굴러다니는 아무 PC 이용해도 된다. (대신 고장나면 안되므로 조심) 나같은 경우 사내에 백업용 시놀로지 서버가 있는데 여기서 DNS 기능도 제공해서 이걸 사용했다.