Network Protocol (1) - RIP_NAT_DHCP

소개

안녕하세요 오늘은 간단한 실습에서 자주쓰이는 RIP에 대해서 알아보도록하려고 합니다.

 오늘 이 글에선 RIP의 핵심 개념과 장단점, 그리고 주요 기능에 대해 자세히 알아 보았습니다.

 

RIP는 Routing Information Protocol(라우팅 정보 프로토콜)로, 다이나믹 라우팅 프로토콜중 하나입니다.

RIP는 1988년 ITEF(Internet Engineering Task Force)에 의해 RFC 1058로 정의되었고

거리 벡터 프로토콜로 Hop Count(홉 카운트)를 사용하여 최단경로를 결정합니다.

RIP는 네트워크가 변화할 때마다 라우팅 테이블을 업데이트하므로, 

네트워크의 규모와 변화에 따라 동적으로 라우팅 정보를 유지하는데 유용합니다.

UDP 520번을 사용한다.

 

RIP의 장점과 단점

 

장점

간단한 구성

- RIP는 설정이 간단하고, 소규모 네트워크에 적합하다.

 

네트워크 변경 시 자동 업데이트

- 네트워크의 구성이 변경될 때마다 자동으로 라우팅 테이블을 업데이트 한다다.

 

단점

제한된 확장성

- RIP는 최대 허용 Hop count가 15로 제한되어 있어, 큰 네트워크에는 적합하지 않다.

 

불필요한 트래픽

- 주기적인 업데이트 메시지가 네트워크 트래픽에 부하를 줄 수 있다.

 

느린 수렴 시간

- 네트워크 변화에 대해 빠르게 대응하는 것보다 느린 수렴시간을 가진다.

 

실습

 

1.  토폴로지를 보고 PC와 Router에 IP설정을 해준다.

RIP_NAT_DHCP Topology

토폴로지를 대충 설명하자면, ISP(R4)에서 DNS서버의 라우터와 DHCP서버 역할을 대신한다.

R3에서 NAT 설정을 하여 외부로 통신하는 IP를 ISP에게 받은 DHCP IP로 공인IP로 변환하여 나가도록 함.

PC0의 IP설정

사진에는 없지만 DNS설정이 8.8.8.8로 되어있음.

 

2. R1부터 ISP까지의 설정

R1)

interface Loopback0
 ip address 1.1.1.1 255.255.255.0

interface GigabitEthernet0/0
 ip address 1.1.12.1 255.255.255.0
 duplex auto
 speed auto

interface GigabitEthernet0/2
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed auto

router rip
 version 2
 network 1.0.0.0
 network 192.168.1.0
 no auto-summary
R2)

interface Loopback0
 ip address 2.2.2.2 255.255.255.0

interface GigabitEthernet0/0
 ip address 1.1.12.2 255.255.255.0
 duplex auto
 speed auto

interface GigabitEthernet0/1
 ip address 1.1.23.2 255.255.255.0
 duplex auto
 speed auto

router rip
 version 2
 network 1.0.0.0
 network 2.0.0.0
 no auto-summary
R3)
interface Loopback0
 ip address 3.3.3.3 255.255.255.0

interface GigabitEthernet0/0
 ip address 1.1.23.3 255.255.255.0
 ip nat inside
 duplex auto
 speed auto

interface GigabitEthernet0/1
 ip address dhcp
 ip nat outside
 duplex auto
 speed auto

router rip
 version 2
 network 1.0.0.0
 network 3.0.0.0
 network 172.16.0.0
 default-information originate //디폴트 라우트 정보를 자동으로 광고
 no auto-summary

ip nat inside source list 1 interface GigabitEthernet0/1 overload

access-list 1 permit any
R4(ISP)/

ip dhcp pool DHCP // DHCP라는 이름의 DHCP풀을 생성
 network 192.168.122.0 255.255.255.0 
 default-router 192.168.122.1 //DHCP 클라이언트에게 기본 게이트웨이로 사용할 IP 설정
 dns-server 8.8.8.8 //DHCP 클라이언트가 사용할 DNS서버의 IP주소를 지정

interface GigabitEthernet0/0
 ip address 192.168.122.1 255.255.255.0
 duplex auto
 speed auto

