본문 바로가기

Computer Engineering/WIN2008

WIN2008 #2 - DNS 레코드 , NSLOOKUP

DNS 레코드

 -A : 주소 레코드; 정규화된 도메인 이름(FQDN)을 IPv4에 연결
 
 -AAAA: 주소 레코드; FQDN을 IPv6에 연결
 
 -CNAME: 별칭 레코드; 실제 도메인 이름과 연결되는 별칭
 
 -MX : 메일 교환 레코드; 사서함에 도달할 수 있는 라우팅 정보를 제공
=> 만들지 않으면 외부에서 내부로 메일을 보냈을 때에 받을 수 가 없다. 기본적으로 당연히 만들어야 한다. 발송전용일 경우에는 안만들어도 상관없지만 ...

 
 -NS : DNS 서버를 운영하는 호스트 이름으로 매핑한다.
=> 루트 도메인의 경우 탑레벨 도메인을 알아야 한다. 내가 구입한 A.com A를 풀이해줄 수 있는 DNS 서버가 있어야 한다.
 도메인을 구입하면 DNS 가 있어야 한다. DNS 가 풀이를 해주는 역할을 하는 것이다. 풀이를 해준다는 것은 aaa.bbb.com 에 대해서 aaa, bbb 를 해당 IP 에 매핑을 해주는 것이다. 여기에서
해당 도메인을 풀이해 줄 수 있는 DNS 서버를 이야기 한다.

-PTR : 포인터 리소스 레코드; 다른 DNS레코드를 가리킴,

         역방향 조회에서 A레코드를 가리킬때 사용
? 정방향 , 역방향의 차이 ? www.daum.net 에 들어가면 IP를 이어주는 것이 정방향. 보통의 경우는 정방향 조회를 하는 것이다. 역방향의 경우는 IP 를 쿼리하게 되면 해당 주소를 반환주는 것이다.
우리가 정방향 조희를 했을 때에 IP를 알려주는 것은 레코드를 만들어 놓았기 때문에 반환을 시켜주는 것이다. 역방향 조회에서는 FQDN 을 갖고 있는
 
 -SOA : 권한시작 레코드; 영역의 시작을 지정하고 권한이 있는 서버를 가리킴.
영역의 원래 이름을 나타내며 영역에 대한 정보의 주 소스인 서버의 이름을 포함하고, 영역의 다른 기본 속성을 나타낸다.
=> 위의 정리는 어렵다 나름대로의 정의 : 어떤 DNS 의 속성값을 갖고 있다. 정의한다라고 생각하면 된다. 우리 DNS 의 속성값을 정의 하는 것이다.
 
 -SRV : 서비스 위치 레코드; 비슷한 TCP/IP 서비스를 제공하는다수의 서버 위치 정보를 제공
=> 정책은 안되지만 간단한 리소스 관리는 가능하다. 누군가에게 접근을 할 때에 이름만 갖고 접근을 하는 것이 아니라 모든 정보를 다 알고 있어야 접근이 가능하다. 지금처럼 단순히 문자열 기반으로 접근하는 것이다. 그랬을 때 문자열 기반 접근을 하는데 비슷한 TCP/IP 서비스를 하는 녀석들을 모아둔 것이다.
 
S1 의 IP 주소가 변경되면 A 레코드의 IP 주소도 모두 바꿔주어야 한다. 하지만 CNAME 레코드의 경우에는 단순히 s1 을 가르키기 때문에 IP 가 자주 변경되는 서버일지라도 상관없이 사용할 수  있다.
대신 CNAME으로 만들었을 때의 단점은?
>nslookup 으로 쿼리를 했을 때에 CNAME 을 가지고 원래 서버를 숨겨주거나 해야 되는데 내가 가르키는 서버를 알려주게 된다. A 레코드는 원래 서버이름을 숨길 수 있다. 그렇기 때문에 조금 수를 쓰면 A 레코드를 생성한 다음에 CNAME 을 생성한다.

