[네트워크 트러블 슈팅 ③] 단계별 라우터 트러블 점검하기

일반입력 :2008/09/10 10:58

이상영(KTF 인프라망 운영 및 방화벽 관리 담당)

3부에서는 이른바 '다 이상 없이 설치 했는데 안 되는 경우'인 L3 단 에서의 장애요소에 대해서 알아보려고 한다. 이는 사용자가 인터넷 망을 이용하면서 가장 많이 접하게 되는 장애요소이면서도 눈에 보이지 않는 탓에 골칫거리가 되기 십상인 문제들이다. 눈에 보이지 않는다면 현미경이나 돋보기, X-ray라도 사용해서 보면 될 일이다. 이제부터 눈에 보이지 않는 문제점들을 하나씩 찾아 그 해결책을 마련해 보자.

이제 인터넷 없는 컴퓨터나 업무 환경은 상상할 수 없을 정도가 되었다. 하다못해 문서 작업만 하는 사용자라도 인터넷을 통해 필요한 자료들을 쉽게 찾을 수 있는 탓에 늘 인터넷과 함께하게 마련이다.

또, 굳이 사용자가 인터넷에 접속하여 정보를 찾고 있지 않더라도 여러 애플리케이션들이 임의의 작업을 위해 우리도 모르는 사이에 인터넷으로부터 정보와 필요한 자료들을 주고 받기도 한다. 이렇듯 다양한 용도로 인터넷을 사용하다 보니 자연히 문제점이나 그 해결 방법들도 무수히 많이 생겨났다.

때문에 여기에서 모든 사례들을 늘어놓고 또 해결방법을 제시할 수는 없지만, 여러 문제를 해결할 수 있는 핵심 키가 되는 정보에 대해서 논하는 것은 가능할 것이다. 여기에서는 독자들의 이해를 돕기 위해 네트워크 상에 발생한 문제를 찾고 해결하는 일련의 과정을 범죄 수사 드라마와 비교하며 설명한다.

불과 몇 년 전까지만 해도 “오늘 주가가 어떻게 되지?” “주말 좋은 영화 없나?”새로 나온 게임기가 어디가 제일 싸지?”라는 등의 질문을 받으면 신문을 보거나 싸게 파는 전자상가를 추천하는 등 각 질문에 해당하는 대담을 했을 것이다. 하지만 지금은 어떤가? 어떤 질문을 듣던 간에 자신이 잘 모르는 내용이라면 답은 딱 하나다.“ 인터넷에 들어가봐”.

보통 사람들이 하는 인터넷에 들어가 보란 이 간단한 말을 네트워크 관리자 입장에서 다시 풀어보면 ‘ISP 업자의 회선을 임대하여 다른 네트워크에서 서비스 중인 웹 사이트에 접속해 보라’가 된다.

우리가 간단히‘인터넷’이라고 말하지만 실제 인터넷이 어떻게 생겨 먹었는지, 도대체 무엇을 인터넷이라고 부르는지 그냥 검색 창에 검색어만 넣어서 사용할 때에는 전혀 알고 있을 필요가 없다.

하지만, 인터넷 사용 중에 발생하는 문제를 해결하려면 반드시 알고 넘어가야 하는 부분이다. 이제부터 간단하게 나마 인터넷이 어떻게 구성되는지 알아보자. 마소의 독자들이라면 대부분 알고 있음직한 내용이지만 다시 한번 정리해 보는 것도 나쁘지 않을 것이다.

경로라는 의미의 라우트(Route). 라우팅(Routing)은 그 이름처럼 경로를 알려주는 장비나 프로세스를 말한다. 우리가 흔히 접하는 라우터라는 장비나 조금 비싼 스위치들은 이 라우팅 기능을 가지고 있다. 네트워크 상의 라우팅은 목적지까지 도달하는 가장 경제적이면서도 빠른 경로를 탐색해내는 역할을 담당한다.

즉, 라우터나 스위치(모든 스위치에 라우팅 기능이 있는 것은 아니다)는 전송 받은 데이터를 본래 가고자 하는 목적지까지 안전하게 전달하기 위해 가장 적절한 다음 장비에게로 데이터를 넘겨주는 역할을 한다.

인터넷은 여러 종류의 네트워크들이 모여 다른 건물이나 다른지역 그리고 서로 다른 나라를 연결하는 거대한 네트워크이다. 인터넷은 그 중심점도 없고 책임지는 관리자도 없는 유기적으로 발달하고 확장되는 네트워크인 셈이다. 게다가 그 규모가 워낙 큰 탓에 만약 문제가 그 원인과 문제 발생지점을 찾아 해결하는것도 어려워진다.

