[Router] RIP

Routing Information Protocol
산업 표준으로 개발되었다가 이후 인터넷 표준으로 발전된 프로토콜.
Xerox(제록스)의 PARC(팔로알토 연구소)에서 Ethernet 위에 사용할 더 높은 계층에 속한 PUP(PARC Universal Protocol)을 개발했다.
그리고 PUP 라우팅에 사용하기 위한 GWINFO(게이트웨이 정보 프로토콜)을 만들었고, 이게 RIP가 되었다.
RIP는 BSD에서 사용되면서 널리 쓰이게 되었다. 1988년 IETF에서 RFC 1058 “Routing Information Protocol”을 정식 명시하였다.

  1. RIP 특징
  2. RIP 패킷 포맷
  3. RIP 설정
  4. RIP 보안

1. RIP 특징

– RIPv1, RIPv2, IPv6용 RIPng가 있다.
– RIPv1, v2는 UDP 520번, RIPng는 UDP 521번을 사용한다.
– 한 장비로만 전송할 때는 Unicast 방식을 사용한다. 여러 장비로 전송할 때, RIPv1는 Broadcast, RIPv2와 RIPng는 Multicast 방식을 사용한다.
– 메트릭으로 Hop count 를 사용하며, 링크 속도를 반영하지 않는다. 라우터 홉 수가 16 이상일 때, 도달할 수 없는 네트워크라고 판단한다.
– 토폴로지 변화와 상관없이 30초마다 라우팅 테이블 전체를 인접 라우터로 전송하고, 컨버전스 시간이 길다.

1-1. 메세지 유형

(1) RIP Request : 타 라우터의 라우팅 테이블 일부/전체를 요청한다. ex) 라우터가 켜졌을 때.
(2) RIP Respond : 라우팅 테이블 일부/전체를 전송한다. 30초마다 전송하거나 Request 메세지에 대한 응답으로 전송한다.

1-2. Timer

(1) 특정 링크가 만료되는 상황에 대비하기 위해 180초의 Timeout Timer를 갖는다. 180초 안에 해당 라우팅 정보를 받으면 Timer는 초기화 되고, 그렇지 않으면 Metric을 16으로 올린 후 다음 단계로 넘어간다.
(2) Garbage-Collection Timer를 동작시켜 120초 동안 삭제 대기를 한다. 이 때, Respond 메세지를 보내더라도 삭제 대기 중인 라우팅 정보를 포함시켜 전송한다. 만약 다른 라우터로 해당 라우팅 정보가 들어오면, 유효한 라우팅 정보로 간주하고 즉시 Timer를 초기화 시킨다.

*** 라우팅 정보를 삭제하기 전 Timeout Timer, Garbage-Collection Timer를 거쳐야 삭제된다.


2. RIP 패킷 포맷

[ RIP 메세지 포맷 ]
– Command: RIP 메세지 유형 지정. 1 – RIP Request, 2 – RIP Respond
– Version: RIP 버전 지정
– 0: 예약된 필드로 0으로 패딩
– RTE: 라우팅 정보를 갖고 있는 필드. 최소 1개~ 최대 25개의 라우팅 정보를 갖고 있다.

[ RTE 포맷 ]
– Address Family Identifier: 주소 유형 지정. IP주소는 2로 지정
– Router Tag: 경로에 대한 추가 정보
– IP 주소, Subnet Mask, Next Hop, Metric

만약, RIP 인증을 사용하게되면,  라우팅 정보에 인증 정보 1개가 포함되기 때문에 최대 24개까지 갖을 수 있다.


3. RIP 설정

3-1. RIP 기본 설정

RIP 설정 시 라우팅 정보를 전송하는 인터페이스는 반드시 설정에 포함.

Router(config)# router rip
Router(config-router)# version 2
Router(config-router)# network <NETWORK_ID>

3-2. RIP 네트워크 축약

Default Route 광고
RIP가 동작하는 인접 라우터로 Default Route를 광고한다.

# 방법 1
Router(config)# ip route 0.0.0.0 0.0.0.0 <NEXT_HOP_IP>
Router(config)# router rip
Router(config-router)# default-information originate

# 방법 2
Router(config)# ip route 0.0.0.0 0.0.0.0 <NEXT_HOP_IP>
Router(config)# router rip
Router(config-router)# redistribute static

