이전 글 ( https://www.clien.net/service/board/lecture/15872844CLIEN ) 에서
네트워크가 왜 이런 모양을 갖게 되었는지에 대해 설명했습니다.
예? 어디서 한 번 본 글 같다고요?
기분 탓입니다. 넘어가죠.
이제 통신을 하기 위해서는 상대방의 IP 주소와 포트 번호를 알고 있으면 된다는 걸 알게 되었죠.
그런데 IP 주소를 보면 대강 느낄 수 있겠지만 전화번호와 유사하죠.
점(.)을 제외하면 모두 숫자로만 되어 있습니다.
그런데 우리가 일상적으로 연락하는 모든 사람의 전화번호를 다 외우고 다니기는 어렵죠?
솔직히 요즘은 제 전화번호도 가끔 까먹곤 합니다.
이런 빵은 없어.
그러다보니 우리는 전화번호부 혹은 주소록이라는 걸 만들어서
우리가 평소에 쓰는 단어와 전화번호를 매칭시킨 목록을 사용하곤 하는데요.
당연히 네트워크에서도 IP 주소를 일일이 외우고 쓰기에는 버겁기 때문에
주소록을 만들어 관리하고는 합니다.
윈도우를 사용한다면 %windir%\system32\drivers\etc\hosts 라는 파일이 바로 그 주소록 파일입니다.
아래와 같이 실행해보면 열어볼 수 있지만, 열어봐도 별 의미는 없으니 굳이 안 해봐도 됩니다.
여튼 이 hosts 라는 파일에는 IP주소와 상대 컴퓨터 이름(호스트 이름)을 쭉 나열해 적게 됩니다.
예를 들어 이런 식으로 말이죠. 엄청 간단하죠?
168.126.63.1 star 168.126.63.2 planet 168.126.63.3 nova 168.126.63.4 comet
이렇게 저장을 해놓게 되면 이제 3번 컴퓨터와 통신을 하기 위해
168.126.63.3 이라는 긴 이름 대신에 nova 라는 이름을 사용할 수 있게 됩니다.
예를 들어 웹 주소를 입력할 때 http://168.126.63.3 대신에 http://nova 라고만 입력해도 되게 되는 거죠.
좋아보이죠? 근데 여기에는 여러가지 문제가 존재합니다.
이게 결국은 자기 컴퓨터에 hosts 파일을 저장해놓고 필요할 때 열어보는 방식이다보니
나만 아는 이름이라는 거죠.
이걸 해결하려면 모든 컴퓨터에 모두 똑같은 hosts 파일을 가질 수 있도록 수시로 확인하고 업데이트를 해야합니다.
요즘이야 뭐 스팀 게임만 몇 개 깔면 기가급 자동업데이트가 일상인 세상이라 그냥 종종 업데이트를 하면 될 수도 있겠지만
예전에는 인터넷 속도가 1Mbps 고 그랬거든요. 느려 터졌었죠.
그런 상황에서 매일매일 모든 컴퓨터가 우와아아아 하면서 hosts 파일을 업데이트 하려고 하면 이 꼴이 나게 되겠죠?
설혹 이렇게해서라도 모든 LAN 의 호스트들이 같은 hosts 파일을 가지게 된다해도
처음에 이야기 했던 물리 주소와 같은 상황이 발생할 수 있다는 문제가 있었습니다.
무슨 이야기인가 하면,
반대쪽 네트워크에서는 별도로 hosts 파일을 관리하고 있다보니 중복되는 이름이 발생할 수가 있게 됩니다.
예를 들어 아래와 같은 경우 각 네트워크에서 서로 nova 라는 이름을 다른 IP에 연결해서 사용하는 경우가 있을 수 있습니다.

상황이 이렇다보니 모~든 컴퓨터가 다 아는 이름으로 중복없이 관리할 수 있는 무언가가 필요해지게 됩니다.
그래서 이 문제를 해결하기 위해 나온 것이 2개가 있는데 바로
도메인 네임 (Domain Name) 과
도메인 네임 서비스 (Domain Name Service) 입니다.
도메인 네임 서비스는 저 이름보다 DNS라는 약칭이 훨씬 널리 쓰이고 있죠.
또한 DNS 를 제공하는 서버 이름도 유명하죠. DNS 서버 혹은 네임 서버(Name Server)라고 합니다.
아마 얘들이 정확히 뭘 하는지는 몰라도 이름 한 번 쯤은 들어봤을 거라 생각합니다.
어쨌든 새로 생긴 것들을 간단히 말하면
아까는 호스트에만 이름을 붙였는데, 도메인 네임은 네트워크에도 이름을 붙이자는 이야기입니다.
예를 들어 윗 그림처럼 왼쪽 네트워크는 left.net 이라는 도메인 네임을
오른쪽 네트워크는 right.com 이라는 도메인 네임을 각자의 네트워크에 붙이게 됩니다.
그러면 좌/우 네트워크에서 같은 nova 라는 이름을 쓰더라도 도메인 네임과 붙여서 부르면
nova.left.net 과 nova.right.com 으로 더 이상 같은 이름이 아니게 되는거죠.
물론 이 도메인 네임은 중복이 되면 안 되기 때문에 누군가가 관리를 하게 됩니다.
'인터넷'에서 '관리' 하면 이제 슬슬 누가 하는지 눈치를 깔 타이밍이죠?
바로 IANA(아이아나)에서 이 도메인 네임을 관리합니다.
일반적으로 사용되는 도메인 네임들은 크게 2가지 종류로 나눌 수 있습니다.
국가별로 하나씩 할당되는 국가 도메인(ccTLD)과
용도별로 할당되는 일반 도메인(gTLD)입니다.
각 국가의 국가 코드 최상위 도메인 한국은 보이지도 않잖아 일본도 안 보이니 괜찮아
2개를 구분하는 방법은 매우 간단한데요 국가 도메인은 2글자고, 나머지는 전부 일반 도메인이라고 보시면 됩니다.
즉 .to, .at, .cc, .tv 같은 2글자 도메인들은 전부 국가 도메인이고
.com, .net, .info 같은 2글자가 아닌 도메인들은 전부 일반 도메인입니다.
그래서 우리나라도 .kr 도메인을 사용하고 있죠.
이 도메인들은 각각 모두 관리자가 있는데 .kr 도메인은 담당자가 길남이형으로 되어 있습니다.
https://www.iana.org/domains/root/db/kr.html
Delegation Record for .KR Administrative Contact Kilnam Chon Korea Network Information Center (KRNIC)
길남이형이 누군지 궁금한 분들에게 웹툰 하나 추천해 드립니다.
http://www.cosmos.kaist.ac.kr/professor/webtoon-chonkn
한국인이라면 잡스 아저씨보다 길남이형을 더 잘 알아야할 것입니다. (응?)
그리고 일반 도메인은... 너무 많아서 설명을 생략하겠습니다.
그래도 꼭 하나만 짚자면 .com 이나 .net 은 최초의 일반 도메인 6개 중 민간에 상업용으로 개방된 도메인이였기 때문에
현재도 가장 널리 쓰이는 도메인이 되었죠.
나머지 특수용도 도메인이었던 .org, .gov, .mil, .edu 는 별로 보신 적이 없을 겁니다.
사실 워낙 인터넷을 많이들 쓰는 세상이다보니 도메인 네임이 어떤 건지는 굳이 이런 설명 안해도
다들 아실거라 생각이 됩니다. 흔히 말하는 http:// 뒤에 있는 그거 라고하면 다 알죠?
이렇게 도메인 네임에 대한 내용은 대략 살펴봤는데
다 좋지만 이 도메인 네임을 모든 네트워크 상의 컴퓨터가 알아야 써먹을 수 있겠죠?
그래서 이 도메인 네임을 알려주는 114 같은 서비스를 오픈하게 됩니다.
네임서버는 생활정보를 제공하지 않습니다
네트워크 서버 중 한 대의 컴퓨터가 이제 주소를 알려주는 일을 하게 되는 거죠. 이 컴퓨터를 우리는 네임 서버 라고 하게 됩니다.
그러면 이제 네트워크 상의 컴퓨터들은 IP가 궁금할 때 네임 서버에게 물어보면 네임 서버가 답을 알려주기 때문에
더 이상 개별적으로 hosts 파일을 관리하지 않아도 되게 됩니다.
대신 도메인 네임을 사용하기 위해선 꼭 네임 서버를 등록해야만 하죠.
네임 서버는 도메인 네임을 묻기 위한 서버이기 때문에 반드시 IP 주소로 네임 서버를 알아야 합니다.
생각해 보면 당연한 이야기겠죠? 최소한 전화번호를 묻기 위해서는 '114'라는 전화번호는 알아야 하듯이 말입니다.
그래서 각 컴퓨터들은 네트워크 설정에 아래 처럼 DNS 서버 주소 칸에 202.30.38.1 이라는 정보를 입력해야만
https://clien.netCLIEN 이나 https://naver.com 등의 도메인 네임 주소를 사용할 수 있게 됩니다.
이제 네트워크 설정에 DNS가 왜 있는지. 그리고 거기에는 왜 IP 주소를 넣어야하는지 알 수 있게 되었을 것입니다.
그럼 네임 서버는 과연 어떻게 해서 도메인 네임과 IP 정보를 유지하느냐.
......
그 부분은 조금 많이 복잡하기 때문에글을 읽는 분들의 정신적 건강을 위하여 설명을 생략합니다.
우리가 사는 집의 욕실 수도꼭지를 틀면 물이 나오죠?
사실 우리는 여기까지만 알고 살아도 아무 문제가 없습니다.
수도꼭지 뒤에 무슨 시설이 있는지 우리가 굳이 알 필요가 없는 것 처럼 말이죠.
네임 서버가 도메인 네임 물어보면 IP주소를 알려준다 이 사실만 알고 계시면 됩니다.
다음에는 서브넷 마스크에 대한 이야기를 알아보겠습니다.
포트편: https://www.clien.net/service/board/lecture/15873771CLIEN
서브넷편: https://www.clien.net/service/board/lecture/15882226CLIEN
공유기편: https://www.clien.net/service/board/lecture/15887017CLIEN
/Vollago
짤도 정말 재밌고 적절하네요 감사합니다:)
직접 그리신 거라면 네트워크 실력뿐 아니라 이 분야에도 상당히 감각이 있으신 것 같습니다.
- Google의 8.8.8.8 https://developers.google.com/speed/public-dns/
- Quad9의 9.9.9.9 https://www.quad9.net/#Setup_Quad9
- CloudFlare의 1.1.1.1 https://www.cloudflare.com/learning/dns/what-is-1.1.1.1/
결국 DNS Query 가 느리면 인터넷 자체가 느려지는 꼴이 되다보니 가장 가까운 DNS를 쓰는 쪽이 유리할 수 있습니다. 1.1.1.1이 쩌네요. ㅋ
168.126.63.1의 응답: 바이트=32 시간=4ms TTL=58
8.8.8.8의 응답: 바이트=32 시간=32ms TTL=115
9.9.9.9의 응답: 바이트=32 시간=140ms TTL=54
1.1.1.1의 응답: 바이트=32 시간=4ms TTL=57
논리의 전개와 설명이 쪽집게 강사 같으시네요.
많은 도움이 되었습니다.
좋은 글 감사합니다.
거꾸로 찍혀서 오히려 헷갈리기만 하더군요.
대신 배는 나옵니다.
정말 쉽게 이해가 됩니다.
그리고 추천 합니다.