이때, 가장 기본적인 물리적 요소를 먼저 점검하고 문제가 없다면, 다음으로 살펴 보아야 할 것이 바로 네트워크 장비들이다. 네트워크 장비들은 서로 다른 컴퓨터나 서버들을 연결해주고 다른 네트워크까지 가는 최적의 경로를 제시하는 역할을 한다. 지금부터 이러한 장비에 발생한 문제를 확인하는 방법에 대해 알아보자.

평상시 잘 되던 인터넷이 어느 날 갑자기 되지 않는다면 가장 먼저 확인해 보아야 할 일은 무엇일까? 범죄 수사물 드라마에서 보면 문제가 생겼을 경우 가장 먼저 자신을 용의선상에서 제외시킨다.

하지만 무턱대고 나를 용의선상에서 제외시킬 수는 없는일. ‘내 컴퓨터는 아무 문제가 없다’라는 가정하에 다른 문제를 찾아 나서려면 먼저 이 명제가 만족할 수 있도록 몇 가지 확인을 해야 한다.

실제로 인터넷이 안 된다고 문의하는 사람들의 컴퓨터 자체에서 문제를 발견하게 되는 경우가 드물지 않은 탓이다. 자 이제 나를 용의선상에서 제외시키기 위한 작업들을 해 보자.

IP 주소 확인하기

내 컴퓨터에 문제가 없다는 사실을 증명하려면 먼저 자신의 IP 주소가 제대로 설정되어 있는지 확인해야 한다. IP 주소는 인터넷 상에서 내 컴퓨터를 다른 컴퓨터와 구분시켜 주는 유일한 주소이다.

때문에 내 컴퓨터의 IP 주소가 다른 컴퓨터의 것과 중복되어서는 안 되는데 애초에 사용하던 IP 주소가 아닌 다른 주소로 바뀌어 있다면 인터넷에 연결되지 않을 수 있다. 현재 내 컴퓨터에 설정되어 있는 IP 주소를 확인하려면 커맨드 창을 연 뒤에 <화면1>과 ‘ipconfig’를 입력한다.

<그림 1> 에서 스위치 A에는 지문감식반원들의 컴퓨터들이 연결되어 있다. 지문감식반원들은 스위치 A를 통해 서로 정보를 주고 받게 되는데 호레시오 반장이 에릭에게 지문표본 파일을 보내려 한다고 가정해보자.

호레시오 반장의 컴퓨터 A는 에릭의 컴퓨터인 B로 데이터를 전송하려고 시도한다. 이때 A가 보내는 데이터를 들여다 보면 몇 개의 공통적인 항목이 있는 것을 알 수 있다. 그 항목이라는 것은 다음과 같다.

1. 출발지 주소

2. 전송할 데이터

3. 목적지 주소

이 세 가지 항목은 네트워크 통신을 하는 모든 장비들이 보내는 신호에 공통적으로 포함되어 있다. 소포를 보내려면 소포를 보내는 사람과 받는 사람의 주소 그리고 내용물이 있어야 하는것과 유사한 구성이다. 이런 항목들로 구성된 데이터를 랜 카드를 통해 내보내면 가장 먼저 그 데이터를 받아 보는 것이 바로 스위치이다.

<그림 2>에서 스위치는 호레시오 반장이 내보낸 데이터를 열어 이것을 어디로 보내야 할지를 결정하게 되는데 이때 스위칭과 라우팅이 드디어 등장한다. 스위치 A는 자신의 포트에 연결된 모든 장비들의 MAC 주소와 연결된 포트 번호를 매칭시켜 기억하고 있다가 자신이 알고 있는 MAC 주소나 IP 주소가 있으면 메모리를 검색해 매칭된 포트로 데이터를 내 보내게 된다.

이 과정에서 Mac 주소를 이용한 데이터 전송 방식을 스위칭이라고 하며 이때 스위치에 기억된 포트와 IP 주소 그리고 MAC 주소의 매칭 정보를 ARP(Address Resolution Protocol)라고 부른다.

스위치는 에릭의 PC가 11.22.33.44.aa.bb 라는 MAC 주소를 가지고 있으며 또한 2.2.2.2의 IP로 자신의 포트 중 5번 포트에 연결되어 있다는 것을 ARP를 통해 알고 있다.

덕분에 호레시오 반장에게서 받은 데이터를 5번 포트로 내 보내게 되는 것이다. 이처럼 물리적인 주소를 통해 경로를 확정 짓는 것을 스위칭이라고 한다. 그리고 그러한 역할을 하는 장비를 스위치라고 한다.

필자의 노트북에는 무선 랜 카드가 장착되어 있어‘무선 네트워크 연결’항목이 따로 보이지만 이 항목은 없어도 무방하다. 중요한 것은‘ipconfig’라는 명령과‘IP Address’에 표시된 주소이다.

