본문 바로가기

Network/Basic

07. 간단한 Network 구성 (2)

DNS
 
아래는 두 PC 가 네트워크를 구성했을 때 B 가 자신의 호스트명으로 db 라고 정한 경우이다.
 
 
이때 A 가 B 의 호스트명 db 로 ping 을 날려보면 아래와 같이 조회할 수 없다는 메시지가 나온다.
 
 
이때 A 의 /etc/hosts 파일에 이 정보를 기록해주면 ping 이 성공한다.
 
 
 
사실 B 의 hostname 이 host-2 라고 해도 ping 은 성공한다.
 
 
만약 서버가 여러대인 경우 어떻게 해야 할까?
 
모든 서버에 이런 정보를 모두 기입해야 할까?
 
만약 외부에 접근해야 하는 서버가 아주 많다면 이 정보를 모두 모든 서버에 기입해야 할까?
 
 
그렇게 된다면 IP 주소가 변경되면 모든 서버의 hosts 파일을 찾아서 이를 수정해 줘야 한다.
 
그래서 이를 DNS (Domain Name Server) 에 네트워크 상의 호스트의 이름과
 
호스트로 매핑되는 IP 주소를 저장해 놓고 요청이 있을시 응답으로 IP 주소를 반환하게 한다.
 
(반대로 IP 주소를 도메인 네임으로 반환하는 것도 된다)
 
 
그렇다면 어떻게 DNS 서버를 할당할 수 있을까?
 
 
아래와 같이 resolv.conf 파일에 nameserver 를 지정하면 된다.
 
 
그리고 실행시 /etc/hosts 먼저 확인 후 /etc/resolv.conf 파일의 DNS 서버를 뒤진다.
 
그리고 DNS 서버는 동시에 여러개를 지정해 놓으면 위에서 부터 차례대로 확인한다.
 
 
 

Domain Name
 
보통 서버는 www.facebook.com 과 같이 도메인 이름을 가진다.
 
왜냐하면 인터넷 내의 모든 도메인 이름을 하나의 서버에 저장하기에는 너무 데이터가 많아
 
규칙적으로 배열하여 도메인명을 여러 도메인 서버에 저장해야 하기 때문이다.
 
그래서 도메인 이름은 아래와 같이 Root / Top Level / Second Level / Subdomain 으로 나뉘어지며 
 
 
사용자가 apps.google.com 이라고 입력한 경우 먼저 인터널 DNS 서버를 뒤지고 
 
없으면 인터넷의 루트 DNS 서버를 확인하고 Top Level DNS 서버를 및 Second Level DNS 서버에 도달하여 최종적으로 찾은
 
IP 주소를 반환하게 된다. 이때 반환된 주소는 내부 DNS 서버에 캐시되어 다음 호출시 더 빨리 호출되게 된다.
 
 
 

정보확인
 
DNS 서버에 도메인 이름이 있는지 간단히 테스트 해보고자 하는 경우 nslookup 명령을 사용하면 된다.
 
 
또는 어떤 도메인 서버를 통과하는지를 확인하려는 경우 tracert <도메인이름> 명령을 사용해 볼 수 있다.
 
 
또한 윈도우창에서 간단하게 IP 주소나 기본 게이트웨이 DNS 서버 정보등도 확인할 수 있다.
 
 
 

DNS Solution
 
보통 외부 DNS 서버를 구성하지만 사용자 호스트에 DNS 서버를 구성할 수 있다.
 
여기서는 CoreDNS 를 설치해보자. 
 
먼저 아래와 같이 바이너리를 얻어 설치후 서비스를 실행하면 된다.
 
 
이러면 DNS 서버가 설치되고 구동된 것이며 포트 53번에서 수신 대기한다.
 
아직 IP 대 호스트 이름 매핑을 지정하지 않았는데 이를 위해서는 몇 가지 구성을 제공해야 한다.  
 
먼저 모든 항목을 DNS 서버 /etc/hosts 파일에 넣는다.
 
 
그리고 /etc/hosts 에 IP 대 도메인 명을 맵핑하고 Corefile 에 이 정보를 입력해주면
 
 
CoreDNS는 Corefile이라는 파일에서 구성을 로드한다. 
 
다음은 CoreDNS가 / etc / hosts 파일에서 IP를 호스트 이름으로 가져 오도록 지시하는 간단한 구성이며
 
DNS 서버가 실행되면 이제 서버의 /etc /hosts 정보를 읽어 도메인 서버 역할을 한다.
 

'Network > Basic' 카테고리의 다른 글

09. Switch 장비  (0) 2020.01.23
08. Router 장비  (0) 2020.01.23
02. Packet Tracer 인터페이스  (0) 2020.01.22
06. 간단한 Network 구성 (1)  (0) 2020.01.22
05. IP 주소  (0) 2020.01.22