interface GigabitEthernet0/1
 ip address 8.8.8.1 255.255.255.0
 duplex auto
 speed auto

router rip
 version 2
 network 8.0.0.0
 network 192.168.122.0
 no auto-summary

 

2.1 각각 라우터의 라우팅테이블

R1의 라우팅 테이블
R2의 라우팅 테이블
R3의 라우팅 테이블
ISP의 라우팅 테이블

3. Ping 테스트

PC에서 8.8.8.8까지의 pingtest

4. NAT 정보

R3에서의 show ip nat translations

5. RIP의 정보 확인 명령어

R1# show ip protocols 
// 라우팅 프로토콜의 상세정보 
//(RIP가 활성화 되어있는지, RIP버전, 네트워크 광고 정보, 인터페이스별 활성화 여부)

R1# show ip rip database
//RIP의 데이터베이스를 보여준다. RIP가 수집한 모든 라우팅 정보가 포함되어있음.

R1# debug ip rip
//RIP의 디버깅 정보를 보여준다. RIP프로토콜에서 교환데는 메시지를 실시간으로 보고 디버깅가능.

 

show ip protocols
show ip rip database

추가적으로 RIP는 passive-interface를 통해 이웃을 정해 유니캐스트로 통신이 가능하게 할 수 있다.

ex)

6. RIP 알고리즘의 동작 원리

 RIP는 Bellman-Ford 알고리즘을 기반으로

(Dstance Vector(거리 벡터) 알고리즘)

각 라우터는 주기적으로 라우팅 정보를 교환하여 네트워크의 구성이 변경될 때마다 업데이트를 자동으로 수행

 

1. 라우팅 테이블 구성

- 각 라우터는 연결된 인터페이스에 대한 IP주소와 서브넷마스크 정보를 가지고 있다. 

RIP를 사용하는 라우터는 이 정보들을 기반으로 초기 라우팅 테이블을 구성한다.

 

2. 정기적인 라우팅 정보 교환

- RIP를 사용하는 라우터는 주기적으로 자신이 알고 있는 네트워크 정보를 인접한 라우터에게 광고한다.

이 정보는 RIP 패킷에 담겨 주기적으로 브로드캐스트로 전송된다.

 

3. 메트릭(Metric) 계산

- RIP는 경로의 성능을 나타내는 메트릭을 사용하여, 최적의 경로를 설정한다.

기본 메트릭은 hop coun로, 경로를 거치는 라우터의 개수를 센다.

즉, 경로를 거치는 라우터의 개수가 적을수록 더 좋은 경로로 간주됨.

 

4. 라우팅 테이블 업데이트

- 라우터는 주기적으로 수신한 라우팅 정보를 사용하여 라우팅 테이블을 업데이트한다. 

새로운 경로가 발견되거나 더 나은 경로가 갱신되면 해당 정보를 라우팅 테이블에 반영한다.

 

5. 수렴(Convergence)

- 네트워크 구성이 변경되거나 라우팅 정보가 업데이트되면, RIP는 수렴을 통해 라우팅 테이블을 최신으로 업데이트한다.

수렴은 모든 라우터가 일관된 라우팅 정보를 가지고 있을 때 까지의 시간을 의미한다.

 

7. RIP의 특징 (네트워크 설계 원칙과 가이드라인)

 

1. RIP는 경로 선택에 hop count만을 사용하여 단순하고 구현이 쉽다는 특징을 가지고 있다.

하지만 네트워크 규모가 커질수록 홉 카운트 기반의 메트릭이 비효율적일 수 있다.

수동축약 (한개의 인터페이스에서  ip summary-address rip A.B.C.D subnetmask)를 이용하여

메모리와 CPU사용을 줄일 수 있다.

ex)

인터페이스에서 설정
축약된정보를 Response하는 패킷
설정 이전의 패킷정보

하지만 ,클래스풀을 영역에서 벗어나게 되는경우 오류가 발생한다.

클래스풀 영역을 벗어나는경우 생기는 오류

 

2. 주기적으로 라우팅 정보를 광고하고 업데이트하여 변화에 빠르게 대응할 수 있다.

하지만 이러한 주기적인 광고는 네트워크의 트래픽을 증가시킬 수 있다.

 

3. 대부분의 환경에서는 작은 네트워크에서 사용하기 적합한 프로토콜이다.

