Application Layer / Email, DNS

강한친구·2022년 10월 10일
0

컴퓨터 네트워크

목록 보기
6/19
post-custom-banner

Email

이메일은 웹서비스보다 시작이 빠르다.
이메일에는 총 3가지 component가 있다.

  1. User Agent : mail reader, 작성 수정 읽기 기능
  2. Mail Server : 메일박스, 메시지 큐
  3. Mail Transfer protocol : SMTP

이 둘은 SMTP로 연결된다.

SMTP

TCP를 기본으로 사용한다. HandShaking 과정을 통해 연결확인을 하고, 서로 자료를 주고받는데 이는 ASCII 형태로만 가능하다.

메일 보내는 과정

  1. 유저가 http를 통해 메일작성사이트로 이동함
  2. 메일을 작성함
  3. 목적주소로 SMTP 프로토콜을 통해 이동함
  4. SMTP는 이 받은 메일을 받은 사람이 조회할 때 그때 메일이 목적지의 agent로 가는것임
    이 마지막 부분이 다르다. 기존은 보내는쪽이 밀어내고 받았다면, 이 과정에서는 받는쪽이 끌어와야한다.

SMTP vs HTTP

HTTP : client pull
SMTP : client push

Multiple Internet Mail Extension

MIME은 논아스키를 아스키로 바꾸는 보조 프로토콜이다.
Base64 방식으로 not ascii 를 ascii로 바꾼다.

예시

24비트 non ascii가 오면 6비트씩 나눔

2^6은 64개 즉 base64 표를 기반으로 binary를 decimal로 변환하고 표에 맞춰서 문자를 찾고 그 문자에 해당하는 ascii코드 표를 찾아서 7비트를 가지고 오고 8비트를 만들기 위해 0을 맨 앞에 넣는다.

IMAP과 POP3

IMAP

메일은 기본적으로 읽으면 서버에서 지워짐 IMAP은 메일을 읽어도 서버에 남아있어서 인터넷이 끊어지면 메일을 볼 수 없지만 대신 다른 장치에서도 보는 것을 보장함.

pop3

pop3는 장치기준으로 저장을 하고 서버에서는 지워버려서 인터넷이 없어도 다운받아 놓으면 볼 수는 있지만 다른 장치에서는 볼수가 없음.

DNS

인터넷에서 별칭으로 쓰이는 이름을 IP주소와 매칭시켜주는 서비스이다. DNS 시스템은 인테넷의 코어기능 이고 이를 edge에 두고있다.

기능

호스트의 alias를 가능하게 해주는 강력한 기능이 있음 – www을 빼준다거나, 진짜이름말고 해주거나

메일서버도 aliasing 해준다.

이러한 원리로 로드 분산 가능함 >
서버가 여러 개 있는 서비스의 경우 응답해주는 ip주소가 여러 개인데 이 순서를 바꿔서 주는것으로 한 서버로 몰리지 않게 해준다.

UDP 사용

DNS는 매우 많은 요청이 오기에 짧고 빠른 주기를 유지해야함 따라서 UDP를 쓴다.
이 커넥션 형성 단계가 없기 때문에 요청이 오면 답을 해주고 DNS Flooding 이라는 공격방식이 있음. 타겟 사이트를 응답받는쪽으로 가장하고 무한정 커넥션을 보내는것이다.

DNS 서버구조

루트에서부터 한 단계씩 올라가면서 dns를 찾는다.
이 과정에서 기본적으로 8회정도 메시지를 주고받게 되어있다.

다만, 로컬 DNS가 있어서 호스트가 처음 문의를 하면 루트 DNS로 가지 않고 로컬 DNS로 가서 문의를 시작하고 거기서 캐시히트가 발생하면 그대로 끝, 발생하지 않으면 처음부터 다시 시작한다.

다만 캐시의 TTL은 2^32다. 너무 커서 TTL이 만료하기전에 바뀔 가능성이 높다.
이 때문에 로컬 DNS는 TTL만 믿고 하는게 아니라 알고리즘으로 항상 최신화를 유지하려고 한다.

DNS의 정보타입

DNS정보가 얻어오는 타입이 있다. 하나의 정보 단위를 RR이라고 부르는데 name value type ttl이 있다.

Type A = name is hostname value is ip addr
Type NS = name is domain, value is hostname of authoritative name server for domain 
Type CName = name is alias name for canonical name value is canonical name 
Type MX = value is name of SMTP mail server associated with name 

DNS의 등록과 관리

그래서 이 정보는 DNS에 어떻게 들어가 있는가?
DNS 등록을 하면, .com이라는 도메인을 관리하는 회사에 정보를 제공한다.

  1. 책임서버의 이름
  2. 대기 시스템의 정보
  3. 책임서버의 주소

그리고 내 책임서버를 구성하면 된다.
즉 이 TLD에는 내 도메인에 대한 이름과 IP주소랑 정보만이 들어가있다. 이렇게 등록을 하면 넘긴 정보와 이름 ip를 담은 type a가 생성된다.

DNS 보안

DDoS 공격

UDP를 써서 디도스의 공격에 취약하긴한데,
보통은 루트가기 전에 다 처리되니깐 루트까지는 잘 안가는데 TLD들은 공격을 많이 받는다.

스푸핑 공격

DNS 쿼리를 가로채서 엉뚱한 소스 주소를 만들고 타겟시스템에 손상을 줄 수 있다.

post-custom-banner

0개의 댓글