화면을 통해 필자의 노트북의 IP 주소는 192.168.0.5라로 설정되어 있음을 알 수 있다. 이 주소가 네트워크 관리자로부터 할당 받은 자신의 IP 주소가 맞는 지 확인 하자. 또 서브넷 마스크(Subnet Mask) 항목과 디폴트 게이트웨이(Default Gateway) 항목도 함께 확인하여 세 항목이 모두 일치하는지 확인해 봐야한다.

핑 테스트 하기

컴퓨터에 IP 주소가 정상적으로 설정되어 있다 하더라도 컴퓨터가 IP 주소를 올바로 인식하고 있지 않다면 인터넷에 정상적으로 연결되어있다고 볼 수 없다.

내 컴퓨터가 IP 주소를 올바로 인식하고 있고 인터넷에 제대로 연결되어 있는지 확인하는 방법이 바로 흔히 말하는 핑(Ping)이다. 핑 테스트를 하는 방법은 간단하다. 먼저 커맨드 창을 하나 연뒤에 ‘ping’이라는 명령어와 자신의 IP 주소를 입력하면 된다. <화면 2>는 핑 테스트 결과이다.

L3 기반의 라우팅(Routing)

이제 <그림 2>를 보자. 이 그림에서 네트워크 A를 마이애미 CSI의 사무실이고 가정하자. 네트워크 B는 라스베가스 CSI 의사무실이다. 호레시오 반장이 그리섬 반장과 통신을 하려고 한다.

일단 호레시오 반장이 보낸 데이터는 컴퓨터에 설정된 게이트웨이(Gateway)로 보내진다. <그림 1>의 경우와 같이 스위치를 지나게 되지만 스위치 A에는 그리섬 반장의 정보가 기억되어 있지 않다.

하지만 호레시오 반장의 컴퓨터에 설정된 게이트웨이의 IP와 포트 정보는 가지고 있으므로 라우터가 연결된 10번 포트로 내보내게 된다. 게이트웨이는 데이터를 원하는 목적지까지 내기 위해 내보내는 대문이라고 이해하면 된다. 게이트웨이의 역할은 주로 라우터가 대신한다.

<화면 2>와 같은 결과가 표시된다면 내 컴퓨터의 설정은 모두 확인된 셈이다. 즉, 내 컴퓨터는 인터넷에 접속할 환경을 모두 갖췄으니 용의선상에서 제외시켜도 된다는 뜻이다.

내 PC의 상황은 정리되어 이제 나는 용의선상에서 제외 되었다. 그럼 범인은 누구인가? 두 번째 확인 할 사항은 또 다른 피해자(?)가 있는지 확인 하는 것이다. 같은 네트워크 안의 컴퓨터들 중에 내 컴퓨터만 인터넷이 안 되는지 확인해 보자.

가장 쉬운 방법은 같은 사무실의 동료에게 물어보는 것이다. 혹 민망한 질문이 될 수도 있겠지만 반드시 확인해야 한다.

이 경우 상황은 두 가지로 나뉠 수 있는데 동료들은 아무 문제가 없거나 다른 동료들도 문제가 있는 경우이다. 같은 네트워크를 사용하는 모든 사용자가 문제라면 네트워크 관리자는 ‘got a big trouble’이 되겠다.

아무튼 모든 사용자의 문제이든 나만의 문제이든 문제의 원인이 어디 있는지 유추 할 수 있다면 네트워크 관리자에게 문의할때 더욱 빠른 조치를 기대할 수 있을 것이다. 내가 속한 같은 네트워크 사용자들끼리의 통신을 체크하면 인터넷이 안 되는 원인이 LAN에 있는지, WAN에 있는지 확인할 수 있다.

만약, 인터넷이 안 된다는 다른 사람이 있다면 그 사람의 컴퓨터에서 핑 테스트를 해 보자(이 글에서 핑 테스트를 자주하게 되는데 이는 다른 장비와의 네트워크 상태를 파악할 수 있는 가장 확실하고 빠른 방법이기 때문이다). 핑이 가능하다면 LAN 환경에는 문제가 없는 것으로 확인 할 수 있다.

다만 <화면 3>과 같은 메시지가 보인다면 문제의 해결점은 거의 찾은 것이나 다름 없다.

이렇게 라우터로 넘겨진 데이터는 다음 경로를 향해 다시 전송되는데 라우터는 이 데이터의 세부 정보를 살펴보고 어디로 전송해야 할지를 결정하게 된다. 이때 간략히 목적지 주소와 출발지 주소 그리고 전송할 데이터로 이루어져 있는 묶음을 ‘패킷’이라고 한다.

