코드네임 :

📡 데이터통신네트워크 5주차 본문

🛜Network/데이터통신네트워크

📡 데이터통신네트워크 5주차

비엔 Vien 2024. 4. 10. 18:47

DNS : URL(도메인 이름) 을 IP 주소를 가져오게 해주는 (반대도 가능)

-도메인 네임 서버들은 계층 구조를 가지고 있다

-application layer에서 동작함

- core에서 동작 X, edge에서만 동작

 

 

DNS가 하는 일
1. hostname을 IP 주소로 바꿔줌
2. host애개 가짜이름 부여(host aliasing)
3. mail 서버에 대한 alias
4. 부하 분배 (load distribution)
    - 하나의 이름에 대해서 여러 IP 주소를 가질 수 있도록

 

왜 중앙집중DNS 가 아닌가
1. 중앙집권시 한개의 DNS가 망가지면 전부 동작 불가
2. 트래픽 몰림 문제
3, 거리 문제
4, 유지 문제


 

[ DNS 구조 ]

root

   |

TLD (Top Level Domain)

   |

Authoritative

 

< client 가 www.amazom.com 의 IP 주소를 원할 경우 >

1. client가 root 서버에게.com DNS서버에 대한 정보를 물어봄 (root DNS server)
2. client가 .com DNS서버에게 amazon.com DNS 서버를 가져오도록 요청함 (TLD DNS server)
3. client가 amazon.com DNS서버에게 www.amazon.com 의 IP 주소를 가져오록 요청함 (Authorative DNS server)

Root ( Root name servers )

가장 증요한 서버
내가 요청한 곳 말고 그곳에 도달할 수 있는 간접적인 링크를 알려줌

하나만 망가지면 전부 망가질수 있는 사태를 대비 하기 위해 전 세계에 13개(하나당 수백대의 컴퓨터) 있음

DNSSEC라는 보안 프로토콜 이 돌고 있음

ICANN : 위 13대의 root 도메인을 관리하는 곳


TLD

최상위 도메인

내가 요청한 곳 말고 그곳에 도달할 수 있는 간접적인 링크를 알려줌


Authorative server

정답 위치를 알려주는 권한이 있는 서버 ( 정답을 알려주는 서버! )


 

[ Local DNS 서버 ]

- 계층구조에 포함되지 X

- 로컬 cache 함으로써 향후에 똑같은 질문이 들어오면 바로 응답할 수 있도록

- ISP 등의 기관들이 자주 사용

 

< Iterated(반복적)  query>

< host 가 www.amazom.com 의 IP 주소를 원할 경우 >

0. host가 local DNS에게 물어봄 - 이름은 모르지만, 서버에게 아냐고 물어볼께! 라는 답이 옴
1. local DNSt가 root 서버에게.com DNS서버에 대한 정보를 물어봄 (root DNS server)
2. local DNS가 .com DNS서버에게 amazon.com DNS 서버를 가져오도록 요청함 (TLD DNS server)
3. local DNS가 amazon.com DNS서버에게 www.amazon.com 의 IP 주소를 가져오록 요청함 (Authorative DNS server)

 

< Recursive (재귀적) query >

< host 가 www.amazom.com 의 IP 주소를 원할 경우 >

0. host가 local DNS에게 물어봄 - 이름은 모르지만, 서버에게 아냐고 물어볼께! 라는 답이 옴
1. local DNSt가 root 서버에게.com DNS서버에 대한 정보를 물어봄 (root DNS server)
2. root 서버가 .com DNS서버에게 amazon.com DNS 서버를 가져오도록 요청함 (TLD DNS server)
3. TLD가 amazon.com DNS서버에게 www.amazon.com 의 IP 주소를 가져오록 요청함 (Authorative DNS server)

 

Cache  캐시

- 어떠한 시간 (TTL)이 지나면 타임아웃되어 캐시가 사라져버림

- IP 주소를 바꿀 시 한 이틀 정도(TTL이 다 지나갈때까지) 기존 IP 주소 유지 (통신사 바꾸는 어쩌고,, 생각하삼)

  ㄴ (IP 주소를 중간에 업데이트 하지는 않음)

- RC 2136 라는 표준 문서에 잘 정리 되어있음


 

DNS records

어떻게 저장이 되어있느냐를 봄 - resource records (RR)

RR format : (name, value, type, ttl)
“value는 IP 주소를 의미함!

type = A : 기본적인 동작을 함, 호스트의 이름, 값은 IP 주소
type = NS : domain, 어떤 호스트 이름이 아닌 그 호스트에 관련된 DNS의 IP 주소
type = CNAME
type =  MX : mail server 

 


 

DNS의 메시지의 포맷
query + reply : 질문 + 응답 -> 둘다 똑같은 형식을 사용함
내가 지금 보내는게 query인지 reply인지 알 수 있는 flag 세팅을 해놓음

 

 

[ DNS 보안 ]

Ddos 공격

1. 루트 서버 마비시킴
- 트래픽을 엄청 생성하여 폭격
  ㄴ루트 서버는 이것을 TLD로 가게끔 방지하고 있기에 안전하다

2. TLD서버 마비시킴
  ㄴ 잠재적으로 더 위험하노 ㄷㄷ

Redirect공격
중간자 공격
DNS 서버 마비 시킨 후 중간에서 가짜 정보 집어 넣음

DNS 를 활용한 공격
공격자에 대한 응답이 공격자한테만 가는게 아니라 멀리 있는 타겟이 전부 응답하게 됨
전세계에서 공격을 받은 것같은 형태 

 


 

P2P (peer to peer)

p2p에서는 어떤 정해진 서버가 있는 것이 아닌 각각의 모든 사용자들(peer)가 client가 될수도 server가 될 수 있음
중요한 특징으로는 self scalability : 자기가 어떤 관리자 없이도 스스로 커질수도 작아질수도 있는 형태
보통 파일 공유를 위해 사용됨



클라이언트 서버 vs P2P
client server 모델 : 선형적으로 증가
P2P 모델 : 완만하게 증가 - 사용자가 많아질수록 그만큼 이점이 늘어남

이렇기 때문에 과거엔 BitTorrent로 큰 이미지 파일을 p2p형태로 다운 받을 수 있도록 했었음

BitTorrent
파일들을 조각내어 그걸 모아 원본을 완성하게 하는 동작

 


 

비디오 스트리밍과 CDN
서비스의 질 유지, 다운로드 속도 등의 문제를 해결하기 위해 CDN등장
CBR
VBR


지터 : 네트워크 딜레이가 고정되어있지 않음

버퍼 : 받은 데이터 량보다 재생되는 데이터 량이 좀 적도록 약간의 비축분을 쌓아놓은 곳
버퍼링 : 버퍼 구간을 확보하는 시간

DASH : HTTP를 활용하는 동적이고 정적인 스트리밍 서비스
처음에 유튭에 영상 올리면 화질이 1개 밖에 없는데 시간이 지나면 인코딩되어 여러 화질이 생기는 거 (다양한 화질에 대해 영상의 복제품을 만듦)
즉 자기가 판단 하에 네트워크 상황이 구리면 안 좋은 화질, 굿이면 좋은 화질을 알아서 가져오는 서비스


CDN
위 서비스를 동시에 여러 사람에게 제공하기 위해서
" CDN 서버를 여러군데에 두고 그곳에 콘텐츠들을 미리 다 저장해두고, 사용자가 어떠한 콘텐츠를 요청시 가장 가까이 있는 네트워크 해당 콘텐츠를 불러옴 "