목차/07. RIP

07RIPRIP

RIP(Routing Information Protocol)가장 오래되고 단순한 distance-vector IGP(Interior Gateway Protocol) 로, 오늘날에도 여전히 널리 쓰입니다. 이 장은 RIP가 어떻게 동작하는지, RIPv1과 RIPv2가 무엇이 다른지, Gaia Portal과 Gaia Clish에서 어떻게 구성하는지, VRRP와 함께 쓸 때 무엇을 알아야 하는지, 그리고 RIP를 어떻게 모니터링하는지 를 IPv4용 RIP와 IPv6용 RIPng로 나누어 빠짐없이 정리합니다. 원문이 표로 나열한 파라미터도 그대로 담되, 왜 그렇게 쓰는지를 함께 풀어 둡니다.

RIP (IPv4)

RIP가 경로를 정하는 방식

RIP는 목적지 네트워크까지의 비용을 오로지 hop 수(거쳐 가는 라우터 수)만으로 판단 합니다. 링크 속도나 혼잡 같은 요소는 전혀 고려하지 않습니다. 그래서 빠른 회선을 한 번 더 거치는 경로보다 느린 회선을 곧장 가는 경로를 "더 좋다"고 잘못 고를 수 있다는 한계가 있습니다.

RIP를 쓰는 라우터는 자기 라우팅 테이블을 주기적으로 다른 라우터에게 브로드캐스트 합니다. 이때 테이블이 바뀌었든 아니든 일정 주기마다 보냅니다. 보내는 정보는 IP 네트워크 주소그 네트워크까지의 거리(distance) 가 짝을 이룬 값들로 이루어집니다.

여기서 거리는 정수로 표현한 hop count 메트릭 입니다.

  • 직접 연결된 네트워크의 메트릭은 1 입니다.
  • 라우터 한 대를 더 거쳐야 닿는 네트워크는 2 hop이고, 그런 식으로 한 단계씩 늘어납니다.
  • RIP 망에서 최대 hop 수는 15 이며, 16 이상은 "도달 불가(unreachable)" 로 취급합니다.

RIP의 단점도 분명합니다. 경로가 아주 많은 망에서는 과도한 트래픽 을 일으키고, 수렴(convergence)이 느리며, OSPF 같은 다른 IGP보다 보안이 약합니다. 그래서 소규모·단순 환경이나 레거시 호환용으로 주로 씁니다.

RIPv1

RIPv1은 두 가지 특징을 알아 두면 됩니다 — 네트워크 마스크를 추론하는 방식자동 요약(Auto Summarization) 입니다.

Network Mask — RIPv1은 받은 네트워크·호스트의 네트워크 마스크를, 그 패킷이 들어온 인터페이스의 네트워크 마스크로부터 유추 합니다. 받은 네트워크나 호스트가 들어온 인터페이스와 같은 natural network에 속하고 그 네트워크가 서브네팅되어 있다면(즉 지정된 마스크가 natural network 마스크보다 더 구체적이면), 그 서브넷 마스크를 목적지에 적용합니다. 마스크 바깥 비트가 켜져 있으면 호스트로 보고, 그렇지 않으면 서브넷으로 봅니다.

Auto Summarization — Check Point의 RIPv1 구현은 자동 요약을 지원 합니다. 덕분에 라우터가 non-classful 경로를 RIPv1 안에서 집계(aggregate)하고 재배포(redistribute) 할 수 있습니다.

RIPv2

RIPv2는 RIP에 여러 기능을 더했습니다. 가장 두드러진 향상은 명시적 네트워크 마스크인증(Authentication) 입니다.

Network Mask — RIPv1은 한 네트워크의 모든 서브네트워크가 같은 마스크를 쓴다고 가정 하고, 이 가정으로 받은 모든 경로의 마스크를 계산합니다. 이 가정 때문에 서로 다른 마스크를 가진 서브넷은 RIP 패킷에 담을 수 없습니다. RIPv2는 패킷 안의 네트워크마다 마스크를 명시적으로 지정 할 수 있게 해서 이 제약을 풀었습니다.

