진짜 개발자
본문 바로가기

CS(Computer Science)/Network

Network - Application 계층) Mail 서버(SMTP , POP3)

728x90


그림출처 - http://webdir.tistory.com/164



용어

MUA (Mail User Agent) - 사용자가 email을 읽고 보내고 삭제할 수 있는 프로그램

  (위 그림의 PC1, PC2 에 설치된 메일 클라이언트 프로그램을 말함)

MTA (Mail Transfer Agent) - SMTP 프로토콜을 이용하여 서로다른 메일 서버로 메일을 전달하는 프로그램

 (위 그림의 메일서버 1, 2 에 해당)



메일 서버 동작 과정

Mail토폴로지.pkt

A가 B에게 메일을 전송한다고 하자


1. A는 MUA를 이용하여 A@jjy.com 으로 로그인하여 B@jjy.com 으로 메일을 전송한다

2. MUA는 A의 메일을 A의 DNS서버에서 MTA(메일 전송서버)를 찾아 MTA(메일 전송 서버)로 보낸다

3. MTA는 다시 B의 MTA로 메일을 전송한다



프로토콜


SMTP

- 송신자의 메일서버에서 수신자의 메일서버로 메일을 전송하는데 TCP를 기본으로 전송하는 프로토콜

- 25 PORT / TCP 를 사용한다


POP3

- 메일서버로 부터 클라이언트가 메일을 가져오기 위해 사용하는 프로토콜이다.

- 110 PORT / TCP 를 사용한다




상세과정

- a@jjy.com(PC1)에서 b@sc.com(PC2)에게 메일을 보낸다

PC 

IP 

Subnet 

DNS 

ROLE 

Mail Agent 

1.0.0.1 

255.255.255.0 

1.0.0.71 

메일 클라이언트 

Untangle 

1.0.0.71,20.0.0.254,30.0.0.254 

255.255.255.0 

8.8.8.8

NAT(포트포워딩)

,Firewall

,DNS

Mail Server

20.0.0.1 

255.255.255.0 

30.0.0.1 

메일 서버 

W2k16-AD 

30.0.0.1 

255.255.255.0 

 127.0.0.1

AD

,DNS 

    

1) 전송 과정

1. a@jjy.com PC에서 a@sc.com에게 Mail Agent를 이용하여 메일을 보낸다

2. jjy.com을 관리하는 메일서버를 찾기위해 DNS Sever(1.0.0.71:Untangle)에게 DNS 조회를 한다

3. Untangle 자체의 DNS서버에서 jjy.com자기자신(1.0.0.71)이라고 알려준다

4. Mail Agent(a@jjy.com)1.0.0.71:25로 메일을 보낸다

5. Untangle에서 1.0.0.7125포트로 들어오는 메시지를 실제 메일 서버인 20.0.0.1:25로 포트포워딩 한다

6. MailServer(jjy.com)에서 sc.com을 관리하는 메일서버를 찾기위해 DNS서버(W2k16-AD) 에게 DNS 조회를 한다

7. W2k16-AD에서 sc.com192.168.0.91 이라고 알려준다

8. MailServer(jjy.com)192.168.0.91:25에게 메일을 보낸다

9. 192.168.0.91 Host PC 에서 25포트로 들어오는 메시지를 1.0.0.71:25로 포트포워딩 시킨다

10. Untangle에서 1.0.0.71은 25포트로 들어오는 메시지를 실제 메일서버인 20.0.0.1:25로 포트포워딩 시킨다

11. Mail Server(sc.com)Mail Server(jjy.com)에서 온 메시지가 저장된다


2) 수신 과정

1. Mail Agent(a@sc.com)에서 메일을 수신하기위해 sc.com을 관리하는 메일 서버를 찾기위해 DNS Server에게 

   DNS 조회를 한다 

2. Untangle(1.0.0.71) 자체의 DNS Server에서 sc.com은 자기자신(1.0.0.71) 이라고 알려준다

3. Mail Agent(sc.com)에서 메일을 가져오기 위해 1.0.0.71:110 으로 메시지를 보낸다

4. Untangle에서 110포트로 들어오는 메시지는 실제 메일 서버인 20.0.0.1:110으로 포트포워딩 한다

5. 20.0.0.1에서 메일을 Mail Agent에게 전달한다