20110429 :: 네트워크 기초 상식

이 글은 집에서 로컬 네트워크를 구성해 PC간에 자료를 주고 받거나 NAS를 사용해 보고자 하는 분들을 위한 강좌글입니다만 너무 분량이 많아 쪼개서 쓰기로 했습니다. 글의 제목은 강좌가 끝날 무렵 다시 수정할 예정입니다.

사실 요즘 눈 코 뜰 새 없이 바쁘지만, 오늘은 야간에 철야를 하면서 주로 하는 일이 ‘기다리는 일’인 관계로 글을 하나 시작해 보고자 합니다. 사실 꽤 분량이 될 것으로 예상이 되어 연재 형태가 될 듯 해서 또 걱정입니다. ‘다음 편에 계속’이라고 보기 좋게 글 말미에 떡하니 써 놓고는 그 문제의 다음 편은 거의 ‘언제 한 번 올리도록 하겠다’가 되어 연재가 제대로 의미를 가지고 이어지지는 않은 적이 많았기 때문입니다. 하지만 5~6년 전에 써 놓은 조각 글들이 결국은 하나의 연재가 되어 알음알음으로 많이들 찾아 보고 최근까지도 답글이 달리는 것으로 봐서는 완성해 놓고 나면 의미 있는 작업이 될 듯도 합니다. ‘아주 쉽게’ 풀어 쓴 다는 것이 말처럼 쉽지 않고 또 늘상 만연체가 되어버리는 글쓰기 습관 때문에 얼마나 잘 될지 모르지만 그래도 한 번 시작해 보고자 합니다.

이 번에 이야기해보고자 하는 건 가정용 네트워크에서 PC끼리 혹은 PC와 스마트폰 사이에 파일을 공유하는 방법입니다. 뭐 사실은 많은 분들이 이렇게 하고 계시기도 하지만, 가정에서 공유기를 사용하면서 동시에 여러 대의 PC를 사용하면서 네트워크를 통해서 파일을 공유하고 주고 받는 환경을 구성하고 계신 분들이 또 의외로 많지 않으셔서 작게 나마 도움이 되었으면 합니다. 게다가 최근에 급격히 가격대가 착해진 NAS에 대해서도 욕심을 좀 내시는 분들이 있고, 이를 사용하려면 결국은 집에 로컬 네트워크를 구성해야 하기 때문에 기본적인 개념에서 출발해서 하나 하나 알아가는 형태로 시작해 보고자 합니다. 갈 길이 멀기 때문에 제 스스로 조급한 마음이 조금 들 것 같지만, 사실 알고보면 전 다 아는 이야기이기 때문에 그냥 느긋하게 맘 먹고 이야기를 이어 나가 보겠습니다.

가장 먼저 하고 싶은 이야기는 각 컴퓨터에 있는 정보에 접근하기 위한 기초. 바로 ‘컴퓨터의 주소’에 대한 이야기입니다.

IP주소

뭐, ip주소라는 말은 다들 많이 들어보셨으리라 생각됩니다. 안 들어보셨으면 지금 들어보시면 됩니다. (?) IP는 Internet Protocol의 줄임말인데, 별로 의미가 있는 말은 아닙니다. 흔히 ip주소를 그냥 ip로만 이야기하는 경우가 있는데 정확하게는 ip 주소라고 하는게 맞겠습니다. 아무튼 이 ip 주소라는 것은 네트워크에 연결되는 각각의 컴퓨터가 가지는 고유 주소입니다. 0~255까지의 숫자를 4개 조합하여 사용하게 됩니다. 이론상으로는 0.0.0.0 ~ 255.255.255.255가 됩니다. 따라서 이런 형태의 ip 주소는 대략 43억개 정도가 존재할 수 있습니다. [1. 이렇게 4마디로 끊어서 관리하는 ip 주소 체계를 ipv4라고 합니다. ipv4의 주소 체계는 2011년 2월 경 완전히 다 들어차 있는 상태입니다. 물론 사람들은 이런 날이 오리라고 이미 예견했기 때문에 ipv6라는 주소 체계를 별도로 만들어 두었습니다. ipv6는 자그마치 340,000,000,000,000,000,000,000,000,000,000,000,000개의 주소를 가질 수 있기 때문에 우리가 살아 있는 동안에는 ip 주소가 모자랄 일은 거의 없을 듯 합니다.] 흠 43억개도 무척이나 많지만 세상에는 컴퓨터가 43개보다도 더 많이 있습니다. (이와 관련된 이야기는 조금 있다가 할게요) 아무튼 인터넷에 존재하는 컴퓨터들은 각자가 모두 숫자로 만들어진 고유한 주소를 가지고 있다고 보면 됩니다.