라우팅 정보 교환을 브로드캐스트로 수행하므로 *스플리터를 사용한 라우팅 동작에는 적합하지 않을 수 있다.

*스플리터(Splitter) : Hub, Switch 등 한개의 네트워크 케이블을 여러 개의 케이블로 나누는 역할을 하는 기기

 

4. RIPv2는 RIPv1보다 더 많은 기능을 제공하고, 서브넷 정보를 유지하는 등 개선이 있다.

하지만 더 큰 네트워크에서도 효과적인지는 고려해봐야한다.

 

 

RIP는 현재 다른 라우팅 프로토콜들에 비해 한계가 있어서 큰 규모의 네트워크에선 RIP보다 고급 라우팅 기술인

OSPF나 BGP 등 다른 라우팅 프로토콜을 사용하는 것이 일반적이다.

 

8. 다른 프로토콜과의 비교 ( 차이점 )

알고리즘
EIGRP = DUAL 알고리즘
OSPF = SPF 알고리즘
BGP = Routing Vector(경로 벡터) 알고리즘
RIP = Distance Vector(거리 벡터) 알고리즘
IS-IS = SPF 알고리즘

운영 환경
EIGRP = 주로 기업 내부 네트워크에서 적합한 IGP
OSPF =  대규모 네트워크에서 주로 사용되는 IGP
BGP = 인터넷과 외부 연결에 사용되는 EGP
RIP = 간단한 네트워크에서 사용되는 IGP
IS-IS = ISP 및 대규모 네트워크에서 사용되는 IGP

확장성
EIGRP : 비교적 확장성이 높으며, 대규모 네트워크에서도 사용 가능하지만 OSPF보다는 제한적이다.
OSPF : 대규모 네트워크에서 높은 확장성을 가지고 있으며, 복잡한 네트워크 구조에 적합하다.
BGP : 대규모 인터넷 라우팅에 사용되며, 인터넷의 확장성과 라우팅 테이블 크기를 처리하는 데 용이함
RIP : 작고 단순한 네트워크에 적합하며, 대규모 네트워크에는 적절하지 않다.
IS-IS : OSPF와 유사한 확장성을 가지며, 대규모 ISP와 통신 사업자 네트워크에서 널리 사용된다.

경로 정보 교환
EIGRP, OSPF, IS-IS : Link-State 프로토콜로서 네트워크의 상태 정보를 주기적으로 교환
BGP : Path Vector 프로토콜로서 BGP 라우터는 경로 정보를 주로 BGP Update 메시지를 사용하여 교환

메트릭
EIGRP : 대역폭, 지연, 신뢰성, 부하 등 다양한 요소들을 고려한 자가요구 메트릭을 사용
OSPF : 비용(cost)를 사용하여 경로를 선택하는데, 기본적으로 링크 대역폭을 기준으로 계산
BGP : AS-PATH 길이, 미터링 등의 메트릭을 사용하여 경로 선택
RIP : 홉 수(Hop count)를 메트릭으로 사용
IS-IS : OSPF와 유사하게 비용(cost)를 사용하여 경로를 선택

 

보안설정

실습환경인 패킷 트레이서에선 작동이 안되기 때문에 GNS3에서 간단하게 실습

 

1. 라우팅 정보 인증

R1에 키설정
R2에 키설정

 

패킷분석시 평문으로 패스워드가 보임

1.2 암호화

만약 한쪽만 해줄경우 멀티캐스트로 보내는 패킷(소스IP가 Router본인)만 암호화가 된다.

패킷분석시 MD5로 암호화 된 모습

2. 라우팅 정보 차단

R1(config)#ip prefix-list RIP_PREFIX deny 0.0.0.0/0 le 32
R1(config)#router rip
R1(config-router)#distribute-list prefix RIP_PREFIX in g0/0
R1(config-router)#distribute-list prefix RIP_PREFIX out g0/0
R2(config)#ip prefix-list RIP_PREFIX deny 0.0.0.0/0 le 32
R2(config)#router rip
R2(config-router)#distribute-list prefix RIP_PREFIX in g0/0
R2(config-router)#distribute-list prefix RIP_PREFIX out g0/0

 

'Network > Protocol' 카테고리의 다른 글

Network Protocol (0) - EIGRP  (0) 2023.07.16