RIP(Routing Information Protocol) 이란 ?
RIP(Routing Information Protocol)은 이동 할 수 있는 경로 수(hop count)를 metric하여 사용한다.
목적지까지 가능 경로가 2개 이상 있을 경우, 목적지까지 도달하는데 필요한 라우터 개수가 가장 적은 쪽의 경로를 최적의 경로로 선출하여 라우팅 테이블에 등록하여 사용한다.
hop count란 경로를 통과할 수 있는 장치의 수입니다. 같은 네트워크는 0의 metric을 가지고 다른 네트워크는 1로 계산하여 최대 15의 metric을 가진다.
제한적인 경로 때문에 소규모 네트워크 환경이나 네트워크 변화가 적은 환경에서 사용하기 적합하다.
*metric이란?
목적지로 가는 경로가 여러개일 경우 알고리즘을 통하여 경로값을 계산해 메트릭이 낮게 나오는 경로를 최적 경로로 선출하는데 사용합니다.
RIPv1 특징
서브넷 정보가 없는 라우팅을 전송하는 Classful routing protocol
인접라우터 간에 브로드캐스트 패킷 (UDP / port : 520)을 사용하며 라우팅 정보를 교환한다.
목적지에 대한 최적 경로가 2개 이상이면 라우터는 균등하게 패킷을 분산 처리한다.
RIPv2 특징
서브넷 정보가 있는 라우팅을 전송하는 Classless routing protocol
인접라우터 간에 멀티캐스트 패킷 을 사용하여 라우팅 정보를 교환한다.
다른 Dynamic Routing들과 같이 라우팅 정보를 인증할 수 있어 보안성이 강화된다.
라우팅 정보를 교환할 때 tag를 설정할 수 있어 경로 관리가 편리하다.
패킷에 Next-hop을 표시하여 불필요한 경로를 방지한다.
RIP Timer
주기적인 RIP 라우팅 업데이트를 할 때 시간 간격을 제어하거나,
네트워크 토폴로지가 변경될 때 RIP 경로를 갱신할 때 사용된다.
Update Timer (0 ~ 30초) 주기적으로 라우팅 업데이트할 때 사용되는 시간 (수신하면 0초로 리셋)
Invaild Timer (30 ~ 180초) 라우터가 다른 라우터로부터 180초 이상 업데이트를 받지 못하는 경우 업데이트 하지 않는 라우터의 경로를 사용 할 수 없는 경로로 표시한다.
Hold Down Timer (180 ~ 360초) 라우팅 업데이트를 수신하지 않는다.
Flushed Timer (0 ~ 240초) 라우터가 다른 라우터로부터 240초 이상 업데이트를 받지 못하는 경우 업데이트 하지 않는 라우터의 모든 라우팅 테이블 항목을 제거한다.
RIP Timer 설정하는 법
R0(config-router)# timers basic update invalid holddown flush
R0(config-router)#timers basic 50 100 150 300
Cisco Packet Tracer 프로그램을 사용하여 구성했습니다.
이제 RIPv1 설정 명령어를 알아봅시다.
모든 네트워크는 24비트로 넣어줬습니다.
R0 라우터
R0(config)#router rip
R0(config-router)#network 10.10.10.0
R0(config-router)#network 20.20.20.0
R1 라우터
R1(config)#router rip
R1(config-router)#network 20.20.20.0
R1(config-router)#network 50.50.50.0
R1(config-router)#network 60.60.60.0
R2 라우터
R2(config)#router rip
R2(config-router)#network 60.60.60.0
R2(config-router)#network 100.100.100.0
R2(config-router)#network 150.150.150.0
R3 라우터
R3(config)#router rip
R3(config-router)#network 150.150.150.0
R3(config-router)#network 200.200.200.0
- 라우팅 설정 완료 후 -
R0#sh ip route rip
20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 50.0.0.0/8 [120/1] via 20.20.20.2, 00:00:02, GigabitEthernet0/0
R 60.0.0.0/8 [120/1] via 20.20.20.2, 00:00:02, GigabitEthernet0/0
R 100.0.0.0/8 [120/2] via 20.20.20.2, 00:00:02, GigabitEthernet0/0
R 150.150.0.0/16 [120/2] via 20.20.20.2, 00:00:02, GigabitEthernet0/0
R 200.200.200.0/24 [120/3] via 20.20.20.2, 00:00:02, GigabitEthernet0/0
* R - RIP 라우팅 사용
* 200.200.200.0/24 - 목적지 네트워크
* [120/3] via 20.20.20.2 - hop count 와 패킷이 나가는 인접한 인터페이스 IP
* 00:00:02 - 인접한 라우터와 라우팅 업데이트 후 시간
* GigabitEthernet0/0 - 패킷이 나가는 인접한 인터페이스
*RIPv1의 문제점
Classful routing protocol을 사용하여 서브넷 경계가 자동요약이 일어나기 때문에 서브넷 구간에 라우팅 문제가 발생할 수 있습니다.
*해결방법
Offset-list를 이용하여 경로로 들어오는 metric과 나가는 metric 을 증가시킨다.
R0(config-router)#offset-list [access-list-number | access-list-name] {in | out} offset [interface-type interface-number]
R0(config-router)#offset-list 98 in 1 fastEthernet 0/2
이제 RIPv2 설정 명령어를 알아봅시다.
모든 네트워크는 24비트로 넣어줬습니다.
기본 구성은 RIPv1 이랑 같습니다.
R0 라우터
R0(config)#router rip
R0(config-router)#version 2
R0(config-router)#no auto-summary
R0(config-router)#network 10.10.10.0
R0(config-router)#network 20.20.20.0
R0(config-router)#passive-interface gigabitEthernet 0/0 (Gi0/0으로 업데이트 하지 않는다.)
R1 라우터
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 20.20.20.0
R1(config-router)#network 50.50.50.0
R1(config-router)#network 60.60.60.0
R2 라우터
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 60.60.60.0
R2(config-router)#network 100.100.100.0
R2(config-router)#network 150.150.150.0
R3 라우터
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#no auto-summary
R3(config-router)#network 150.150.150.0
R3(config-router)#network 200.200.200.0
*RIPv1 문제를 해결하기 위한 RIPv2
Classless routing protocol을 사용하여 no auto-summary 명령어를 이용하여 자동요약을 해지시킨다.
Passsive-interface 명령어를 사용하여 불필요한 인터페이스로 RIP 업데이트 전송하는 패킷을 차단시킨다.
R0#sh ip route rip
30.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 30.0.0.0/8 [120/3] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
R 30.30.30.0/30 [120/3] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
50.0.0.0/24 is subnetted, 1 subnets
R 50.50.50.0 [120/1] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
60.0.0.0/30 is subnetted, 1 subnets
R 60.60.60.0 [120/1] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 100.0.0.0/8 [120/2] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
R 100.100.100.0/24 [120/2] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
150.150.0.0/16 is variably subnetted, 2 subnets, 2 masks
R 150.150.0.0/16 [120/2] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
R 150.150.150.0/30 [120/2] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
R 200.200.200.0/24 [120/3] via 20.20.20.2, 00:00:09, GigabitEthernet0/0
* MD5 해시
MD5 해시 함수를 이용하여 라우팅 정보를 인증할 수 있는 기능이 있습니다.
수신한 라우팅 정보가 인증이 맞지 않는다면 라우터는 수신한 라우팅 정보를 무시하고 폐기시켜 버립니다.
R0(config)# key chain (name-of-chain)
R0(config-keychain)# key ( number)
R0(config-keychain-key)# key-string ( string)
R0(config)# interface (type number)
R0(config-if)# ip rip authentication key-chain (name-of-chain)
R0(config-if)# ip rip authentication mode {text | md5}
R0(config)# key chain rip-md5 - 인접한 라우터간 Chain name은 달라도 됨
R0(config-keychain)# key 123123 - 인접한 라우터간 number 동일해야 함
R0(config-keychain-key)# key-string abcdef - 인접한 라우터간 string 동일해야 함
R0(config)# interface gigabitEthernet 0/0
R0(config-if)# ip rip authentication key-chain rip-md5
R0(config-if)# ip rip authentication mode md5
Loop 방지를 위한 기능들
*트리거드 업데이트 방식
WAN처럼 대역폭이 제한된 네트워크 주기적으로 라우팅 업데이트 하는 대신, 변화가 있을 때 라우팅 업데이트를 한다.
(WAN Point-to-Point, 시리얼 인터페이스에서만 지원)
R1(config)#int serial 0/0 R1(config-if)#ip rip triggered
*루트 포이즈닝
특정 네트워크가 장애나 삭제된 것을 인식한 라우터가 인접 라우터에게 metic 16 정보를 광고하여 더 이상 도달할 수 없는 네트워크 정보를 업데이트 해준다.
R1(config)# interface ethernet 1/2
R1(config-if)# ip rip poison-reverse
*스프릿 호라이즌
라우팅 정보를 수신한 라우터는 전달해준 인터페이스 포트를 기록해두고 해당 인터페이스로는 동일한 라우팅 정보를 중복 전달하지 않는다.
R0(config)#interface gigabitEthernet 0/0
R0(config-if)#ip split-horizon
감사합니다 !!
자세한 내용은 CISCO 홈페이지에서 확인 가능합니다.
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_rip/configuration/15-mt/irr-15-mt-book/irr-cfg-info-prot.html#GUID-B773C338-DC20-4DC0-9B21-F6E9FE0921BC