라우터는 이 패킷을 전송 받아 열어보고 목적지 주소를 읽은 다음 그 목적지까지의 가장 빠르거나 혹은 이미 지정되어 있는 다음 경로를 향해 보내게 되는 것이다.

호레시오 반장이 보낸 패킷에는 ‘3.3.3.3’라는 그리섬 반장의 컴퓨터 주소가 기록되어 있을 것이다. 라우터는 이제 그리섬 반장의 컴퓨터로 이 패킷을 전달하기 위해 다음 경로로 이 패킷을 보내게 된다. 이때 참조하는 것이 바로 앞서 언급한 라우팅 테이블이다. 이제 라우터 A에 설정된 라우팅 테이블을 살펴보자.

<화면 3>과 같이 192.168.0.7의 IP 주소를 사용하는 동료에게 핑 테스트를 하여 실패한다면 내 PC 가 연결된 스위치에 문제가 있는 것이 거의 확실하다. 좀더 복합하고 고도화된 환경에서라면 라우터의 액세스 리스트, 방화벽 설정 등, 다른 변수가 많이 있겠지만 일반적인 네트워크 구성이라면 스위치 문제로 판단해도 무방하다.

그럼 이제 네트워크 담당자에게 ‘스위치에 문제가 생겨 인터넷이 안 되는 듯하니 조치를 취해 달라’고 요청하면 된다.

다른 컴퓨터에서 핑 테스트가 실패를 했다면 대부분의 경우에는 스위치 문제이다. 하지만, 언제나 그런 것은 아니다. 스위치가 유력한 용의자이긴 하지만 스위치 위선에서 동작하는 라우터 등의 장비 또한 의심해 보아야 한다.

라우터 A는 <예 1>과 같은 라우팅 테이블을 가지고 있는데 이 테이블을 해석하면 다음과 같다.

- 모든 목적지 주소(0.0.0.0 0.0.0.0)로 가는 패킷은 1.1.1.2로 보낸다.

- C Class 3.3.3.0 대역으로 가는 패킷은 1.1.1.3로 보낸다.

즉 이 라우터는 ‘3.3.3.0’이 목적지 주소인 패킷만 ‘1.1.1.3’으로 전달하고 나머지 모든 패킷은 ‘1.1.1.2’로 전달하는 것이다. 경로는 이제 정해졌다. 라우터는 실제 그리섬 반장의 컴퓨터에 대한 정보는 전혀 모르지만 ‘3.3.3.0’ 대역으로 가려면 ‘1.1.1.3’을 통해야 한다는 것은 알고 있으므로 호레시오 반장이 보낸 패킷을 ‘1.1.1.3’으로 전달하게 되는 것이다.

같은 네트워크 상의 다른 모든 컴퓨터가 통신에 별다른 문제를 가지고 있지 않은데 인터넷이 안 되는 경우라면 스위치의 물리적인 문제가 아니라 스위치 윗단의 문제라는 해답을 얻을 수 있다.

스위치 윗단의 장비들을 네트워크 관리자들은 ‘L3 단’이나 ‘라우팅 문제’라고 부른다. 흔히 말하는 라우팅 문제는 장비가 전송받은 데이터를 어디로 넘겨주어야 할지 잘 모르거나 잘못 넘겨주어 생기는 문제이다.

경로라는 의미의 라우트(Route). 라우팅(Routing)은 그 이름처럼 경로를 알려주는 장비나 프로세스를 말한다. 우리가 흔히 접하는 라우터라는 장비나 조금 비싼 스위치들은 이 라우팅 기능을 가지고 있다. 네트워크 상의 라우팅은 목적지까지 도달하는 가장 경제적이면서도 빠른 경로를 탐색해내는 역할을 담당한다.

즉, 라우터나 스위치(모든 스위치에 라우팅 기능이 있는 것은 아니다)는 전송 받은 데이터를 본래 가고자 하는 목적지까지 안전하게 전달하기 위해 가장 적절한 다음 장비에게로 데이터를 넘겨주는 역할을 한다.

스위치가 받은 데이터는 다음으로 라우터가 넘겨 받게 되는데 데이터를 넘겨 받은 라우터는 자신의 설정 값에 저장된 다음 경로로 데이터를 내보내도록 되어 있다. 이 과정에서 데이터를 올바르게 넘겨주지 못하였거나 혹은 정상적으로 넘겨 주었는데도 상대 장비가 받지 못하였는지 확인하는 방법에 대해 알아보자.

이번에 사용되는 명령어는 Tracert이다. 이 명령어는 뒤에 목적지 IP 주소를 붙여 사용하는데 그 목적지까지 이동하는 동안 거치는 장비들(라우팅을 하는 장비들에 한해)을 보여준다.