만약에 S1 (100.101)이라는 것이 있고 Sec(100.101) 가 있다.
다만 www 만 S1 과 연결하고 blog, cafe 의경우는 Sec 에 연결하면 원래 Host Name 을 숨길 수 있다.

숨기게 된 다면 어떤 이득이 있을까?
우리도 나름 일련의 형식으로 부여를 해주었다. 막상 실무에 가면 서버의 이름이 예를 들면 14F-DC-HP-01 로 되어있다. 이것이 실제 A 레코드가 된다. 이것이 드러나게 되면 몇층에 있고 드러나게 된다. 해커에게 정보제공을 해줄 수 가 있기 때문이다.

DNS 라운드 로빈

대학교 시절 배웠던 라운드 로빈 :
=> A 라는 작업이 시행시킬 때 예를들어 A B C D 모두 동시에 수행한다.
www              
www              ㅁ 1   8  9
www.soldesk.vm ======>           www              ㅁ 2   7  10   이런식으로 돌린다.
www               ㅁ 3  6   11
www               ㅁ 4  5   12
www               
돈한푼 안들이고 서버 부하 분산을 할 수 있다.
규모가 큰 경우에는 네트워크 장비를 이용한 부하 분산을 해주어야 될 것 이다.

>ipconfig /flushdnf // 연결되었던 것을 지워주는 역할을 한다.
=> 같은 주소로 ping 을 보내면 왔다갔다 하는 것을 확인 할 수 있다.

CL1 에서 >nslookup

C:\Users\t1>nslookup
기본 서버:  UnKnown
Address:  192.168.100.101
> www.soldesk.vm
서버:    UnKnown
Address:  192.168.100.101
이름:    www.soldesk.vm
Addresses:  192.168.100.102
          192.168.100.101

A 레코드 쿼리시
> s1.soldesk.vm
서버:    UnKnown
Address:  192.168.100.101
이름:    s1.soldesk.vm
Address:  192.168.100.101

CNAME 레코드 쿼리시
> blog.soldesk.vm
서버:    UnKnown
Address:  192.168.100.101
이름:    s1.soldesk.vm
Address:  192.168.100.101
Aliases:  blog.soldesk.vm

이번에는 구글에 대한 Test

> www.google.com
서버:    UnKnown
Address:  192.168.100.101
권한 없는 응답:          // 이렇게 나오는 것이 정상!!
이름:    www.l.google.com
Addresses:  74.125.71.106
          74.125.71.103
          74.125.71.99
          74.125.71.105
          74.125.71.104
          74.125.71.147
Aliases:  www.google.com // 별명이닷

지금까지는 A 레코드에 대한 쿼리, 예를 들어 기존의 DNS 가 아니라 KT 의 DNS 에 물어보려고 하면
> server kns.kornet.net
기본 서버:  kns.kornet.net
Address:  168.126.63.1
하나로 DNS 로 바꾸면
> server qns1.hananet.net
기본 서버:  qns1.hananet.net
Address:  210.220.163.82
=> 이렇게 바뀐 것을 확인 할 수 있다.

외국의 구글의 DNS 를 이용해서 확인을 할 수 도 있다.
> server 8.8.8.8
기본 서버:  google-public-dns-a.google.com
Address:  8.8.8.8
> www.naver.com
서버:    google-public-dns-a.google.com
Address:  8.8.8.8
권한 없는 응답:
이름:    www.g.naver.com
Addresses:  202.131.29.70
          222.122.195.6
Aliases:  www.naver.com

보안과 관련해서도 정보 수집을 하는데에 사용을 할 수 있을 것이다.