Authentication — RIPv2 패킷은 두 종류의 인증 방식 중 하나를 담아, 공급된 라우팅 데이터가 진짜인지 검증할 수 있습니다.

  • 첫 번째는 단순 암호(simple password) 방식입니다. 최대 16자의 인증 키 를 패킷에 그대로 넣고, 이 암호가 기대값과 다르면 패킷을 버립니다. 다만 RIP 패킷을 엿보면 키를 알아낼 수 있어 보안이 매우 약합니다.
  • 두 번째는 MD5 방식입니다. MD5 알고리즘으로 RIP 패킷과 최대 16자의 인증 키 로부터 crypto checksum을 만듭니다. 전송되는 패킷에는 인증 키 자체가 들어가지 않고, digest라 부르는 crypto checksum 만 담깁니다. 받는 라우터는 올바른 키로 같은 계산을 해서 digest가 맞지 않으면 패킷을 버립니다. 또한 시퀀스 번호를 유지해 오래된 패킷의 재전송(replay)을 막습니다. 그래서 라우팅 데이터가 유효한 키를 가진 라우터에서 왔다는 것을 훨씬 강하게 보장 합니다.

Gaia Portal에서 RIP 구성하기

  1. 왼쪽 탐색 트리에서 Advanced Routing > RIP 를 클릭합니다.
  2. (선택) RIP Global Settings 섹션에서 해당 설정을 구성하고 Apply Global Settings 를 클릭합니다.

전역 설정의 파라미터는 다음과 같습니다.

파라미터설명
Update Interval정기 RIP 업데이트 사이의 시간 간격. 주기 업데이트가 동시에 몰리는 것을 막기 위해, 실제로는 (0.5×Update Interval 값, 1.5×Update Interval 값) 구간의 균등 분포에서 뽑은 시각에 보냅니다. 범위 1-65535초, 기본 30초.
Expire Interval어떤 경로에 대해 업데이트 없이 이만큼 시간이 지나면 그 경로를 타임아웃된 것으로 간주합니다. 범위 1-65535초, 기본 180초.
Auto SummarizationRIPv1에만 적용. non-classful RIPv1을 RIPv2로 자동 집계·재배포할지 제어합니다. 범위 Selected/Cleared, 기본 Selected.
  1. RIP Interfaces 섹션에서 RIP를 켤 인터페이스를 추가합니다.
    • a. Add 클릭.
    • b. Interface 필드에서 해당 인터페이스 선택.
    • c. Version 필드에서 RIP 버전 선택. v2를 고르면 기본적으로 RIP multicast 주소로 전체 RIPv2 패킷을 보냅니다. (범위 v1/v2, 기본 v1)
    • d. Metric 필드에 RIP 메트릭 입력.
    • e. Accept updates 옵션 선택.
    • f. Send updates 옵션 선택.
    • g. Virtual Address 옵션 선택.
    • h. Transport 필드에서 RIP 패킷을 어떻게 보낼지 선택.
    • i. Authentication Type 필드에서 인증 유형 선택.
    • j. Save 클릭.

각 인터페이스 옵션의 뜻을 풀면 다음과 같습니다.

옵션설명
Metric이 인터페이스로 보내는 경로에 더할 RIP 메트릭. 다른 라우터가 이 라우터보다 다른 RIP 출처를 선호하게 만들 때 씁니다. 메트릭이 높을수록 경로가 더 비싸 보입니다. 0이나 default로 두면 저장값이 사라집니다. 범위 None 또는 1-16, 기본 None.
Accept updates이 인터페이스를 쓰는 다른 라우터의 RIP 패킷을 받을지 무시할지 제어. 업데이트를 무시하면 최적이 아닌(suboptimal) 라우팅 이 될 수 있습니다. 범위 Selected/Cleared, 기본 Selected.
Send updates이 인터페이스로 RIP 패킷을 보낼지 제어. 선택하지 않으면 인터페이스가 수동 RIP 수신자(passive listener) 가 됩니다. 범위 Selected/Cleared, 기본 Selected.
Virtual AddressVRRP Cluster에만 적용. RIP가 이 인터페이스에 연결된 VRRP Virtual IP 주소에서만 동작 하게 합니다. 이 라우터가 VRRP Master가 아니면 RIP가 동작하지 않습니다. 범위 Selected/Cleared, 기본 Cleared.
TransportRIP 패킷 전송 방식. Multicast 모드에서는 RIPv2 패킷을 이 인터페이스에서 multicast로 보냅니다. 범위 Multicast/Broadcast, 기본 Multicast.
Authentication TypeRIPv2에만 적용. 링크에 쓸 인증 방식. 한 링크의 라우터들은 neighbor adjacency를 맺으려면 인증 구성이 서로 일치 해야 합니다. 신뢰하는 라우터의 라우팅 정보만 받게 보장합니다. 범위 None/Simple/MD5, 기본 None.