요즘 자주 쓰이는 유행어처럼 조사하면 다 나오는지 확인해 보자. 우선 내 컴퓨터에서 다른 네트워크 상에 있는 컴퓨터로 Tracert를 실행해 본다(가능한 외부의 다른 네트워크 상에 있는 서버나 컴퓨터를 상대로 테스트하는 것이 좋다).

이때 가급적이면 이미 잘 알려진 곳이거나 테스트하는 동안 우연이라도 다운되어 있을 확률이 적은 곳을 사용하는 편이 좋다. (예: kornet DNS 서버 등)

Tracert 테스트를 하려면 먼저 커맨드 창을 연 뒤에 <화면 4>처럼 ‘tracert’와 테스트할 장비의 IP 주소를 순서대로 입력하면된다. 자, 이제 Tracert는 우리의 컴퓨터에서 출발하여 어떤 경로를 통해 외부로 나가며 또한 원하는 목적지가지 어떠한 정거장들을 거치는지 화면에 표시될 것이다.

고급 자료는 숨겨져 있을까봐 걱정할 필요도 없다. 많은 카페들이 회원 유치 후 억지로 활동을 유지하도록 하기 위해 등급별로 자료를 제공하지만 네전따는 다르다. 일단 카페 회원이라면 누구나 모든 자료를 찾아 볼 수 있다.

회원의 유형도 네트워크 관련 자격증이나 취업을 준비하는 학생부터, 네트워크 벤더사의 영업 및 엔지니어까지 다양하다. 이들은 다시 지역과 관심사들을 나누어 정모를 하거나 스터디 그룹을 결성하기도 한다. 네트워크에 관심은 많지만 너무 어려워서 책을 보고 공부하기 어려웠다면, 연재 칼럼 게시판을 추천한다.

카페 운영자와 스텝들이 네트워크와 관련된 칼럼을 쉽고 자세하게 올려주기 때문이다. 이번 특집을 통해 자신에게 꼭 필요한 정보를 얻지 못한 독자라면 네전따를 방문해 보는 것은 어떨까.

<화면 4>를 보면 문제가 되는 네트워크 장비의 위치를 찾을 수 있다. 화면에서 ‘3 * * * Request timed out.’이라고 표시된 부분을 주목하자. 그 윗줄의 내용들은 각 장비까지 도달하기 위해 걸린 시간과 도달한 장비의 IP 주소를 표시하고 있다. 반면 3번 줄부터는 장비가 데이터를 올바로 전송 받지 못했거나 두 번째 장비가 엉뚱한 곳으로 데이터를 전달했다는 사실을 알 수 있다.

수많은 용의자들이 단 둘로 압축되었으니 이제 문제의 원인을 찾는 것은 시간문제다. 문제가 되는 두 장비에 접속하여 장비들이 이상 없이 동작 중인지, 그리고 올바른 경로가 설정되어 있는지를 조사하면 된다. 이를 ‘라우팅 테이블을 검사’라고 부른다. 라우팅 테이블에 관해서는 잠시 뒤에 자세히 알아볼 것이다.

지금까지 갑자기 인터넷이 되지 않을 때 해야 하는 몇 가지 조사 방법들에 대해 알아봤다. 하지만, 여기에서 제시된 답들이 언제나 들어맞지는 않는다. 수사 드라마를 봐도 같은 사건을 풀어 나가는 방법이나 수사방법의 허점을 노린 범행들이 비일비재하지 않던가.

앞에서 설명된 해결방법은 아주 순조롭게 문제들이 처리될 때에만 확보될 수 있는 ‘드라마적인’ 경우라고 할 수 있다. 실제로 네트워크를 운영하면서 생기는 장애포인트를 확인하는 방법은 훨씬 더 복잡하고 다양하다.

지금부터는 이 정도의 간단한 방법으로는 해결하지 문제를 해결하지 못하였거나, 보다 심층적인 내용을 알고자 하는 독자들을 위한 내용을 다뤄 볼 참이다.

L2 기반 스위칭

네트워크 통신이라는 것 자체가 데이터를 서로 주고 받는 과정을 말하는 것이므로 그 주고 받는 과정엔 어떤 규칙과 룰이 있게 마련이다. 이러한 규칙과 룰에 따라 동작하도록 설계된 장비가 지금부터 자세히 알아볼 스위치와 라우터이다. 이들이 하는 역할은 과연 무엇일까?

<그림 1>은 스위치에 연결된 네트워크를 범죄 수사 드라마의 지문 감식반에 비유한 것이다.

<그림 1> 에서 스위치 A에는 지문감식반원들의 컴퓨터들이 연결되어 있다. 지문감식반원들은 스위치 A를 통해 서로 정보를 주고 받게 되는데 호레시오 반장이 에릭에게 지문표본 파일을 보내려 한다고 가정해보자.

