internet

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ internet ] in KIDS
글 쓴 이(By): mipsan (-=나영화=-맧)
날 짜 (Date): 1998년03월31일(화) 21시12분37초 ROK
제 목(Title): Re: [질문] DNS 서버에 대해 잘아시는분



찾아보니 예전에 김용운씨가 메일로 보내준 내용이있어서 다시 올립니다.
----------------

[ CnUnix ] in KIDS
글 쓴 이(By): qkim (김 용 운)
날 짜 (Date): 1997년09월04일(목) 19시17분51초 ROK
제 목(Title): Re: 또 징그런 메일 문제.


>..그럼 기존의 IP address는 그대로 두고, DNS server에서만 그렇게 두개의
>  hostname을 부여하고 sendmail 설정하면 되는 거예요 ??

DNS에서 named configuration 잡아줄 때 zone 파일을 설정합니다.
이의 예를 보면...

$ORIGIN etri.re.kr.
sunny           IN      A       129.254.137.114
                IN      MX      10 sunny.etri.re.kr.
tdxci           IN      CNAME   tdx.etri.re.kr.

여기서 sunny.[$ORIGIN] 즉,
sunny.etri.re.kr에 대한 MX record가 sunny.etri.re.kr이란 지정 사항이
보이고요.. 후자의 sunny.etri.re.kr을 다른 주소로 바꿀 수가 있지요.

다시 말해.. sunny.etri.re.kr이란 똑같은 name address에 대해
telnet으로 접속할 때 대상 호스트와 메일을 보낼 때의 대상 호스트를
다르게 지정할 수 있게 됩니다. 이게 무슨 말인지 헷갈리시면..
http://pec.etri.re.kr/~qkim/info_search.html 에 설명해 놨으니
읽어보세요.

그 다음에..

tdxci           IN      CNAME   tdx.etri.re.kr.

이것은..
tdx.etri.er.kr이란 호스트를 tdxci.[$ORIGIN]으로 CNAME 하겠다는
것입니다.

tdx 호스트는 어딘가에서 이미 IP 주소와 함께 등록되어 있을 것이고..
그런 다음에 위와 같이 CNAME을 함으로써..
tdxci 호스트 이름도 같은 호스트에 대해 동시에 사용하겠다는 것입니다.
즉, 같은 IP 호스트에 두 개의 이름이 부여되는 것이죠.
어느 이름으로 접속해도 똑같은 호스트에 붙게 됩니다.

그런데...
sendmail이 동작할 때.. 꽤나 챙기는 것이 많습니다.

먼저.. 송신자의 sendmail이 송신자 E-mail 주소에 대한 FQDN 확인을
합니다. 실패하면 에러로 돌아갑니다. 성공하면 수신자 E-mail 주소에
대한 FQDNJ 확인을 합니다. 이때 primary priority는 MX record의
정보가 됩니다. 이 때문에...

http://abc.sub.domain/
somebody@abc.sub.domain

이와 같이 똑같은 호스트를 지칭하고 있는 것 같지만..
실제로는 서로 다른 호스트가 응답할 수 있게 됩니다.

수신측 sendmail은 수신하는 E-mail 주소에서 FQDN 확인을 하게 되는데..
자신의 호스트 주소가 abc.sub.domain임에도 불구하고..
수신 주소가 mx-record.other.domain 이렇게 되어 있으면
수신 거부하게 됩니다. 그래서 sendmail.cw에다
호스트 이름과 다른 주소가 있더라도 수신하라는 의미에서
호스트 이름을 등록해주는 것입니다.

즉, abc.sub.domain이란 호스트의 sendmail.cw에다
mx-record.other.domain 이것을 등록해놓지 않으면
abc 호스트는 수신 거부를 해버리는 것입니다.

여기서.. 아시다시피 모든 네트워크 연결은 IP 주소로 해서 이루어집니다.
그러므로 도메인이 같든 다르든 IP 주소 하나만 보고 프로토콜 동작이
이루어집니다.

그래서..
서로 다른 도메인 주소임에도 불구하고.. IP 주소만 같으면
똑같이 연결되고 서비스가 됩니다.

-------
On-Line으로 쓰다보니 체계적으로 정리하지를 못 했는데..
예를 들어서..

$ORIGIN DDD.FFF.
A     .........  11.11.11.11
C   ...........  22.22.22.22
B   ... CNAME    A
B   ... MX  10   C

이렇게 되어 있다면..
1. A.DDD.FFF == B.DDD.FFF
2. http://a.ddd.fff/ == http://b.ddd.fff/
3. http://b.ddd.fff/ =/= somebody@b.ddd.fff
sendmail의 경우를 다시 설명드리자면..
sendmail이 name lookup을 할 때..
b.ddd.fff에 대한 IP 주소를 달라고 DNS에게 요청하는데
이때 MX record값을 우선 요청합니다. DNS에 MX가 등록되어 있으면
이것을 주고, 없으면 등록 IP를 곧바로 줍니다. 위의 경우라면..

sendmail이 b에 대해 요청하고 DNS는 MX가 있으므로
c의 IP 주소를 주게 됩니다. 만약 MX가 없다면.. 당연히 b의 IP
주소를 주게 되겠지요.

이러한 이유 때문에 위에서 3에 의해 제공되는 서버는
같은 주소임에도 불구하고, 서로 다른 호스트가 제공해줄 수 있게
됩니다.

-------

질문하신 내용은 위 내용 속에 포함되어 있습니다.

@오래된 기억이라 sentence 하나하나에 대한 신뢰성은 보장하기
 어렵지만, 전체적으로는 맞으니 일단은 무조건 믿으세요.
 나중에 틀린 거 발견되면 속았구나 하시고.. :)


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.