> set type=mx
>
=> 아무것도 안나올 것이다.
> server 168.126.63.1
기본 서버:  kns.kornet.net
Address:  168.126.63.1
> naver.com
서버:    kns.kornet.net
Address:  168.126.63.1
권한 없는 응답:
naver.com       MX preference = 10, mail exchanger = mx-1.naver.com
naver.com       MX preference = 10, mail exchanger = mx2.naver.com
naver.com       MX preference = 10, mail exchanger = mx3.naver.com
naver.com       nameserver = ns1.naver.com
naver.com       nameserver = ns2.naver.com
naver.com       nameserver = ns3.naver.com
mx2.naver.com   internet address = 202.179.178.24
mx3.naver.com   internet address = 202.179.178.29
mx-1.naver.com  internet address = 202.131.27.71
ns1.naver.com   internet address = 119.205.240.165
ns2.naver.com   internet address = 61.247.202.123
ns3.naver.com   internet address = 175.158.30.90

=> 총 3개의 MX 레코드를 확인 할 수 있다.
mx2.naver.com   internet address = 202.179.178.24
mx3.naver.com   internet address = 202.179.178.29
mx-1.naver.com  internet address = 202.131.27.71
이렇게 nslookup을 통해 네이버의 메일 서버를 확인 할 수 있다.

> daum.net
서버:    kns.kornet.net
Address:  168.126.63.1
권한 없는 응답:
daum.net        MX preference = 10, mail exchanger = mx10.hanmail.ne
daum.net        MX preference = 10, mail exchanger = mx1.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx2.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx3.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx4.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx5.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx6.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx7.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx8.hanmail.net
daum.net        MX preference = 10, mail exchanger = mx9.hanmail.net
daum.net        nameserver = ns4.daum.net
daum.net        nameserver = ns2.daum.net
daum.net        nameserver = ns.daum.net
daum.net        nameserver = ns3.daum.net
daum.net        nameserver = ns5.daum.net
mx1.hanmail.net internet address = 114.108.154.168
mx1.hanmail.net internet address = 114.108.154.169
mx1.hanmail.net internet address = 114.108.154.170
mx1.hanmail.net internet address = 114.108.154.171
mx1.hanmail.net internet address = 114.108.154.172
mx1.hanmail.net internet address = 114.108.154.163
mx1.hanmail.net internet address = 114.108.154.164
mx1.hanmail.net internet address = 114.108.154.165
mx1.hanmail.net internet address = 114.108.154.166
mx1.hanmail.net internet address = 114.108.154.167
=> 다음은 무쟈게 많이 나온다.

구글의 GMAIL

> gmail.com
서버:    kns.kornet.net
Address:  168.126.63.1
권한 없는 응답:
gmail.com       MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com
gmail.com       MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
gmail.com       MX preference = 30, mail exchanger = alt3.gmail-smtp-in.l.google.com
gmail.com       MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com       MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com       nameserver = ns4.google.com
gmail.com       nameserver = ns2.google.com
gmail.com       nameserver = ns1.google.com
gmail.com       nameserver = ns3.google.com
gmail-smtp-in.l.google.com      internet address = 74.125.53.27              //재미있는 사실
=>구글의 기존서버와 다른 IP 가 나오는 것을 알 수 있다. 
alt1.gmail-smtp-in.l.google.com internet address = 74.125.93.27
alt2.gmail-smtp-in.l.google.com internet address = 74.125.113.27
alt3.gmail-smtp-in.l.google.com internet address = 209.85.143.27
alt4.gmail-smtp-in.l.google.com internet address = 209.85.227.27
ns1.google.com  internet address = 216.239.32.10
ns2.google.com  internet address = 216.239.34.10
ns3.google.com  internet address = 216.239.36.10
ns4.google.com  internet address = 216.239.38.10
>

보안을 하거나 시스템 관리자 경우 DNS 이상을 확인할 때에 nslookup 을 사용하면 유용하다.
>server 라는 옵션
>set type=   옵션을 알아두자!!

nslookup
 옵션;
  server 쿼리할 DNS 서버 FQDN 또는 IP 주소
  set type= 쿼리할 레코드 형식