RIP 자동 축약
축약을 통해 네트워크의 안정성과 성능을 향상시킬 수 있다. 자동 축약은 기본으로 설정되어 있다.
172.30.1.0/24를 사용하는 네트워크를 광고할 때,  자동 축약이 되어있다면 IP 클래스에 맞게 172.30.0.0/16으로 광고한다.

# 자동 축약 해제
Router(config)# router rip
Router(config-router)# no auto-summary

RIP 수동 축약
관리자 임의로 네트워크를 축약한다. 수동으로 축약할 때, 주 네트워크 범위 내에서만 축약할 수 있다. RIPv2로 자동 축약 해제된 상태에서만 설정할 수 있다.
‘192.168.0.128/26’, ‘192.168.0.192/26’ 
—→ ‘192.168.0.128/25’ 축약 가능
‘192.168.0.0/24’, ‘192.168.1.0/24’
—→ ‘192.168.0.0/23’ 축약 불가

Router(config)# int <INTERFACE>
Router(config-if)# ip summary-address rip <NETWORK_ID> <SUBNET>

3-3. Offset List를 이용한 메트릭 조정

Offset List란, EIGRP나 RIP와 같은 거리 벡터 라우팅 프로토콜에서 사용하는 ‘송.수신 메트릭을 증가시키는 메커니즘’이다.

예를 들어, 아래와 같은 토폴로지가 있다고 가정해보자.

토폴로지. OFFSET LIST

경로 A(R1→R2→R3) 와 B(R1→R3)를 부하 분산 시키기 위해선 Offset List를 사용한다. A의 메트릭은 2, B의 메트릭은 1이므로 B의 메트릭을 1 올려주어야 한다.

R1(config)# ip access-list standard <ACL_NAME>
R1(config-std-nacl)# permit <NETWORK_ID> <WILDMASK>
R1(config-std-nacl)# exit
R1(config)# 
R1(config)# router rip
R1(config-router)# offset-list <ACL_NAME> in [0-16] <INTERFACE>
R1(config-router)# offset-list <ACL_NAME> out [0-16] <INTERFACE>

-----

R1(config)# ip access-list standard IP_LIST
R1(config-std-nacl)# permit 10.10.10.0 0.0.0.255
R1(config-std-nacl)# exit
R1(config)# 
R1(config)# router rip
R1(config-router)# offset-list IP_LIST in 1 fa0/1
R1(config-router)# offset-list IP_LIST out 1 fa0/1

1: ACL을 이용해 메트릭을 조정할 네트워크를 지정한다.
6: in-라우팅 정보 수신 시 메트릭 증가, out-라우팅 정보 송신 시 메트릭 증가, 메트릭 값은 0~16 값을 지정할 수 있다.


4. RIP 보안

4-1. 라우팅 정보 인증

라우팅 정보를 수신할 때, 암호가 일치할 때만 라우팅 테이블에 저장한다. 직접 연결된 장비끼리만 설정하면 된다. 양쪽 라우터 모두 설정한다.

설정

Router(config)# key chain <CHAIN_NAME>
Router(config-keychain)# key [0-2147483647]
Router(config-keychain-key)# key-string <WORD>
Router(config-keychain-key)# exit
Router(config-keychain)# exit
Router(config)# 
Router(config)# int <INTERFACE>
Router(config-if)# ip rip authentication key-chain <CHAIN_NAME>
Router(config-if)# ip rip authentication mode [md5|text]

4-2. 라우팅 정보 차단

특정 인터페이스로 오는 라우팅 정보를 차단한다.

설정

Router(config)# ip prefix-list <PREFIX_NAME> deny 0.0.0.0/0 le 32
Router(config)#
Router(config)# router rip
Router(config-router)# distribute-list prefix <PREFIX_NAME> in <INTERFACE>
Router(config-router)# distribute-list prefix <PREFIX_NAME> out <INTERFACE>

1: (1) 라우팅 정보를 차단하기 위해 Prefix List를 사용한다. Access List를 사용해도 된다. (2) 만일, 특정 광고만 받으려면 deny대신 permit을 사용한다. ‘deny 0.0.0.0/0 le 32’는 모든 네트워크를 차단한다는 의미이다. Prefix List에 대한 내용은 추후 다시 자세히 확인해보도록 한다.
4,5: in은 해당 인터페이스로 수신하는 것에 대한 내용, out은 송신하는 것에 대한 내용을 의미한다.

답글 남기기

이메일 주소는 공개되지 않습니다.