1 라우터 (Router)
1.1 라우터의 정의
- 라우터는 이름 그대로 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비이다.
1.2 라우터의 역할
- 동일한 전송 프로토콜을 사용하는 분리된 네트워크를 연결하는 장치로 계층 간을 서로 연결한다.
- 브리지가 가지는 기능에 추가하여 경로 배정표에 따라 다른 네트워크 또는 자신의 네트워크 내의 노드를 결정한다. 이러한 여러 경로 중 가장 효율적인 경로를 선택하여 패킷을 보낸다.
- 라우터를 사용하면 여러 컴퓨터가 서로 통신하고 두 개의 네트워크(예: 홈 네트워크와 인터넷) 사이에서 정보를 전달할 수 있다.
- 라우터라는 이름은 네트워크 트래픽을 전송하는 기능에서 비롯되었다. 라우터는 유선(이더넷 케이블 사용) 또는 무선일 수 있다. 단지 컴퓨터, 허브 및 스위치를 연결하여 제대로 작동하게 하고 모든 컴퓨터에서 모뎀 하나를 사용하여 인터넷에 액세스 할 수 있도록 하려면 라우터나 기본 제공 라우터가 있는 모뎀을 사용해야 한다.
- 브리지와의 차이로는 라우터는 네트워크 계층까지의 기능을 담당하고 있으면서 경로 설정을 해주는 반면, 브리지는 데이터링크 계층까지의 기능만으로 목적지 주소에 따른 선별 및 간단한 경로 결정을 한다.
1.3 라우터의 장점
- 환경설정이 가능하다. 관리 방침에 따라 라우팅 방식이 결정되며, 전체 네트워크 성능이 개선된다.
- 유지보수가 용이하다. 알고리즘에 따라 자동으로 경로가 결정된다.
- 확장이 용이하다. 네트워크 형상에 구애 받지 않으므로 대규모 네트워크 구성이 용이하다.
1.4 라우터의 단점
- 초기 환경 설정이 어렵다.
- 특정 프로토콜이나 하위 프로토콜 지원이 불가능하고 복잡하므로 가격이 비싸다.
1.5 라우터의 구성
- 라우터는 다른 컴퓨터들과 동일한 컴퓨터이다. 그리고 일반 컴퓨터와 동일한 하드웨어와 소프트웨어 구성요소를 가지고 있다. (CPU, RAM, ROM, OS)
- CPU에 의해 처리되는데 필요한 명령어와 데이터를 저장한다.
- 휘발성 메모리로서 라우터의 전원이 꺼지거나 재부팅되면 그 속에 있던 내용이 지워지게 된다. 이러한 이유 때문에 라우터는 ROM이나 플래시, NVRAM[1]같은 영구적인 저장 장치를 가지고 있다.
- 영구적인 형태의 저장소이다. 라우터의 전원이 꺼지거나 재부팅되더라도 그 내용이 지워지지 않는다.
- 통합 서킷의 내부에 있는 펌웨어라는 소프트웨어를 사용한다.
- 전기적으로 지우거나 다시 프로그램할 수 있는 비휘발성 컴퓨터 메모리이다. 운영 시스템을 위한 영구적인 저장소로 사용된다.
- 대부분의 라우터에서는 플래시 메모리에 영구적으로 저장되고 부팅 과정 동안 RAM으로 복사된다.
- 플래시 메모리는 ROM과 같이 라우터의 전원이 꺼지거나 재부팅되더라도 그 내용이 지워지지 않는다.
1.6 라우팅 알고리즘 (Routing Algorithm)
1.6.1 글로벌 라우팅 (Global Routing)
- 모든 라우터가 모든 완전한 토폴로지와 링크의 비용 정보를 알고 있다.
- 링크 상태 알고리즘(Link State Algorithms)이다.
1.6.2 분산 라우팅 (Decentralized Routing)
- 라우터는 physically-connected neighbors, link costs to neighbors에 대한 정보를 알고 있다.
- 계산의 반복과정, 이웃 노드와의 정보교환이 필요하다.
- 거리 벡터 알고리즘(Distance Vector Algorithms)이다.
- 라우터에 관리자가 고정적인 형태로 라우팅 테이블을 등록하는 기법이다.
- Static은 정적인 프로토콜로 한번 정해 놓으면 무조건 그 경로로 전송한다.
- CPU가 최적의 경로를 찾기 위한 계산을 하지 않기 때문에 라우팅 속도도 빨라지고 메모리도 적게 사용하기 때문에 라우터 성능이 좋아진다.
- 자신의 정보를 외부로 전송하지 않아 동적 라우팅보다 보안에 좋다.
- 네트워크 변화를 감지하기 어렵고 확장성이 낮기 때문에 대규모 네트워크에서는 사용하기 힘들다.
1.6.4 동적 라우팅 (Dynamic Routing)
- 라우터끼리 네트워크 정보를 주고받으면서 라우팅 테이블을 자동적으로 작성하는 기법이다.
- 구성형태나 트래픽의 상태를 변화에 따라 라우팅 결정을 동적으로 반영한다. 그렇기 때문에 라우터에 부담을 준다. (CPU와 Memory를 많이 사용한다.)
- 각 라우팅 프로토콜들은 최적의 경로를 선택하는 기준이 다르기 때문에 서로 다른 라우팅 프로토콜은 서로 정보를 교환하지 않는다.
- 목적지까지의 경로가 여러 개 존재할 경우 최적의 경로만 라우팅 테이블에 올라오고 나머지는 데이터 베이스에 저장한다. 최적의 경로에 문제가 생기면 다음 순의 경로가 라우팅 테이블에 올라온다.
1.6.5 디폴트 라우팅 (Default Routing)
- 라우팅 테이블에 등록되어 있지 않는 주소를 갖는 패킷들은 디폴트 라우터에서 지정된 경로로 전송된다.
- 네트워크에서 주소가 식별되지 않는 모든 패킷은 디폴트 라우터로 전송된다.
1.7 거리 벡터와 연결 상태 라우팅 알고리즘
1.7.1 거리 벡터 방식 (Distance Vector Advertisement)
- 네트워크 어드레스에 대해 거리(홉 수[2])와 경로설정 정보(네트워크 토폴로지 및 라우팅 메트릭 정보)를 다른 라우터로 보내 라우팅 테이블 정보를 변경하는 방법이다.
- 거리 벡터 알고리즘은 쉽고 간편하고 또 라우팅 테이블을 적게 사용하는 등의 여러 가지 장점이 있지만, 루핑이 발생하기 쉽다는 단점을 가지고 있다.
- RIP, IGRP, EIGRP 등이 있다.
1.7.1.1 루핑(Routing Loops) 방지법
- Maximum Hop Count 제한
s 라우팅 메트릭스를 제한한다. RIP의 경우 최대 홉 수를 15까지로 제한(16부터는 Unreachable)하면서 무한의 루핑을 방지한다.
- 홀드 다운 (Hold Down Timer)
s 한 번 다운된 경로에 대해서는 일정 시간 동안 라우팅 업데이트를 받지 않게 한다.
- 스플릿 호라이즌 (Split Horizon)
s 라우팅 정보를 받은 쪽으로는 같은 라우팅 정보를 보내지 않는다.
- 라우트 포이즈닝 (Route Poisoning)
s 다운된 네트워크의 메트릭 값을 사용할 수 없는 값으로 바꾸되 지우지는 않는다.
- 포이즌 리벌스 (Poison Reverse)
s 변형된 스플릿 호라이즌이다. 스플릿 호라이즌처럼 라우팅 정보를 보내온 쪽으로 내보내지 않는 것이 아니라 라우팅 정보를 되돌려 보내기는 하되 메트릭 값을 무한대 값으로 보낸다.
- Triggered Update
1.7.1.2 RIP (Routing Information Protocol)
- 거리 계산 알고리즘에 기초하여 개발된 라우팅 프로토콜이다.
- IGP(Interior Gateway Protocol)용이다.
- 소규모 또는 교육용 등 비교적 간단한 네트워크에 주로 사용된다.
- 수신된 네트워크 정보를 제외한 모든 네트워크 정보를 상대에게 알려준다. 수신 라우터는 네트워크 경로 항목에서 더 짧은 홉 수를 받았을 때만 해당 라우팅 경로 항목을 재작성한다.
- 최대 홉 수가 15로 제한되어 있다. 따라서 인터넷과 같은 큰 규모의 네트워크에는 적합하지 않고, 서브넷 마스크를 지원하지 않으므로 IP 주소 영역의 활용을 제한하는 단점이 있다.
- 라우터들끼리 주기적으로(30초 간격) 경로 업데이트를 하며 경로 재계산한다. 많은 라우터를 지날 경우 시간이 오래 걸린다. 또한, 주기적으로 브로드캐스트 함에 따라 트래픽 부하가 온다.
- 최적 경로를 산출하기 위한 정보로서 홉 수만을 고려하므로, RIP가 선택한 경로가 최적의 경로가 아닌 경우가 발생할 수 있다. 이러한 RIP의 단점들을 보완한 RIP 버전2가 개발되었다.
1.7.1.3 IGRP (Internet Gateway Routing Protocol)
- 시스코(Cisco)사의 경로 설정 프로토콜 시스코 라우터들 사이에 사용된다.
- 경로 설정 정보 전송 간격은 90초이며 인접 라우터 간 경로 설정 정보를 교환한다.
- 경로 선택 기준으로는 지연시간[3], 대역폭, 채널 점유도[4], 버스의 신뢰성 등이 있다.
1.7.2 연결 상태 방식(Link State Advertisement)
- 거리 계산 방식에 더해 대역폭, 전송지연, 회선 신뢰도, 부하 등을 고려해 최적의 경로를 선택한다.
- 라우터를 여러 개 거쳐서 홉 수가 많더라도 회선 속도가 빠른 쪽으로 경로를 설정할 수 있다.
- OSPF, IS-IS, NLSP 등이 있다.
1.7.2.1 OSPF
- 라우터는 처음 부팅시, 헬로(Hello) 패킷의 교환에 의해 이웃한 라우터를 서로 인식한다.
- 어떤 네트워크에 접속된 복수개의 라우터 중에서, 그 네트워크를 대표하여 경로 정보의 생성 및 분배 책임을 지는 지명(Designated) 라우터를 선정하고, 이는 새로 인식된 라우터와 경로정보를 교환하여 동기화한다.
- 자신의 경로 테이블에 대한 정보를 LSA(Link State Advertisement)라는 자료 구조를 통하여 주기적으로 혹은 라우터의 상태가 변화되었을 때 전송한다. 이 때 LSA는 해당 영역의 모든 라우터에게 알려지게 된다.
- 한 영역에 속한 모든 라우터는 같은 정보를 공유한다.
거리 벡터 |
연결 상태 |
이웃한 라우터의 시각에서 네트워크를 인식 |
네트워크 전체를 인식 |
라우터와 라우터 간의 거리를 더하여 계산 |
다른 라우터까지의 최단 거리 계산 |
주기적으로 경신 데이터를 교환 (컨버젼스 시간의 증가) |
이벤트 기반의 경신 신호 교환 (빠른 컨버젼스 시간) |
이웃한 라우터와 라우팅 테이블 교환 |
링크 상태 정보만을 교환 |
[1] NVRAM(Non-Volatile Random-Access Memory)은 비 휘발성 RAM으로서 전원이 꺼지더라도 그 속의 내용이 지워지지 않는다.
[2] Hop Count: 거쳐가는 라우터의 수
[3] 지연시간: 미디어를 통해 목적지까지 가는데 걸리는 시간
[4] 채널 점유도: 대역폭이 현재 어느 정도 사용되고 있는지를 나타냄
'와사비크래커 IT Tip > 네트워크' 카테고리의 다른 글
[네트워크] ARP(Address Resolution Protocol) (0) | 2020.09.02 |
---|---|
[네트워크] 무선 네트워킹 (0) | 2020.08.13 |
[네트워크] 스위치 & 브리지 (0) | 2020.08.12 |
[네트워크] IP ADDRESS와 DNS (0) | 2020.08.12 |
[네트워크] 케이블 (0) | 2020.08.12 |