[네트워크] 🤷♂️ DNS가 뭐길래
어제 오늘 정부의 HTTPS/DNS
차단으로 떠들석합니다. 기사에는 HTTPS
, DNS
, Packet
같은 여러가지 전문 용어들이 등장하는데요, 과연 어떤 의미인 지 알아보기로 했습니다. 우선 DNS에 대해 알아봅시다. 우리가 주소창에 www.youtube.com을 쳤을 때, 크롬이나 파이어 폭스같은 브라우저는 저 이름에 해당하는 Domain Name
이 아닌 우리가 가려는 사이트의 정보를 담고 있는 서버의 IP Address
를 알아야합니다. 그리고 이 과정에서 DNS
가 등장합니다.
DNS(Domain Name System)
DNS
는 TCP/IP Network
에서 사용하는 시스템 서비스으로 영문/한글 주소를 IP Network
에서 찾아갈 수 있는 IP Address
로 변환해 줍니다. 마치 과거에 모든 사람의 이름과 전화번호가 적혀진 전화번호부와 같습니다. 만약 과거에 전화번호 외우듯 숫자로 된 IP를 외워야 웹사이트를 들어갈 수 있다면 머리 아프겠죠? 위에 언급했던 것처럼 DNS
는 도메인 이름과 IP
주소를 서로 변환하는 역할을 합니다. IP Address
를 얻기 위해 DNS
에 Domain Name
을 담은 요청을 보내고 결론적으로 그에 맞는 IP
를 얻어서 해당 IP Address
에 해당하는 서버로 요청을 보낼 수 있게 되는겁니다.
그럼 도메인 이름에 맞는 IP Address
를 얻는 과정을 좀 더 자세히 알아볼까요?
Domain Name
에서 IP Address
를 얻기까지
DNS Request
은 처음에는 Recursive Name Server
라는 곳으로 갑니다. Recursive Name Server
는 보통 인터넷 공급자(ISP resolver
)에 의해 작동하지만, 우리의 ISP resolver
에 문제가 있다면, 구글이나 다른 곳에서 만든 Public server
들을 이용할 수도 있습니다.
Recursive Name Server
는 아마 당신이 가려하는 웹사이트의 IP Address
를 이미 가지고 있을 것입니다. 하지만 만일 가지고 있지 않다면, .com
이나 .org
같은top-level 도메인들을 위한 요청들을 관장하는 13개의 Root Server
중 하나로 가게 됩니다. 13개의 서버가 작다고 생각할 수 있지만, 이러한 요청들을 빠르게 처리하기 위해 전 세계에 있는 수 많은 하드웨어를 이용합니다.
이제 우리의 요청이 .com
같은 적합한 top-level 도메인 서버에 보내졌다면, IP Address
와 그에 해당하는 URL들을 포함한 Authoritative
리스트를 가진 Authoritative Name Server
와 연결합니다. Authoritative List
는 누군가 도메인을 사거나 등록할 때 업데이트 됩니다.
우리가 원하는 IP 주소를 얻으면 다시 Recursive Name Server
로 보내고 최종적으로 우리의 컴퓨터로 IP Address
를 보내게 됩니다.
시간을 낭비하지 않기 위해 Recursive Name Server
와 우리의 컴퓨터는 DNS 항목을 잠시 캐시(cache) 형태로 저장해서, 나중에 또 같은 도메인에 들어가고자 할 때 위의 기나 긴 과정을 다시 반복하지 않게 합니다.
DNS
는 대부분의 사람들에게 잘 작동합니다. 그런데 만약 해당 웹사이트가 IP 주소를 바꿨다면 문제가 생길 수 있습니다. 컴퓨터가 자신이 가진 캐시(cache)만을 사용하려고 한다면 무수한 임의의 404 에러의 요청이 따를 것입니다. 컴퓨터의 DNS 캐시를 지우는 건 매우 쉽습니다.
> ipconfig/flushdns
이렇게 함으로써 문제를 해결할 수도 있겠죠, 하지만 멀 웨어(malware, 악성코드)가 지역적으로 저장된 DNS 항목(entries)을 악의 있는(malicious) 웹 사이트로 보내게 만드는 방식으로 당신의 DNS 캐시를 오염시킨다면 더 심각한 문제에 직면할 수 있습니다. 예를 들어 악의 있는 누군가가 우리의 컴퓨터에 내가 자주가는 사이트를 들어갔을 때, 그 사이트의 IP 주소 대신, 악의 있는 웹사이트의 IP 주소를 보내 당신의 개인 정보를 훔칠 수도 있습니다. 만약 이런 식으로 내가 의도한 웹사이트가 아닌 이상한 웹사이트로 리다이렉트된다면, anti-malware
애플리케이션이 도움을 줄 것입니다. 이러한 취약점에도 불구하고 DNS
는 인터넷을 아주 쉽게 사용할 수 있게 만들었습니다. 위에 말씀드렸던 것처럼 유튜브에 들어가기 위해 숫자로 된 IP 주소를 치지 않아도 되기 때문이죠.
참고
Written with StackEdit.
'Network' 카테고리의 다른 글
[네트워크] OSI 7 Layer와 TCP/IP (0) | 2019.05.28 |
---|---|
[네트워크] 🤷♂️ HTTPS가 뭐길래? (0) | 2019.02.16 |
댓글
이 글 공유하기
다른 글
-
[네트워크] OSI 7 Layer와 TCP/IP
[네트워크] OSI 7 Layer와 TCP/IP
2019.05.28 -
[네트워크] 🤷♂️ HTTPS가 뭐길래?
[네트워크] 🤷♂️ HTTPS가 뭐길래?
2019.02.16