여기서 말하는 ‘인터넷 상의 컴퓨터’는 보통의 경우에는 ‘서버’를 말합니다. 그리고 그 각각의 서버들이 가지고 있는 주소가 바로 IP 주소입니다. 예를 들면 구글의 서버 중 한대는 72.14.203.147 이라는 주소를 가지고 있습니다. [2. 이는 명령 프롬프트에서 nslookup google.com 이라는 명령을 사용하면 금방 알 수 있습니다.] 이 ip 주소를 인터넷 주소창에 입력하면 구글의 홈페이지가 뜨는 것을 실제로 확인할 수 있지요.

그런데 여러분의 컴퓨터도 인터넷에 물려져 있습니다. 그러니까 네트워크 카드가 유선이든 무선이든 컴퓨터에 들어있고 이를 통해서 인터넷에 접속하고 있다는 이야기이지요. 물론 그러니까 지금 이 글을 보고 있는 것 아니겠습니까. 그러면 여러분의 컴퓨터의 IP 주소는 어떻게 될까요?

이를 확인하기 위해서는 ipconfig 라는 명령을 사용합니다. 절차는 간단해요.

  • 시작 메뉴에서 ‘실행’을 선택한 다음 cmd 라고 치고 엔터를 입력합니다.
  • 도스 창 같은 참 못생긴 창이 하나 뜹니다. 그 창에다가 ipconfig 라고 입력하고 엔터칩니다.
  • 뭔가 주르르륵 나오는데요, 스크롤을 조금만 올려보시면 “로컬 네트워크 연결”이나 “무선 네트워크”라는 이름 아래에 지금 사용하고 있는 컴퓨터의 네트워크 연결 정보가 나옵니다. 그 중에 IP Address라는 항목이 지금 사용하는 컴퓨터의 IP 주소입니다. [2. 행여 만일의 상황을 대비해서 이 ip/subnet mask/gateway 주소들은 는 어디다 메모해 두는 것이 좋습니다.]

만약, 집에서 혹은 사무실에서 인터넷 공유기를 물려서 사용하고 있는 경우라면 이 IP 주소가 192.168.xxx.xxx 라는 식으로 되어 있을 가능성이 높습니다. 이 192.168.~ IP 주소 대역은 사설 네트워크에서 각 컴퓨터를 구성하기 위해 분배하여 사용하는 주소입니다. 그리고 아쉽게도 이 ip 주소는 로컬 네트워크[3. 사무실 같은 곳에서 공유기를 통해서 구성한 네트워크]에서 각 컴퓨터를 구분하기 위한 주소이므로 이 주소를 가지고는 인터넷에서 여러분을 딱 찝어서 찾아낼 수가 없습니다. 다만 역시 이 사설 IP의 경우에도 같은 망 구성 내에서는 IP는 ‘고유해야’ 하므로 똑같은 IP 주소를 가질 수는 없습니다.

다시 구글 서버로 돌아가 보겠습니다. 구글 서버가 가지고 있는 IP 주소는 이른 바 공인 IP입니다. 이 공인 IP는 당연히 고유 주소이고, 전세계에 통용됩니다. 전세계 어디서든 이 ip 주소를 통해서 구글 서버에 접근할 수 있다는 것입니다. 하지만 아마도 여러분의 IP는 로컬 네트워크 상의 주소이므로, 인터넷 공간에서는 여러분의 PC를 직접 찾을 수가 없습니다. 로컬 네트워크는 인터넷 세계에서는 아주 산간 벽지 마을이라고 생각하면 이해가 좀 편하려나요.

