정의
Network Layer(3계층)에서 작동하며, 각기 독립된 네트워크들을 연결 또는 분할 시켜주는 장치다.
주요 기능
- Networking : 독립된 네트워크들을 연결 또는 분할 시켜준다.
- Forwarding : 입력 포트로부터 패킷을 받아서 출력 포트로 전송하는 기능. 포트에 따로 입력, 출력이 정해져 있는 것이 아니기 때문에 라우터는 패킷의 헤더에서 정보를 얻어 적절하게 올바른 위치로 출력시키는 것이다.
- Routing : 경로 설정 기능. 한 네트워크에서 다른 네트워크, 그 안의 호스트에게 패킷을 전달하는 과정을 의미한다.
Routing Protocol
라우터 간 통신 방식을 규정하는 통신 규약. 어디로 전송해야 할지에 대한 경로 정보를 가지고 있는 라우팅 테이블을 만들고 저장해둠.
Static Routing
- 수작업으로 라우팅 정보 입력
- Dynamic Routing에 비해 설정이 간단하고 라우터의 부하가 작다.
- 라우팅 갱신이 수작업이어서 작업 부담이 크고 라우터 연결현황을 전부 알고 있어야한다.
Dynamic Routing
- 라우팅 프로토콜을 사용하여 자동으로 라우팅 정보를 갱신한다.
- 작업 부담이 없고, 항상 최신 라우팅 정보를 유지 할 수 있다.
- CPU의 부하가 크고 대역폭이 낭비되는 경우가 발생한다.
Distance Vector
- 목적지 네트워크까지의 경로 예측 값을 거리벡터이 최소가 되는 경로를 찾는 알고리즘
- 주기적으로 인접한 노드에게 자신이 가진 정보를 알려주고 네트워크의 거리값에 대한 정보만 저장하기 때문에 메모리를 적게 사용한다.
- 일정시간마다 라우팅 정보를 발송하기 때문에 네트워크 트래픽이 많이 발생하고 회선절단 같은 이슈가 하나 생기면 망이 클 수록 정보 전달에 오래 걸린다.
Link state
- ㅇㅇㅇ
- 링크의 변화가 생길 때마다 정보 갱신이 이루어져 보다 빠르게 이슈가 전달 되고 네트워크의 전반적인 데이터를 수집하기 때문에 메모리 사용이 많다.
Static Routing 실습
두 네트워크를 하나의 라우터로 잇기
Router>enable
Router# configure terminal // 터미널창 들어가기
Router(config)# int fa0/0 // 포트 fa0/0 선언
Router(config-if)# ip add 192.168.20.254 255.255.255.0 //포트 fa0/0 에 ip와 서브넷마스크 부여
Router(config-if)# no shutdown // 기본적으로 라우터의 포트는 닫혀있기 때문에 열어준다.
Router(config-if)# exit
Router # show ip int brief // 포트의 개방 여부
라우터 설정을 위처럼 해준 뒤
각 컴퓨터에 라우터의 포트 ip를 default gateway로 설정해준다.
Network ID가 달라도 패킷 보내는게 가능해졌다.
두 네트워크를 두개의 라우터로 잇기
- 아까 했던 것처럼 각 라우터들과 PC를 연결해주고 라우터들은 Serial DCE로 Serial 0/0 에 연결해준다.
- 여기서 문제가 하나 생기는데 왼쪽의 라우터는 PC0을 직접 연결했기 때문에 인식하고 있지만 PC1은 인식이 안되어있는 상태다.
- 그러므로 PC0에서 PC1로 패킷을 보내도 받을 수가 없는 상황이 된다.
- 인식 할 수 있게 각 라우터 들에게 직접 라우팅을 해준다.
Router(config) # ip route 192.168.20.0 255.255.255.0 1.1.1.2
//왼쪽의 라우터에게 라우팅을 해준다. 1. 목적지의 네트워크 ip주소를 지정 2. 이 주소의 서브넷 마스크 지정 3. 목적지로 가기위한 인접한 다음 라우터 지정
Router(config) # ip route 192.168.10.0 255.255.255.0 1.1.1.1
//오른쪽의 라우터에게 라우팅을 해준다. 1. 목적지의 네트워크 ip주소를 지정 2. 이 주소의 서브넷 마스크 지정 3. 목적지로 가기위한 인접한 다음 라우터 지정
패킷이 잘 전달되는 것을 알 수 있다. TTL이 126인걸 보아 라우터를 2개 지나친것도 알 수 있다.