호레시오 반장의 컴퓨터 A는 에릭의 컴퓨터인 B로 데이터를 전송하려고 시도한다. 이때 A가 보내는 데이터를 들여다 보면 몇 개의 공통적인 항목이 있는 것을 알 수 있다. 그 항목이라는 것은 다음과 같다.

1. 출발지 주소

2. 전송할 데이터

3. 목적지 주소

이 세 가지 항목은 네트워크 통신을 하는 모든 장비들이 보내는 신호에 공통적으로 포함되어 있다. 소포를 보내려면 소포를 보내는 사람과 받는 사람의 주소 그리고 내용물이 있어야 하는것과 유사한 구성이다. 이런 항목들로 구성된 데이터를 랜 카드를 통해 내보내면 가장 먼저 그 데이터를 받아 보는 것이 바로 스위치이다.

<그림 2>에서 스위치는 호레시오 반장이 내보낸 데이터를 열어 이것을 어디로 보내야 할지를 결정하게 되는데 이때 스위칭과 라우팅이 드디어 등장한다. 스위치 A는 자신의 포트에 연결된 모든 장비들의 MAC 주소와 연결된 포트 번호를 매칭시켜 기억하고 있다가 자신이 알고 있는 MAC 주소나 IP 주소가 있으면 메모리를 검색해 매칭된 포트로 데이터를 내 보내게 된다.

이 과정에서 Mac 주소를 이용한 데이터 전송 방식을 스위칭이라고 하며 이때 스위치에 기억된 포트와 IP 주소 그리고 MAC 주소의 매칭 정보를 ARP(Address Resolution Protocol)라고 부른다.

스위치는 에릭의 PC가 11.22.33.44.aa.bb 라는 MAC 주소를 가지고 있으며 또한 2.2.2.2의 IP로 자신의 포트 중 5번 포트에 연결되어 있다는 것을 ARP를 통해 알고 있다.

덕분에 호레시오 반장에게서 받은 데이터를 5번 포트로 내 보내게 되는 것이다. 이처럼 물리적인 주소를 통해 경로를 확정 짓는 것을 스위칭이라고 한다. 그리고 그러한 역할을 하는 장비를 스위치라고 한다.

L3 기반의 라우팅(Routing)

이제 <그림 2>를 보자. 이 그림에서 네트워크 A를 마이애미 CSI의 사무실이고 가정하자. 네트워크 B는 라스베가스 CSI 의사무실이다. 호레시오 반장이 그리섬 반장과 통신을 하려고 한다.

일단 호레시오 반장이 보낸 데이터는 컴퓨터에 설정된 게이트웨이(Gateway)로 보내진다. <그림 1>의 경우와 같이 스위치를 지나게 되지만 스위치 A에는 그리섬 반장의 정보가 기억되어 있지 않다.

하지만 호레시오 반장의 컴퓨터에 설정된 게이트웨이의 IP와 포트 정보는 가지고 있으므로 라우터가 연결된 10번 포트로 내보내게 된다. 게이트웨이는 데이터를 원하는 목적지까지 내기 위해 내보내는 대문이라고 이해하면 된다. 게이트웨이의 역할은 주로 라우터가 대신한다.

이렇게 라우터로 넘겨진 데이터는 다음 경로를 향해 다시 전송되는데 라우터는 이 데이터의 세부 정보를 살펴보고 어디로 전송해야 할지를 결정하게 된다. 이때 간략히 목적지 주소와 출발지 주소 그리고 전송할 데이터로 이루어져 있는 묶음을 ‘패킷’이라고 한다.

라우터는 이 패킷을 전송 받아 열어보고 목적지 주소를 읽은 다음 그 목적지까지의 가장 빠르거나 혹은 이미 지정되어 있는 다음 경로를 향해 보내게 되는 것이다.

호레시오 반장이 보낸 패킷에는 ‘3.3.3.3’라는 그리섬 반장의 컴퓨터 주소가 기록되어 있을 것이다. 라우터는 이제 그리섬 반장의 컴퓨터로 이 패킷을 전달하기 위해 다음 경로로 이 패킷을 보내게 된다. 이때 참조하는 것이 바로 앞서 언급한 라우팅 테이블이다. 이제 라우터 A에 설정된 라우팅 테이블을 살펴보자.

라우터 A는 <예 1>과 같은 라우팅 테이블을 가지고 있는데 이 테이블을 해석하면 다음과 같다.

- 모든 목적지 주소(0.0.0.0 0.0.0.0)로 가는 패킷은 1.1.1.2로 보낸다.

- C Class 3.3.3.0 대역으로 가는 패킷은 1.1.1.3로 보낸다.