게이트웨이

게이트웨이는 말 그대로 관문입니다. 만약 가정이나 사무실에 인터넷 공유기를 사용하여 로컬 네트워크를 구성하였다면 해당 로컬 네트워크에서 1차적인 게이트웨이는 바로 그 공유기가 되겠지요. 물론 설정하기 나름이라 다 다를 수도 있지만 일반적인 공유기를 사용하고 있고, 별도의 설정을 하지 않았다면 이 공유기의 주소는 192.168.0.1[1. 만약 유선랜으로 공유기와 연결되어 있다면 이 주소를 브라우저의 주소창에 넣어보세요. 🙂 ]일 가능성이 높습니다. 만약 여러분의 PC의 ip 주소가 123.159.123.98 이라면 게이트웨이는 맨 마지막 마디의 주소가 1일 확률이 가장 크다는 것이지요.

게이트웨이 역할을 하는 공유기는 사실 많은 역할을 합니다. 공유기에 물려진 PC에 사설 IP를 부여하고, 각각의 IP 주소가 가지고 있는 컴퓨터가 로컬 네트워크 외부에 있는 다른 컴퓨터와 주고 받는 데이터를 분류하여 제대로 된 PC로 전달하는, 그러니까 교통정리를 합니다. 우리가 집에서 로컬 네트워크를 구성하기 위해 구입해서 설치하는 공유기들은 아주아주 싼 가격이지만 이런 기능들을 모두들 훌륭히 수행하고 있다는 겁니다.

그리고 아마도 우리의 컴퓨터는 이렇게 우리 눈에 보이는 공유기를 타고 나가 인터넷에 연결되지만, 사실상 어디있는지 짐작도 잘 되지 않는 미지의 게이트웨이들을 아주 여럿 거쳐 나가게 됩니다. 이 과정은 의외로 상당히 복잡합니다. 인터넷은 물리적으로는 수많은 갈림길과 교차로가 있는 어마어마하게 복잡한 전선의 미로인 셈입니다. 하지만 이런 복잡성은 특정 지점의 게이트웨이가 손상되는 등 정상적으로 동작하지 않을 때 우회할 수 있는 경로가 어디엔가는 존재하는 경우가 많아서 지진이 난다는 가 하는 큰 난리가 난 지역에서도 전화는 안돼도 인터넷은 되는 것이지요.

서브넷 마스크

서브넷 마스크에 대해서는 사실 상 네트워크 관리자가 아닌 다음에는 그다지 신경쓰지 않아도 됩니다. 일반적으로 서브넷 마스크는 네트워크 설정 시 255.255.255.0의 값을 가집니다. 이 의미는 ip 주소가 aaa.bbb.ccc.ddd 라고 할 때 ddd 대역에 대해서는 서브 네트워크인 로컬 네트워크가 임의로 사용하는 ip이며 그 이상의 aaa.bbb.ccc 대역은 필터된다는 의미입니다. 의미라고는 해도 사실 와 닿지가 않는데요, 이를테면 192.168.0.xxx 라는 ip에 대해서 두 개의 다른 서브 네트워크가 존재해, 각각의 ip 대역에 대해 구분을 짓게 될 때나 사용된다고 생각하면 됩니다. 하지만 일반적으로 여러분들은 집에서 공유기 하나를 사용하여 구성하는 로컬 네트워크에서는 0~255까지의 모든 대역을 사용해도 무방하므로 신경 쓸 필요가 없습니다. 각각의 pc에서 ip를 수동으로 관리할 때는 그냥 서브넷 마스크에는 255.255.255.0 을 쓴다라고만 알고 있으면 됩니다.

DNS