인증 유형별 상세는 다음과 같습니다.

  • None — 인접 라우터로부터 라우팅 정보를 받을 때 인증 방식을 쓰지 않 습니다.
  • Simple — 단순 인증. Simple Password 필드에 1~16자의 암호 를 입력합니다. 지원 문자는 a-z, A-Z, 0-9 입니다.
  • MD5 — MD5 알고리즘 인증. MD5 Key 필드에 1~16자의 암호 를 입력합니다. 지원 문자는 a-z, A-Z, 0-9 와 다음 기호입니다.
  ` ~ ! @ # % ^ & * ( ) { } [ ] : ; , . _ - + =
  

Cisco 라우터의 RIP MD5 인증과 맞추려면 Cisco Compatibility 옵션을 선택합니다. 기본값은 Check Point 표준 이고 Cisco 호환이 아닙니다.

Gaia Clish에서 RIP 구성하기

쓸 수 있는 RIP 명령은 직접 펼쳐 볼 수 있습니다. set 명령 목록은 set rip 뒤에 <ESC><ESC>, show 명령 목록은 show rip 뒤에 <ESC><ESC> 를 눌러 확인합니다.

set rip[Esc][Esc]
show rip[Esc][Esc]

전체 구문은 다음과 같습니다.

set rip
      auto-summary {off | on}
      expire-interval {<1-65535> | default}
      export-routemap <Name of RouteMap>
            off
            preference <Preference> on
      import-routemap <Name of RouteMap>
            off
            preference <Preference> on
      interface <Name of Interface> {off | on}
            version {1 | 2} on
            accept-updates {off | on}
            authtype
                  md5 secret <Password> [cisco-compatibility {off | on}]
                  none
                  simple <Password>
            metric {<0-16> | default}
            send-updates {off | on}
            transport {multicast | broadcast}
            virtual-address {off | on}
      update-interval {<1-65535> | default}

각 파라미터의 뜻은 다음과 같습니다. 필수 표시가 없는 파라미터는 모두 선택입니다.

파라미터설명
**auto-summary {off \on}**RIPv1에만 적용. non-classful RIPv1을 RIPv2로 자동 집계·재배포할지 제어. 켜지 않으면 aggregation·redistribution을 수동 구성해야 합니다. 범위 off/on, 기본 off.
**expire-interval {<1-65535> \default}**업데이트 없이 이만큼 지나면 경로를 타임아웃으로 간주. Update Interval의 6배 여야 합니다. 범위 1-65535초, 기본 180초.
export-routemap <Name> offexport 정책용으로 구성된 Route Map을 비활성화합니다.
export-routemap <Name> preference <Preference> onexport Route Map의 우선순위를 설정. Route Map은 preference 값이 커지는 순서 로 적용됩니다.
import-routemap <Name> offimport 정책용 Route Map을 비활성화합니다.
import-routemap <Name> preference <Preference> onimport Route Map의 우선순위를 설정. preference 증가 순으로 적용됩니다.
**interface <Name> {off \on}**지정한 인터페이스에서 RIP를 끄거나(off) 켭니다(on).
**version {1 \2} on**RIP 버전 설정. v2면 기본적으로 RIP multicast 주소로 전체 RIPv2 패킷을 보냅니다. 범위 1/2, 기본 1.
**accept-updates {off \on}**인터페이스를 쓰는 다른 라우터의 RIP 패킷을 받을지 무시할지. 무시하면 suboptimal 라우팅이 될 수 있습니다. 범위 off/on, 기본 on.
authtype ...RIPv2에만 적용. 링크에 쓸 인증 방식. 한 링크의 라우터들은 인증 구성이 일치해야 adjacency를 맺습니다(아래 상세).
**metric {<0-16> \default}**이 인터페이스로 보내는 경로에 더할 메트릭. 높을수록 비싸 보입니다. 0이나 default면 저장값 제거. 범위 default/1-16, 기본 default(none).
**send-updates {off \on}**인터페이스로 RIP 패킷을 보낼지. 켜지 않으면 passive RIP listener가 됩니다. 범위 off/on, 기본 on.
**transport {multicast \broadcast}**RIP 패킷 전송 방식. Multicast 모드에서는 RIPv2 패킷을 multicast로 보냅니다. 범위 multicast/broadcast, 기본 multicast.
**virtual-address {off \on}**VRRP Cluster에만 적용. RIP가 VRRP Virtual IP에서만 동작하게 합니다. VRRP Master가 아니면 동작하지 않습니다. 범위 off/on, 기본 off.
**update-interval {<1-65535> \default}**정기 업데이트 간격. 동시 전송을 막으려 (0.5×값, 1.5×값) 구간 균등 분포 시각에 보냅니다. 범위 1-65535초, 기본 30초.

authtype 의 세부 형태는 다음과 같습니다.

  • authtype md5 secret <Password> [cisco-compatibility {off | on}] — MD5 알고리즘 인증. 암호는 1~16자 이며 지원 문자는 a-z, A-Z, 0-9 와 다음 기호입니다.
  ` ~ ! @ # % ^ & * ( ) { } [ ] : ; , . _ - + =
  
  • authtype none — 인접 라우터로부터 라우팅 정보를 받을 때 인증을 쓰지 않습니다.
  • authtype simple <Password> — 단순 인증. 암호는 1~16자이며 지원 문자는 a-z, A-Z, 0-9 입니다.

