|
라우터(Router)란 무엇인가?
<라우터란?>
라우터(Router)는 이름 그대로 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비다. 우리말로 풀어보면 '경로설정기'라고 할 수 있을 것이다.
인터넷, 다시 말해 IP 네트워크가 모든 네트워크의 기본이 되면서 라우터는 네트워크의 가장 핵심 장비로 등극했다. 인터넷이 확산되기 이전에는 사실 네트워크 자체가 확산되지 않은 상태이긴 했지만, 우리보다 네트워크의 역사가 오래된 해외의 경우를 보더라도, 과거 기업 단위 LAN 환경의 핵심은 스위치였다. 네트워크 내를 흐르는 트래픽의 대부분이 내부 LAN에서만 움직였기 때문에 스위치를 넘어 데이터가 전달되는 비중이 많지 않았기 때문이다. 내부 LAN 밖으로 데이터가 나가는 경우는 본사와 지사를 연결하는 전용회선을 통하는 경우가 전부였다.
하지만 인터넷 기반의 네트워크 환경에서는 어떤 형식으로든 네트워크가 외부의 다른 네트워크와 연결돼야 하고, 이를 위해서는 서로 다른 네트워크 간을 연결하는 장비인 라우터의 비중이 높아질 수 밖에 없게 된 것이다. 물론 라우터가 IP 네트워크 만을 위한 장비는 아니지만, 여기서는 최근의 네트워크 환경과 이해의 편의를 위해 인터넷 환경에 한정해 살펴보겠다.
<라우터는 인터네트워킹 장비다>
인터넷에 연결된 개별 네트워크의 수는 이루 헤아릴 수 없이 많은 것이 사실이다. 인터넷의 어원이 인터네트워크(internetwork)에 있듯이, 라우터는 이렇게 서로 연결된 네트워크(internetwork) 간의 경로(Route)를 설정해주는 장비다. 라우터가 '경로'에 비중을 둔 이름을 갖게 된 것도 이렇게 수없이 연결된 네트워크 간을 어떻게 연결하는 것이, 다시 말해 어떤 경로로 연결하는 것이 가장 효율적인가를 알려주는 길잡이 역할이 중요하기 때문이다.
라우터의 이런 인터네트워킹 기능은 OSI 참조모델로 살펴보면 훨씬 명확하게 이해할 수 있다. 허브나 스위치가 OSI 참조모델 2계층, 데이터 링크 계층에 속하는 반면, 라우터는 3계층, 즉 네트워크 계층에 해당하는 장비이다. 잘 알려진 대로 네트워크 계층은 여러 개의 독립적인 네트워크 간에 데이터를 전송하는 것에 관한 계층이다.
허브나 스위치가 속해 있는 데이터링크 계층의 데이터 전송은 물리적인 장치의 주소 지정에 의해 단일 네트워크로 연결된 모든 장치에 데이터를 브로드캐스팅하며, 수신측 장비에서 확인해 자신에게 오는 데이터를 수신받는 방식이다. 이런 방식은 일정한 범위와 크기의 내부 LAN에서는 가능하지만, 네트워크의 규모가 일정 크기를 넘어서면 매우 비효율적인, 그리고 현실적으로 운영할 수 없는 네트워크가 되고 만다. 광대한 인터넷을 향해 브로드캐스팅을 한다는 것은 누가 생각해도 합리적이지 못한 방법이다.
그러나 네트워크 계층의 장비인 라우터는 여러 개의 네트워크가 연결된 환경에서 특정 경로를 선택해 데이터가 전송되도록 한다. 이는 목적지로 데이터를 전송하면서 목적지가 아닌 네트워크에 데이터가 전송되는 것을 방지할 수 있다. 여기서 특정 경로란 다양한 라우팅 알고리즘을 통한 최적의 경로를 말한다.
<라우터는 컴퓨터다>
라우터의 기본적인 구성은 일반 컴퓨터와 마찬가지다. 중앙처리 장치인 CPU가 있고, 각종 메모리가 라우터의 운영체제와 환경설정 정보, 그리고 라우팅 정보 등을 담고 있다. 그리고 네트워크 인터페이스를 통해 트래픽을 입출력한다. 때문에 초기에는 소규모 환경에서 값비싼 라우터 장비 대신 일반 PC 서버를 이용해 라우팅 서비스를 구현하는 경우도 적지 않았다.
CPU는 라우터의 성능(처리량)을 결정짓는 부분이기 때문에 소형 라우터보다 중형 라우터가 더 빠른 CPU를 내장하고 있으며, 사용자가 많거나 더 많은 작업을 할수록 메모리 용량이 커야 한다.
라우터의 메모리에는 라우터 운영체제(예를 들면 시스코의 IOS)와 라우터의 환경 설정에 대한 내용 즉, 라우터 비밀번호, 시리얼 포트의 속도, 포트에 등록된 IP 어드레스 등의 내용이 저장돼 있다. NVRAM( Non-Volatile Random Access Memory)을 사용하기 때문에 라우터를 재부팅해도 수정된 환경이 적용된다.
라우터는 ROM에 있는 부트스트랩 프로그램을 통해 플래시 메모리에 라우터 운영체제를 저장하고 있다가 메모리로 올린다. 네트워크 운영체제는 기능이 향상되고, 제공하는 기능이 많아질수록 버전이 올라가는데, 이때 프로그램 크기도 점차 커지므로 이를 저장하고 운영하기 위한 메모리도 커진다. 따라서 네트워크 운영체제의 버전이나 장비에 따라 필요한 플래시 메모리 용량이 다르다. 일반적으로 시스코 IOS 12 버전이라면 8MB 정도의 메모리가 필요하다.
라우터는 외부 인터넷이나 원거리에 있는 지점간 통신을 하기 위해 통신 포트를 제공한다. 일반적으로 2개를 제공하는 시리얼 포트는 첫번째 포트가 serial0, 두번째 포트는 serial1로 지정돼 있다.
PC의 COM 포트는 일반적으로 비동기 방식의 포트(Async Port)에 해당하는 반면, 시스코 라우터의 시리얼 포트는 동기(Synchronous) 방식이다. 또한 라우터에도 이더넷 포트가 있어서 스위치나 허브를 연결할 수 있다. 그밖에도 라우터에는 콘솔(console) 포트와 AUX(AUXiliary) 포트가 있는데, 이는 라우터를 처음 설치하거나 유지보수를 위해 설정을 변경할 때 사용한다.
<라우터의 핵심 : 라우팅 테이블>
스위치가 MAC 어드레스를 기반으로 패킷을 목적지로 전달하는 것처럼, 라우터도 어드레스 테이블에 해당하는 '라우팅 테이블'을 가지고 라우팅 서비스를 제공한다. 이 라우팅 테이블에 기록된 정보를 바탕으로 라우터는 자신에게 보내온 패킷을 어디로 전달할 것인지 결정한다. 보다 정확하게 말하면, 라우터는 철저하게 라우팅 테이블에 의존해 라우팅을 한다. 따라서 라우터의 운영은 라우팅 테이블을 관리하는 것이 절반 이상의 비중을 차지하며, 이 라우팅 테이블을 어떻게 구성하고 관리하느냐에 따라 라우터의 원래 목적, 즉 최적의 경로를 찾는 것이 가능해진다.
라우팅 테이블의 정보를 관리하는 방법은 크게 정적(static) 라우팅과 동적(dynamic) 라우팅으로 나눌 수 있다. 정적 라우팅은 관리자가 직접 라우터에 대해 접속하려는 특정 장소, 즉 상대 라우터를 지정하는 방식이며, 동적 라우팅은 라우터가 자체적으로 라우터끼리의 접속 정보를 주고받아 라우팅 테이블이 자동 갱신되는 방법이다.
동적 라우팅이 당연히 편하고 효과저인 방법처럼 보이지만, 정적 라우팅도 라우터 자체의 부하가 적고 회선 대역폭의 효율이 좋다는 장점이 있다. 때문에 모뎀이나 브로드밴드 네트워크와 같이 필요할 때만 연결하는 환경에서는 라우팅 정보를 라우터끼리 주고받지 않는 정적 라우팅이 주로 이용된다.
동적 라우팅은 자동으로 라우팅 테이블이 갱신된다는 장점으로 인해 장애가 발생된 라우터가 라우팅 정보에세 제거됨으로써 네트워크 장애의 영향을 피할 수 있으며, 일부 라우터가 사라지거나 새로이 추가돼도 항상 최적의 경로로 데이터를 전송할 수 있다. 이미 헤아릴 수 없을 정도로 많은 라우터가 설치돼 있는 인터넷은 정적 라우팅을 적용하기에는 이미 너무 복잡한 상태라고 할 수 있다.
최적 경로 찾기의 조건 : 라우팅 프로토콜과 라우팅 알고리즘
그렇다면 동적 라우팅 테이블은 어떤 방식으로 만들어지는 것일까. 연결된 라우터끼리 무작위로 정보를 전송해 이를 저장하는 방식으로는 복잡 다단한 구성을 갖고 있는 인터넷에서 라우터가 최적의 경로를 찾을 수 없을 것이다.
이렇게 라우터끼리 서로의 정보를 주고 받는 방식을 정한 것이 바로 라우팅 프로토콜이며, 이들 라우팅 프로토콜은 일정한 라우팅 알고리즘을 바탕으로 이뤄져 있다. 라우팅 알고리즘은 거리 계산 방식(Distance Vector Advertisement)과 연결 상태 방식(Link State Advertusement)으로 나눠지며, 거리 계산 방식의 라우팅 프로토콜에는 RIP, IGRP, EIGRP가, 연결 상태 방식 라우팅 프로토콜에는 OSPF, IS-IS, NLSP 등이 대표적이다.
거리 계산 방식은 네트워크 어드레스에 대해 거리(홉 수)와 방향(라우터의 어느 포트인지) 정보를 다른 라우터로 보내 라우팅 테이블 정보를 변경하는 방법이다.
반면 연결 상태 방식은 여기에 더해 대역폭, 전송지연, 회선 신뢰도, 부하 등을 적절히 조합해 최적의 경로를 선택한다. 다시 말해 라우터를 여러 개 거쳐서 홉 수가 많더라도 회선 속도가 보다 빠른 쪽으로 경로를 설정할 수 있다는 것이다
* 라우터는 자신이 가야 할 길을 자동으로 찾아서 갈 수 있는 능력을 가진것을 말함
* 라우터 셋팅명령어를 아는 것이 중요하지 않고 네트워크에 대한 개념, 즉 네트워크의 IP주소에 대한 이해, 서브넷 마스크에 대한 이해, 라우팅에 대한 이해등을 종합적으로 이해하는 것이 중요하다
1. 라우터가 하는 일
1) 경로 결정 (Path Determination)
- 목적지까지의 가장 좋은 길을 찾는데 라우팅 프로토콜이 사용됨
- 라우팅 테이블을 작성하고 참고함
2) 스위칭 (Switching)
2. 라우터의 종류
요즘 쓰는 라우터는 ISR(Inteligent Service Router) 통합서비스라우터 - 네트워크에서 꼭 필요한 기능인 보안, 음성지원, 무선 등 다양한 서비스를 추가하여 라우터 한대만 있으면 따로 장비가 필요없게 됨.
* 라우팅 프로토콜과 라우티드 프로토콜이란
1) 라우팅 프로토콜이란 목적지까지 가기위한 최적의 경로를 탐색하는 프로토콜(어떻게 하면 TCP/IP, IPX, AppleTalk등의 프로토콜이라는, 즉 손님들을 안전하고 신속하게 목적지까지 보낼수 있을까 고민하는 프로토콜)이다.
2) 라우티드 프로토콜은 라우팅 프로토콜에 올라타서 목적지만 얘기하고 기다리는 승객의 입장이다. 여기서 라우팅 프로토콜은 여러가지가 있다 예로 RIP, IGRP, OSPF, EIGRP등이 있다.
이러한 라우팅 프로토콜들은 자신이 찾은 경로들을 따로 저장하여 테이블을 만들고 최상의 경로를 계속 업데이트한다. 이 라우팅테이블은 목적지, 목적지까지의 거리, 어떻게 가야하는가하는 방법들을 담고 있다
3. 스태틱 라우팅 프로토콜과 다이내믹 라우팅 프로토콜
1) 스태틱 라우팅은 성능이 개선되고 메모리도 적게 들고 보안에도 강한 장점이 있는 반면 사람이 직접 입력해야하고 경로문제가 생기면 곤란한 경우가 발생함
2) 다이내믹 라우팅은 라우터에 부담을 많이 준다, 즉 경로를 계산해야하므로 메모리 리소스를 많이 차지한다 하지만 경로문제가 생기면 차순위경로를 확보한다
동적으로 정보수집하고 최상의 경로계산하며 동기화를 통해 최신의 정보를 유지한다
* 우리나라는 외부로는 스태틱라우팅을 많이 사용하고 건물내부는 다이내믹라우팅을 사용한다
4. AS (Autonomous System)
- 라우터들의 집단에 대표 라우터를 가지고 있어서 다른 라우터들의 라우팅테이블을 간소화 하기 위해 사용한다, 즉 효율성 증대의 목적이다. 이 AS와 AS사이에서 사용하는 라우팅 프로토콜은 EGP, BGP를 사용한다.
-AS안에서의 라우터들은 담당하는 네트워크 테이블만 알면된다. 여기서 사용하는 라우팅 프로토콜은 RIP, IGRP, OSPF, EIGRP등을 사용한다.
5. Cisco Packet Tracer를 이용하여 라우팅 실습
6. Router의 모드
1) User Mode
- 기본 로그인 모드
- 네트워크 설정을 테스트하거나 하드웨어의 확인, 다른 장비로 텔넷접속 허용
Router>
2) Privilege Mode
- 관리자 모드
- 설정(config)을 확인하거나 Save/Load
Router>enable
Router#
3) Configuration Mode
- 구성모드
- 라우터에 설정을 만들거나 수정
Router#configure terminal
Router(config)#
4) Setup Mode
- 초기 라우터 구성 마법사 모드
- 처음 부팅시 마법사를 실행하여 설정하게 된다
5) RXBOOT mode
- 라우터의 복구 모드
- 안전모드라고 생각하면 됨
7. 라우터 메모리
1) RAM : Random Access Memory
- 부팅시 IOS가 로딩, 라우팅 테이블 정보가 저장, 캐시정보 저장
- 높은 버전의 IOS를 사용하거나, 구성정보가 많아질수록 더 많은 RAM이 필요
예) 기억해야할 주소가 많아지면 RAM이 부족해질수 있다
- 휘발성이기에 전원이 나가면 데이터가 삭제된다
* 어떠한 라우팅 프로토콜을 사용하느냐에 따라서 메모리 소모가 다르다
- running-config
2) NVRAM : Non-Volatile RAM
* 일반 PC와 비교하면 BIOS와 비슷하다
- 비휘발성 RAM
- 라우터의 구성정보가 저장
- IP주소, 설정된 라우팅 프로토콜 등이 저장된다
- 설정값만 저장하기 때문에 용량이 작다
※ 라우팅 설정만 저장되고 라우팅테이블은 저장되지 않는다!!!
- starting-config
3) Flash ROM
* 운영체제가 탑재된다고 보면 된다
- HDD 디스크를 대신해서 라우터의 OS인 IOS가 저장되는 곳
- 부팅시 여기에 저장된 IOS가 RAM으로 복사 된 후 실행된다
* 플래시 메모리에는 IOS(운영체제)가 저장된다 - 요즈음은 플래시메모리가 늘어나는 추세이다 왜냐면 IOS용량이 커졌기 때문이다
4) ROM : Read Only Memory
- 비휘발성이며 내용을 수정할 수 없는 저장영역
- 여기에 Flash ROM과는 별도로 IOS가 탑재되며
- 플래시 메모리에 저장된 IOS가 손상되었거나
- IOS를 업그레이드 하려는 경우, 혹은 관리자 암호를 변경하려는 경우에
- 여기에 저장된 IOS로 부팅한다.
* 즉 안전모드의 개념이다
라우터가 부팅할때는 Flash ROM에 저장된 IOS와 NVRAM에 저장된 구성값이 RAM으로 복사된후
실행된다
RAM에 복사되어 만들어진 설정을 running-config 라고 하며
NVRAM에 저장된 설정을 startup-config 라고 한다
라우터에 어떤 구성을 하게되면 그 구성은 running-config에 입력되며
재부팅 후에도 그 설정을 사용하려면 running-config를 startup-config로 복사해야 한다
* copy run start <==== 이와 같이 저장해야 한다
* 라우터 boot 순서
post -> Rom(bootstrap) -> Flash(ios.bin) -> nVRam(startup-config화일) -> 화일에 정보가 있으면 컨트롤모드로 가고 정보가 없으면 셋업모드로 이동함
* 라우터를 구성하는 방법
1) 맨 처음 라우터를 구성할때 쓰는 콘솔 케이블을 통한 구성
2) 원격지에서 모뎀을 이용한 구성
3) 라우터에 IP주소가 셋팅된 다음에 네트워크를 통해서 접속하여 텔넷을 이용한 구성
4) 네트워크 관리 시스템이 있는 곳에서 사용하는 NMS를 이용한 구성
5) 미리 구성된 파일을 저장했다가 나중에 라우터로 다운로드하는 TFTP서버를 이용한 구성