즉 이 라우터는 ‘3.3.3.0’이 목적지 주소인 패킷만 ‘1.1.1.3’으로 전달하고 나머지 모든 패킷은 ‘1.1.1.2’로 전달하는 것이다. 경로는 이제 정해졌다. 라우터는 실제 그리섬 반장의 컴퓨터에 대한 정보는 전혀 모르지만 ‘3.3.3.0’ 대역으로 가려면 ‘1.1.1.3’을 통해야 한다는 것은 알고 있으므로 호레시오 반장이 보낸 패킷을 ‘1.1.1.3’으로 전달하게 되는 것이다.

이제 ‘1.1.1.3’IP를 가진 장비로 옮겨가 보자. 라우터 B가 이 IP를 가지고 있으므로 라우터 B는 호레시오 반장의 패킷을 라우터 A로부터 전달 받을 수 있다. 라우터 B 역시 받은 패킷을 열어보고 목적지 주소를 확인한다. 목적지 주소는 라우터가 가진 게이트웨이 IP와 같은 대역임을 확인 할 수 있다.

라우터 B는 전달받은 패킷의 목적지가 자신이 가진 네트워크 대역과 같으므로 게이트웨이로 패킷을 보내게 된다. 게이트웨이를 통과한 패킷은 이제 스위치 B에 도달하였다.

스위치 B 역시 받은 패킷을 열어보고 앞서 설명한 스위칭의 경우와 같이 그리섬 반장의 포트인 5번 포트로 보내며 통신이 이루어지는 것이다. 이처럼 라우터는 스위치와 달리 하드웨어 주소인 MAC 주소를 보고 경로를 결정 하는(L2 라우팅) 것이 아니라 소프트웨어 적으로 IP를 보고 경로를 결정하는데 이것을 L3 라우팅이라고 한다.

네트워크나 인터넷에서 문제를 일으키는 요소가 반드시 스위치나 라우터 등의 전송장비에만 국한되는 것은 아니다. 라우터나 스위치가 데이터 전송을 올바르게 실행했더라도 인터넷이 안 되거나 메일이 보내지지 않는 문제가 생길 수 있다.

이제 라우터나 스위치가 데이터 전송을 올바르게 실행되고 있음에도 불구하고 인터넷이나 메일이 제대로 되지 않는 원인들에 대해 살펴보자.

DNS(Doman Name System)

DNS는 컴퓨터가 데이터를 주고받는 과정에는 전혀 참여하지 않지만 인터넷을 사용하는데 있어 매우 중요한 역할을 하는 장비이다. 주된 역할은 도메인 네임이라고 하는 인터넷상의 주소를 IP로 전환하거나 혹은 그 반대의 전환을 담당하는 것이다. 사실 장비라기 보다는 서버라고 하는 편이 더 맞을 것이다.

IP도 컴퓨터가 인식하는 주소이기는 하나 사람이 일일이 외워 통신하기에는 불편함이 있으므로 사람이 좀더 외우기 쉽고 기억하기 쉬운 도메인 네임으로 바꾸어 주소를 설정한다.

한마디로 말하면 DNS 서버는 IP 주소와 도메인 네임 간의 통역을 담당하는 셈이다. 예를 들어 네이버 홈페이지를 방문하고 싶은데 네이버 홈페이지의 IP를 외우는 것보다는 www.naver.com을 외우는 것이 훨씬 기억하기 쉽지 않은가?

인터넷 익스플로러 주소 창에 www.naver,com을 입력하면 컴퓨터는 다시 해당 도메인 네임과 대치되는 IP 주소된211.218.150.250로 바꿔 주는 것이 DNS인 것이다. 문제는 DNS가 입력한 도메인을 IP 주소로 변환하는 과정에서 에러가 발생할 때이다. 이렇게 되면 해당 인터넷에 접속되지 않는다.

DNS가 도메인 네임을 어떻게 IP 주소로 변환해 주는지 확인하기 위해 <화면 6>처럼 커맨드 창을 열고 ‘nslookup’을 입력해보자. Nslookup 명령은 입력한 도메인을 IP 주소로 변환해 주는 기능을 담당한다.

꺽쇠(>) 모양의 프롬프트 뒤에 도메인 네임을 입력하면 디폴트 서버를 통해 IP로 변환된 주소가 표시된다. 야후 도메인을 입력 해보자.

<화면 7>과 같이 203,212,171,217, 222.231.19.227로 IP 주소가 표시된다. 이때 DNS에게 도메인에 대한 IP 변환을 요구하는 작업을 흔히 ‘쿼리를 던진다’혹은 ‘쿼리 한다’라고 말한다.