DNS는 사실 상 로컬 네트워크 구성과는 무관합니다. 이는 www.google.com 과 같은 도메인 주소와 관련이 있습니다. 인터넷에 존재하는 컴퓨터들은 모두 고유한 IP를 가지고 있다고 했습니다. 하지만 이 IP 주소는 숫자로 구성되어 있어서 기억하기가 힘듭니다. 그래서 보다 ‘인간친화적’인 구분 방법이 필요해졌는데, 이것이 바로 ‘도메인 네임’입니다. 우리가 흔히 사용하는 ‘인터넷 주소’는 이 도메인네임을 이야기합니다.

DNS는 어떤 도메인 네임이 어떤 IP 주소와 연결되는지에 대한 정보를 저장하고 있는 서버입니다. 만약 우리가 인터넷 브라우저의 주소창에 www.naver.com을 입력한다면 다음과 같은 순서를 거치게 됩니다.

  1. PC는 먼저 네트워크 설정에서 지정된 DNS의 주소를 가지고 DNS 서버에게 입력된 ‘www.naver.com’에 해당하는 ip를 물어보게 됩니다.
  2. DNS서버는 www.naver.com 에 할당되어 있는 ip는 222.122.195.5라고 알려줍니다.
  3. PC의 인터넷브라우저는 이 값을 가지고 222.122.195.5 의 ip로 접속을 하게 됩니다.
  4. 해당 주소에 있는 네이버 서버는 네이버 메인화면을 구성하는데 필요한 html 파일과 기타 파일들을 전송해 줍니다.
  5. PC의 인터넷 브라우저는 해당 파일을 해석하여 네이버의 메인화면을 화면에 그려줍니다.

DNS 주소는 통상 ISP 사업자[4. KT, SK와 같이 유선 인터넷 서비스를 제공하는 사업자]가 기본적으로 제공하는 것들이 있습니다. 보통 이런 서비스에 가입해서 인터넷을 사용하면 ip 주소를 자동으로 할당받게 되는데, 이 때 DNS 주소도 함께 할당 받습니다.

물론 DNS 주소는 수동으로 설정할 수 있습니다. 구글도 이러한 DNS를 운영하고 있는데, 주소가 외우기 쉽게 8.8.8.8, 8.8.4.4 와 같이 되어 있습니다. 구글의 DNS 나 오픈DNS 와 같은 서비스를 사용하는 것도 좋지만 아무래도 외국에 있는 서버이다 보니 응답 속도가 조금은 느릴 수 있습니다. DNS에 접속하여 ip주소를 받아오는 과정은 사실상 매우 눈깜짝할 사이에 일어나는 일이긴 합니다만, 엄밀히 이야기한다면 그래도 속도가 느린 것은 사실이지요. 굳이 오픈 DNS를 사용할 일은 그리 많지 않은 것 같습니다만, 일부 회사와 같은 곳에서는 이 DNS를 통해 특정 웹사이트 주소를 차단하는 게 가능합니다. 이런 경우라면 오픈 DNS를 사용하면 해당 웹 주소의 ip 주소를 가져오는 것이 가능해서 우회하는 것도 가능합니다.

구글 크롬이나 파이어폭스와 같은 브라우저들은 DNS pre-fetch 라는 기술을 사용합니다. 이는 DNS에 등록된 ip 주소가 사실 자주 바뀌는 일은 거의 없으므로, 한 번 가져온 ip에 대해서는 저장하고 있다가 해당 주소의 ip로 바로 접근합니다. DNS를 거치는 과정을 생략하므로 웹페이지 접속에 걸리는 시간을 조금이라도 더 줄일 수가 있는 것이지요. (그래서 이 경우에는 차단되어야 할 웹 사이트가 그냥 열리는 경우도 가끔 있습니다.)

이상으로 컴퓨터에서 사용되는 IP 및 기타 네트워크 주소에 대해서 간략하게 살펴보았습니다. 다음 글에서는 공유기를 설치하는 방법과 설정하는 법에 대해서 간단히 살펴보도록 하겠습니다. 물론 오늘 글의 내용만 어느 정도 이해하시면 공유기 설치는 사실 진정으로 껌입니다. 그럼 다음 글에서 뵙겠습니다.