2-12 What are Root Hint?
DNS 서버가 있다면 목록 중 하나를 잡아서 Root Server 로 이동한다.

2-13 DNS Query
1. 쿼리는 재귀쿼리 또는 반복쿼리가 있다.
=> 재귀커리 : DNS 서버로 전송하고 반드시 답변을 주어야 한다. 사용자가 DNS 서버에게 보낼 때
반복쿼리 : 다른 DNS 에게 추천을 받거나 아니라고 하면 루트힌트를 통해 단계적으로 얻어온다.
DNS  가 Root DNS 와 전달을 할 때에

만약에 wwww 이렇게 4개를 치는 경우에는 없는 체로 오는 것이다. 온 다음에 반드시 답을 주어야 하기 때문에 그런 사이트가 없다고 보내주는 것이다. 그래서 다시 한 번 확인을 하게 되는 것이다.  반복쿼리는 단지 시도만 하는 것이다. 재귀커리는 IP 를 주거나 , 그 사이트 없어요 단 2가지 역할만 하는 것이다.

2. DNS 클라이언트와 서버 모두 시작 쿼리를 보낸다.
=>
3. DNS 서버는 Namespce 에 대해서 믿을만 하거나 믿을만 하지 못하다.
=> www.naver.com 과 동일한 페이지를 만들어서 사용자가 이쪽으로 접속을 하는 것이다. 누군가는 로그온을 한다. 실명인증을 넣는 팝업을 띄울 수 있다. 그래서 보안상 DNS 관리는 철주철미하게 해주어야 한다.
4. 권한이 있는 경우 IP를 알려주거나 권한이 없는 경우 권한이 없다는 것을 알려준다.
5.

2-18 DNS 캐쉬에 대해서
serverA.contoso.msft :
TTL => Time to Live :  네트워크에서는 라우터의 최대 홉수를 이야기 하는 것이다.
지금 DNS 서버에서는 28ms 라고 나오는 경우는
0 ---->  www.daum.net 쿼리를 요청하는데
1 ----> 얘도 요청을 한다.
28초내에 물어보면 알려준다. 자주 들어가는데에 캐싱이 되어있으면 좋다. 일정 시간이 지나면 지워버린다.포털 서비스를 이용하는 경우 포털 서비스의 관리자가 시간을 정하는 것이다.

VM 말고 실제 컴퓨터에서 Test
C:\Users\jack2>ipconfig /flushdns
Windows IP 구성
DNS 확인자 캐시를 플러시했습니다.
C:\Users\jack2>nslookup
기본 서버:  UnKnown
Address:  172.16.2.1
> server kns.kornet.net
기본 서버:  kns.kornet.net
Address:  168.126.63.1
C:\Users\jack2>ipconfig /flushdns
Windows IP 구성
DNS 확인자 캐시를 플러시했습니다.
C:\Users\jack2>nslookup
기본 서버:  UnKnown
Address:  172.16.2.1
> server kns.kornet.net
기본 서버:  kns.kornet.net
Address:  168.126.63.1

ipconfig 명령어

 ipconfig
  간단한 IP 확인
 ipconfig /all
  상세 IP 확인
 ipconfig /displaydns
  캐시된 레코드 확인
 
 ipconfig /flushdns
  캐시된 레코드 삭제
 ipconfig /release
  DHCP를 통해 IP를 임대 받았을 경우 IP테이블의 내용 삭제
 
 ipconfig /renew
  DHCP를 통해 IP 임대 시작
 ipconfig /registerdns
  DNS에 자신의 IP와 HOST명 등록

'Computer Engineering > WIN2008' 카테고리의 다른 글

WIN2008 #2 - 전송,전달자,트러스트  (0) 2011.09.14
WIN2008 #2 - DNS  (0) 2011.09.09
WIN2008 #2 -  (0) 2011.09.06
WIN2008 #2 - 출바알  (0) 2011.09.05
WIN2008 #1 - 백업  (0) 2011.09.01