RIP의 VRRP 지원

Gaia는 VRRP Virtual Router의 Virtual IP 주소를 광고 하는 기능을 지원합니다. 즉 RIP가 인터페이스의 실제 IP 대신 VRRP Virtual IP를 광고 하도록 구성할 수 있습니다.

이 옵션을 켜면 RIP는 Virtual Router의 VRRP Master에서만 동작 합니다. failover가 일어나면 기존 Master에서 RIP가 멈추고 새 Master에서 RIP가 시작됩니다. 이때 VRRP와 RIP 두 프로토콜이 경로를 다시 학습하는 동안 트래픽이 잠깐 끊길 수 있습니다. 망이 클수록 RIP가 데이터베이스를 동기화하고 경로를 다시 설치하는 데 더 오래 걸립니다.

RIP 모니터링

Gaia Portal에서 모니터링하려면 — 왼쪽 탐색 트리에서 Advanced Routing > RIP 를 클릭하고, 우측 상단의 Monitoring 을 클릭한 뒤, RIP Monitor 섹션에서 Information 카테고리를 클릭합니다.

Gaia Clish에서 모니터링하려면 다음을 입력합니다.

show rip[Esc][Esc]

RIP 문제 해결은 "Trace Options" 절을 참고하세요.

RIPng (IPv6)

RIPngIPv6를 지원하기 위해 개발된 RIP의 확장 입니다. 같은 distance-vector·hop 기반 원리를 따르되, IPv6 네트워크를 다룹니다.

인터넷처럼 국제적인 망에서는 하나의 라우팅 프로토콜이 망 전체에 쓰이는 경우가 거의 없 습니다. 대신 망은 여러 Autonomous System(AS) 의 모음으로 조직되며, 각 AS는 보통 하나의 주체가 관리합니다. 각 AS는 자기만의 라우팅 기술을 쓰고, 그 기술은 AS마다 다를 수 있습니다.

  • AS 안에서 쓰는 라우팅 프로토콜을 IGP(Interior Gateway Protocol) 라 합니다.
  • AS 사이에서 라우팅 정보를 주고받는 별도 프로토콜을 EGP(Exterior Gateway Protocol) 라 합니다.

RIPng는 중간 규모의 AS에서 IGP로 동작하도록 설계 되었고, 더 복잡한 환경용은 아닙니다. IPv6 기반 망을 통해 경로를 계산하는 데 필요한 정보를 라우터끼리 교환하게 해 주며, Distance Vector 알고리즘 부류 에 속합니다. 자세한 내용은 RFC 2080 을 참고하세요.