앞에서 사용해 본 nslookup 명령은 흔히 두 가지 목적으로 사용된다. 첫 번째는 DNS가 정상적으로 동작 중 인지를 확인하는 것이고 다른 하나는 도메인 네임이 올바른지 확인하는 것이다. 확인하려는 도메인을 검색했을 때 <화면 7>과 같이 결과가 정상적으로 나타난다면 DNS와 도메인 네임 둘 다 정상적으로 작동되는 것이다.

만약 입력한 도메인 네임이 IP 주소로 변환되지 않는다면 DNS에 문제가 생겼다고 해석하면 된다. 이때에는 L3 상의 목적지 주소를 확보하지 못한 것이기 때문에 가장 먼저 핑과 Tracert로 테스트 해 본다. 두 테스트에서 이상이 발견되지 않는다면 DNS의 문제나 DNS까지 연결되는 통신 상태를 파악해 보면 된다.

방화벽(Fire Wall)

흔히 아는 것처럼 방화벽은 외부에서 내부 네트워크로 접근하는 트래픽을 제어하는 용도로 사용되는 장비 또는 애플리케이션이다. 한편으로는 내부의 중요한 정보를 외부로 유출하지 못하도록 통신을 제어하는데 사용되기도 한다. 흔히 이 두 번째 목적을 위해 업무시간 중에 웹 서핑이나 채팅 등을 막는 용도로 사용한다.

동작 원리는 방화벽을 통과하는 패킷들을 분석하여 일정한 룰에 어긋나는 패킷을 거부하거나 돌려 보내는 간단하고 명료한것이다. 이 룰은 출발지 IP, 목적지 IP 그리고 서비스의 세 가지 요소로 구성된다. 출발지와 목적지는 앞서 설명한 라우팅에 나오는 것과 동일하게 패킷을 열어보고 판단하는 것이다. 서비스는 어떤 포트에 연결을 시도하는지 파악한 뒤에 접속 여부를 판단하는 것이다.

우리가 자주 사용하는 웹 서비스나 메일 서비스 혹은 텔넷(Telnet), FTP 등은 모두 정해진(실은 관례적이다. 변경이 가능하므로) 포트로 서비스하게 된다. 방화벽은 이 포트 번호를 보고 목적지 IP의 어떤 서비스를 이용하려 하는가를 읽고 이를 차단하거나 허용한다. 앞서 설명한 모든 조건들이 다 이상 없다면 방화벽에서 차단하고 있는지 살펴봐야 한다.

장비가 아무리 발달하고 좋아진다고 해도 장애는 반드시 발생하게 마련이다. 장비의 버그일 수도, 사용자의 잘못된 설정이 원인이 될 수도 있다. 중요한 점은 같은 장애가 다시 발생하지 않도록 하는 것과 장애가 발생하였을 때 얼마나 빠르게 조치할 수 있느냐에 달려있는 것이다.

지금까지 알아본 방법들을 이용하여 네트워크 상의 모든 장애요인을 발견하거나 조치를 취할 수는 없다. 다만 최소한 어디가 문제인지 파악하고 네트워크 관리자에게 문제가 발생한 부분을 바로 알려주거나 자신이 직접 원인을 해결하는 용도로 사용할 수는 있을 것이다.

네트워크 관리자에게 네트워크 문제에 대한 도움을 요청 할 때, 단순히 ‘인터넷이 안 돼요’라고 말하는 것은 의사에게‘나 아파요’라고 말하는 것과 같다. 어디가 아픈지 어쩌다 아프게 되었는지, 언제부터 아팠는지 등을 알려줘야 보다 빨리 처방을 내릴 수 있듯이 최소한 내가 사용하는 컴퓨터의 문제에 대해 제대로 전달해야 서로 낭비되는 시간을 줄일 수 있다. @

고급 자료는 숨겨져 있을까봐 걱정할 필요도 없다. 많은 카페들이 회원 유치 후 억지로 활동을 유지하도록 하기 위해 등급별로 자료를 제공하지만 네전따는 다르다. 일단 카페 회원이라면 누구나 모든 자료를 찾아 볼 수 있다.

회원의 유형도 네트워크 관련 자격증이나 취업을 준비하는 학생부터, 네트워크 벤더사의 영업 및 엔지니어까지 다양하다. 이들은 다시 지역과 관심사들을 나누어 정모를 하거나 스터디 그룹을 결성하기도 한다. 네트워크에 관심은 많지만 너무 어려워서 책을 보고 공부하기 어려웠다면, 연재 칼럼 게시판을 추천한다.

카페 운영자와 스텝들이 네트워크와 관련된 칼럼을 쉽고 자세하게 올려주기 때문이다. 이번 특집을 통해 자신에게 꼭 필요한 정보를 얻지 못한 독자라면 네전따를 방문해 보는 것은 어떨까.

* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.