Gaia Portal에서 RIPng 구성하기

  1. 왼쪽 탐색 트리에서 Advanced Routing > RIPng 를 클릭합니다.
  2. (선택) RIPng Global Settings 섹션에서 해당 설정을 구성하고 Apply Global Settings 를 클릭합니다.

전역 설정의 파라미터는 다음과 같습니다.

파라미터설명
Update Interval정기 RIPng 업데이트 사이의 간격. 동시 전송을 막으려 (0.5×값, 1.5×값) 구간 균등 분포 시각에 보냅니다. 범위 1-65535초, 기본 30초.
Expire IntervalRIPng 업데이트 메시지가 없을 때 경로를 몇 초나 유지할지 지정. 범위 1-65535초, 기본 180초.
  1. RIPng Interfaces 섹션에서 해당 인터페이스를 추가합니다.
    • a. Add 클릭.
    • b. Interface 필드에서 해당 인터페이스 선택.
    • c. Metric 필드에 RIPng 메트릭 입력.
    • d. Virtual Address 옵션 선택.
    • e. Save 클릭.

인터페이스 옵션의 뜻은 다음과 같습니다.

옵션설명
Metric이 인터페이스로 보내는 경로에 더할 RIPng 메트릭. 다른 라우터가 다른 RIPng 출처를 선호하게 만들 때 씁니다. 높을수록 비싸 보입니다. 0이나 default면 저장값 제거. 범위 None 또는 1-16, 기본 None.
Virtual AddressVRRP Cluster에만 적용. RIPng가 이 인터페이스에 연결된 VRRP Virtual IP에서만 동작하게 합니다. VRRP Master가 아니면 동작하지 않습니다. 범위 Selected/Cleared, 기본 Cleared.

Gaia Clish에서 RIPng 구성하기

쓸 수 있는 IPv6 RIPng 명령은 다음처럼 펼쳐 봅니다.

set ipv6 ripng[Esc][Esc]
show ipv6 ripng[Esc][Esc]

전체 구문은 다음과 같습니다.

set ipv6 ripng
      expire-interval {<1-65535> | default}
      export-routemap <Name of RouteMap>
            off
            preference <Preference> on
      import-routemap <Name of RouteMap>
            off
            preference <Preference> on
      interface <Name of Interface> {off | on}
            metric VALUE
            virtual-address {off | on}
      update-interval VALUE

각 파라미터의 뜻은 다음과 같습니다. 필수 표시가 없는 파라미터는 모두 선택입니다.

파라미터설명
**expire-interval {<1-65535> \default}**RIPng 업데이트가 없을 때 경로를 몇 초 유지할지. Update Interval의 6배 여야 합니다. 범위 1-65535초, 기본 180초.
export-routemap <Name> offexport 정책용 Route Map을 비활성화합니다.
export-routemap <Name> preference <Preference> onexport Route Map의 우선순위 설정. preference 증가 순으로 적용.
import-routemap <Name> offimport 정책용 Route Map을 비활성화합니다.
import-routemap <Name> preference <Preference> onimport Route Map의 우선순위 설정. preference 증가 순으로 적용.
**interface <Name> {off \on}**지정한 인터페이스에서 RIPng를 끄거나 켭니다.
**metric {<0-16> \default}**이 인터페이스로 보내는 경로에 더할 메트릭. 높을수록 비싸 보입니다. 0이나 default면 저장값 제거. 범위 default/1-16, 기본 default(none).
**virtual-address {off \on}**VRRP Cluster에만 적용. RIPng가 VRRP Virtual IP에서만 동작하게 합니다. VRRP Master가 아니면 동작하지 않습니다. 범위 off/on, 기본 off.
**update-interval {<1-65535> \default}**정기 업데이트 간격. 동시 전송을 막으려 (0.5×값, 1.5×값) 구간 균등 분포 시각에 보냅니다. 범위 1-65535초, 기본 30초.

RIPng 모니터링

Gaia Portal에서 모니터링하려면 — 왼쪽 탐색 트리에서 Advanced Routing > RIP 를 클릭하고, 우측 상단의 Monitoring 을 클릭한 뒤, RIPng Monitor 섹션에서 Information 카테고리를 클릭합니다.

Gaia Clish에서 모니터링하려면 다음을 입력합니다.

show ipv6 ripng[Esc][Esc]

RIPng 문제 해결은 "Trace Options" 절을 참고하세요.