< Routing Protocol >

9. 라우팅

9.1. 라우팅의 기능

 : 라우터에서 수신한 패킷을 목적지 네트워크로 전송하기 위한 최적의 경로를 설정

 : 목적지로 전송하기 위해 라우터가 수행하는 절차


 - 정적 라우팅(Static Routing)

  : 네트워크 관리자가 경로를 미리 정해 놓는 방법

 - 동적 라우팅(Dynamic Routing)

  : Routing Protocol을 이용하여 네트워크 토폴로지나 트래픽의 변화에 따라 동적으로 경로를 계산


 - 라우팅의 과정

  : 라우터의 인터페이스에 패킷 도착

  : 라우터의 메모리 버퍼에 수신 패킷의 저장

  : 라우팅 테이블에서 3계층 프레임의 목적지 주소 찾기

  : 일치하는 엔트리가 있다면 수신 패킷을 엔트리가 알려주는 exit 인터페이스로 보냄


9.2 Static 라우팅

 : 네트워크 관리자는 전체 네트워크에 대한 정보를 정확하게 알고 있어야 한다.

 : 네트워크 토폴로지가 변경되면 기존의 라우팅 정보를 모두 변경하여야 한다.

 : 라우팅 테이블 유지하는데 상당 시간을 소모 해야 한다.


 

Static 라우팅 장점

Static 라우팅 단점

프로세서 오버헤드가 낮다

라우터가 최적의 경로를 계산할 필요 없다

유지 보수가 어렵다

관리자가 네트워크의 모든 라우터의 라우팅 테이블을 직접 구성해야 한다

대역폭의 이용률이 낮다

라우터는 고정된 경로만을 사용함으로 라우팅 테이블을 수정하기 하여 업데이트 메시지 교환을 하지 않는다.

안전하다

라우터가 자신의 정보를 믿을 없는 라우터에게 전달하지 않음으로 공격에 노출될 염려가 낮다

적응력이 낮다

링크의 상태가 변경되어도 경로를 변경하기가 쉽지 않다.

예측 가능하다

관리자가 패킷이 어느 경로를 이용하여 전달될지를 있다.


9.2.1 Static 라우팅 구성 (실습)

 - ip route [Destination_Network_Address] [Subnet_Mask] [Next_hop_Address | Exit I/F] [Administrative Distance]

  : 라우터에 정적 경로를 추가하기 위한 명령어



 - 첫 번째와 두 번째 파라미터는 목적지 네트워크 주소와 그에 따른 서브넷 마스크이다.

 - 세 번째 파라미터는 Next_Hop_Address 방식으로 정적 경로 추가하기

  * Next_hop

  : 목적지까지 가기 위한 바로 다음의 라우터 또는 경로

  : RouterA(config)# ip route 168.90.20.0 255.255.255.0 168.90.40.2

  : RouterA(config)# ip route 168.90.30.0 255.255.255.0 168.90.40.2

  : RouterA(config)# ip route 168.90.50.0 255.255.255.0 168.90.40.2


  : RouterB(config)# ip route 168.90.10.0 255.255.255.0 168.90.40.1

  : RouterB(config)# ip route 168.90.50.0 255.255.255.0 168.90.50.2


  : RouterC(config)# ip route 168.90.10.0 255.255.255.0 168.90.50.1

  : RouterC(config)# ip route 168.90.20.0 255.255.255.0 168.90.50.1

  : RouterC(config)# ip route 168.90.40.0 255.255.255.0 168.90.50.1


 - 세 번쨰 파라미터로 Exit 인터페이스를 입력하는 또 다른 방법

  * Exit Interface 

  : RouterA(config)# ip route 168.90.20.0 255.255.255.0 s0/0

  : RouterA(config)# ip route 168.90.30.0 255.255.255.0 s0/0

  : RouterA(config)# ip route 168.90.50.0 255.255.255.0 s0/0


  : RouterB(config)# ip route 168.90.10.0 255.255.255.0 s0/1

  : RouterB(config)# ip route 168.90.50.0 255.255.255.0 s0/0


  : RouterC(config)# ip route 168.90.10.0 255.255.255.0 s0/0

  : RouterC(config)# ip route 168.90.20.0 255.255.255.0 s0/0

  : RouterC(config)# ip route 168.90.40.0 255.255.255.0 s0/0


 - 네 번째 파라미터 Administrative Distance 적용하기

  : 이 값을 입력하지 않을 경우 기본값을 사용

  : Next_Hop_Address를 사용할 경우의 기본 값은 1

  : Exit 인터페이스를 사용할 경우의 기본 값은 0

  : 이 값 보다 큰 값을 사용하기 위해서 0 ~ 255 사이의 값을 입력하면 된다.


9.2.2. Static 라우팅의 검증

 - show running-config / show ip route

  : Static 라우팅 정보가 올바로 입력되었는지를 알기 위함


9.2.3. Default 라우팅 구성

 - Router(config)# ip route 0.0.0.0 0.0.0.0 [Next-hop-Address | Exit I/F]

  : 라우팅은 라우팅 테이블에 있는 어떤경로라도 일치하는 것이 없을 때 사용


 - Next_hop_Address 방식을 이용한 Default 라우팅

  : RouterC(config)# ip route 0.0.0.0 0.0.0.0 168.90.50.1


 - Exit Interface 방식을 이용한 Default 라우팅

  : RouterC(config)# ip route 0.0.0.0 0.0.0.0 s0/1


 - Default 라우팅

  : RouterC(config)# ip default-network 168.90.50.0


9.3. Dynamic Routing

 : 라우팅 프로토콜을 이용하여 동적으로 라우팅 테이블을 만든다.

 : 라우팅 테이블은 원격 네트워크에 대한 정보를 갖고 있는 이웃 라우터들과 통신하여 라우팅 테이블을 완성한다.


Dynamic 라우팅의 장점

Dynamic 라우팅의 단점

적응력이 높다

라우터는 링크가 다운되었거나 새로 발견한 경로가 있는 경우 다른 라우터에게 알려줄 있다.

프로세서 오버헤드가 높다

Dynamic 라우팅 절차를 수행하기 위해 CPU 메모리의 사용이 필요하다.

유지 보수가 쉽다

라우팅 프로토콜의 파라미터만 정확하게 설정하였다면 이후의 네트워크 관리자의 개입은 필요 없다.

대역폭의 이용률이 높다

라우터는 라우팅 테이블을 수정하기 위해 업데이트 메시지를 교환하기 위해 대역폭을 사용한다.


 - 라우팅 프로토콜의 종류

  : RIP(Routing Information Protocol)

  : IGRP(Interior Gateway Routing Protocol)

  : EIGRP(Enganced Interior Gateway Routing Protocol)

  : OSPF(Open Shortest Path First)

  : BGP(Border Gateway Protocol)


 - 라우터의 기능

  : 라우팅 프로토콜을 이용하여 라우팅 테이블을 구축(경로 설정)

  : IP 또는 IPX(Internet Packet Exchange)와 같은 프로토콜(Routed Protocol)을 사용하여 패킷을 목적지 네트워크로 전송(스위칭 기능) 


9.3.1. Dynamic 라우팅 기본 용어

 - Autonomous System

  : 동일한 라우팅 전략을 사용하여 단일한 관리 체계하에 속하는 네트워크의 집합을 말한다.

  : 전세계를 연결하는 인터넷을 Autonomous System이라는 단위로 나누어 관리하는 것

  : 각 Autonomous System을 구분하기 위하여 16비트의 유일한 번호를 Autonomous System에게 부여한다.

  : 라우팅 프로토콜을 설정할 때 IGRP나 OSPF 같은 이 번호를 필요로 하는 프로토콜이 있다.


IGP(Interior Gateway Protocol)

EGP(Exterior Gateway Protocol)

RIP, IGRP, OSPF, EIGRP

BGP


 - Administrative Distance

  : 경로에 대한 신뢰 정도

  : 라우팅 프로토콜은 서로 다른 Administrative Distance 값을 가지고 있다.

  : 목적지로의 여러 경로 중에 가장 낮은 Administrative Distance를 갖고 있다면 이 경로가 라우팅 테이블에 존재하게 된다.

  : 만약에 더 낮은 Administrative Distance를 갖는 경로가 나타나면 라우팅 테이블에서 사라지게 된다.


프로토콜

Default Administrative Distance

Connected 또는 Static 경로 설정 outgoing 인터페이스로 설정한 경우

0

Static

1

EIGRP summary route

5

External BGP

20

EIGRP(internal)

90

IGRP

100

OSPF

110

IS

115

RIP

120

EIGRP

170

Internal BGP

200


 - Metric

  : 라우팅 프로토콜은 목적지로의 최적의 경로를 찾기 위해 Metric을 사용한다.

  : Metric은 어떤 경로가 좋은지 나쁜지를 결정하는 값을 말한다.

  : 라우팅 프로토콜은 같은 목적지로 가는 경로 중에서 Metric 값이 가장 작은 경로를 최적의 경로로 선택하게 된다.

  : Metric으로 사용하는 요인이 많으면 네트워크의 상황에 동적으로 대처하여 항상 최적의 경로를 제공하는 장점이 있다.


Metric

설명

Hop Count

목적지까지 도달하는 거쳐가는 라우터의 ,

작을수록 최적의 경로

대역폭

링크의 속도, 빠를수록 최적의 경로

Delay

패킷이 링크를 지나는데 걸리는 시간, 짧을수록 최적의 경로 

Load

링크상에 지나가는 패킷의 , Cisco 라우터에서는 1부터 255사이의 값으로 표현하며 1 load 가장 작음을 의미하며 255 load 가장 높음을 의미

Reliability

링크상의 에러율, Cisco 라우터에서는 1부터 255사이의 값으로 표현하며 1 가장 낮은 reliability 의미하고 255 값이 가장 높은 reliability 의미

Ticks Delay

IPX RIP에서 사용되며 링크를 통해 패킷을 전송할 1/18 기간의 수로서 표현, 낮을수록 최적 경로

MTU(Maximum Transfer Unit)

링크상에서 허용하는 가장 패킷의 크기, 높을수록 최적의 경로

Cost

관리자에 의해 부과되는 Metric, 낮을수록 최적의 경로


 - IP Classless 명령어

  : Classful과 Classless는 IP 클래스와 마스크의 범위에 관한 용어이다.

  : Classful 이란 네트워크의 경계를 나타내는 마스크가 해당 클래스를 벗어나지 않는 다는 것을 의미한다.

  : 클래스 A, B, C의 마스크는 /8, /16, /24의 고정적인 크기를 갖는다는 것을 의미한다.

  : 따라서, 따로 마스크를 부여할 필요가 없다.

  

  : 반면, Classless는 마스크를 자유로운 크기로 사용할 수 있어서 서브넷이나 슈퍼넷이 자유롭다.

  : Router(config)# ip classless

  

  : IP classless를 지원하는 프로토콜

  : RIPv2, OSPF, EIGRP


  : IP classless를 지원하지 않는 프로토콜

  : RIPv1, IGRP 프로토콜은 이웃 라우터에게 라우팅 정보를 줄 때 마스크 정보를 전달하지 못한다.


 - Convergence Time

  : 네트워크의 변경 정보를 라우팅 테이블에 반영하며 라우팅 테이블을 안정시키는데 걸리는 시간


9.3.2. 라우팅 프로토콜의 클래스

 - Distance Vector 라우팅 프로토콜

  : 라우팅 테이블을 이웃 라우터와 주기적으로 교환하여 원격 네트워크까지의 Distance(거리)를 기준으로 최적의 경로를 찾아낸다.

  : 여기서 Distance는 라우터를 통과하는 횟수, 즉 Hop Count를 주로 사용하며 제일 작은 Distance를 갖는 경로가 최적이 된다.

  : vector는 원격 네트워크로의 방향을 말한다.


 - Link State 라우팅 프로토콜

  : 네트워크 전체 토폴로지에 대한 데이터베이스를 모든 라우터가 갖고 있으며 변경된 네트워크 상황에 대해서만 이웃 라우터에 알린다.

  : 링크의 상태에 대한 정보를 기준으로 최소의 비용을 갖는 경로를 최적의 경로로 설정한다.


 - Hybrid 라우팅 프로토콜

  : Distance Vector 라우팅 프로토콜과 Link State 라우팅 프로토콜의 단점을 극복하고 장점을 모아 만든 라우팅 프로토콜이다.


Distance Vector 라우팅 프로토콜

Link State 라우팅 프로토콜

RIP, IGRP

OSPF

Hybrid 라우팅 프로토콜

EIGRP


9.4. Distance Vector 라우팅 프로토콜



9.4.1. 라우팅 루프

 1) 네트워크 X가 down되면 라우터 E는 이 사실을 라우터 D에게 알린다.

    라우터 D는 네트워크 X로 가는 패킷 전송을 중단한다.

    그러나 라우터 A, B, C는 아직 상황을 모른다.

 2) 라우터 D가 다음 업데이트를 보낼 때 라우터 B, C는 이 사실을 알고 네트워크 X로 패킷 전송을 중단한다.

     그러나 라우터 A는 아직 이 사실을 모르고 라우터 B를 통해 네트워크 X로 패킷을 전송한다.

 3) 라우터 A가 다음 업데이트를 라우터 C에게 전송

    라우터 C는 라우터 A가 네트워크 X로 가는 경로를 알고있음을 알고 

    네트워크 X로의 Distance 4로 라우팅 테이블을 수정한다.

 4) 라우터 C가 다음 업데이트 때 이 사실을 라우터 D에게 전송

    라우터 D 역시 라우팅 테이블을 수정

    이러한 업데이트는 라우터 D에서 라우터 B와 E에게 전송된다.

    이렇게 되면 라우터 A에서 네트워크 X로 가는 패킷을 전송 시

    이 패킷은 라우터 B, D, C를 거쳐 다시 라우터 A로 다시 오게 된다.


9.4.2. 라우팅 루프 방지

 : 라우팅 루프를 막기 위해 Distance Vector 라우팅 프로토콜이 지원하는 기능이 있다.

 - 최대 Hop Count

  : 최대 Hop count를 15까지로 허용하여 Hop count가 16이 되면 infinity로 간주하도록 한다.

  : 16이 되는 패킷을 받은 라우터는 도달 불능으로 판단하고 이 패킷을 버린다.

  : 최대 Hop count를 정함으로 인하여 패킷이 네트워크에서 무한히 도는 것을 막을 수 있다.

  : 하지만 루프 발생 자체를 막을 수 없다.


 - Split Horizon

  : 자신에게 정보를 준 라우터로 자신이 받은 정보를 또 다시 전달하지 않는 것이다.

  : 라우터 D가 라우터 B, C에게 네트워크 X가 down되었음을 알렸을 때 

  : 라우터 A가 라우터 C에게 라우터 B를 통하면 네트워크 X로 갈 수 있다고 알린 후 

  : 라우터 C가 이 사실을 라우터 D에게 알림으로 인하여 발생한다.

  : 따라서 Split Horizon은 라우터 B, C가 라우터 D로부터 네트워크 X가 down됨을 알았더라면 

  : 라우터 A로부터 받은 네트워크 X와 관련된 업데이트는 라우터 D로 전송하지 않도록 한다.


 - Route Poisoning과 Poison Reverse

  : 라우터의 인터페이스에 직접 연결된 네트워크가 down되면 라우터는 자신의 라우팅 테이블에 해당 네트워크로의 Distance를 infinity 즉, 16으로 표기한다. 이를 Route Poisoning 이라 한다.

  : Route Poisoning이 표시된 네트워크를 포함하는 라우팅 테이블을 받은 라우터는 해당 네트워크가 down되었음을 자신의 라우팅 테이블에 표시하고 이를 이웃 라우터에게 전달한다. 또한 infinity 네트워크에 대한 정보를 준 라우터에게 확인 메시지를 보내는데 이를 Poison reverse라고 한다.



 - Holddown Timer

  : 네트워크가 down되었다는 정보가 전체 네트워크에 전파되는 동안 잘못된 업데이트를 일정시간 동안 무시하고 대기하는 시간을 말한다.

  : 라우팅 테이블 내에 있는 네트워크가 down되었을 때, 앞서 설명한 방법들과 함께 라우팅 루프를 방지하는데 사용된다.

  : 라우터가 이웃 라투어로부터 특정 네트워크가 down되었다는 업데이트를 받으면 라우터는 이 네트워크를 Route Poisoning하고 hold-down timer를 시작한다.

  : [새로운 Metric == 원래 알고 있던 Metric] 이 타이머가 만료되기 전에 같은 라우터로부터 다시 네트워크가 도달가능하다는 메시지를 받으면 이를 적용하고 타이머를 해제한다.

  : [새로운 Metric < 원래 알고 있던 Metric] 타이머 만료전에 라우터가 다른 이웃 라우터로부터 원래 알고 있던 Metric보다 더 좋은 Metric의 경로를 알려주면 이를 라우팅 테이블에 적용하고 있던 타이머를 해제한다.

  : [새로운 Metric > 원래 알고 있던 Metric] 타이머가 만료되기 전에 라우터가 다른 이웃 라우터로부터 원래 알고 있던 Metric보다 나쁜 Metric의 경로를 알려주면 이는 무시한다.

  : Holddown Timer동안에는 알고 있던 Metric보다 높은 Metric을 갖는 경로는 무시된다.


 - Triggered Update

  : Link State 라우팅 프로토콜에서 사용하는 방식

  : 네트워크 내의 변경이 발생하면 즉시 업데이트를 이웃 라우터에게 전송하는 방식

  : Distance Vector 라우팅 프로토콜은 주기적으로 자신의 라우팅 테이블을 이웃 라우터에게 전송한다.

  : RIP의 경우 주기가 30이다.

  : 즉, 라우팅 업데이트가 일어나자 마자 발생한 네트워크의 down은 다음 업데이트까지 기다려야 한다는 의미이다.

  : 이로 인해 네트워크 down에 대한 정보의 전파가 늦어지고 루프가 발생할 가능성이 높아진다.


9.5. RIP(Routing Information Protocol)

 : Distance Vector 라우팅 프로토콜에서 가장 널리 알려진 라우팅 프로토콜이다.

 : Classful라우팅을 지원하는 RIPv1에서 Classless로 지원하는 RIPv2로 발전

 : 적용범위가 작은 네트워크라는 단점을 갖고 있다.

 : 라우팅 루프를 방지하기 위해 Metric으로 사용하는 Hop count를 최대 15로 정하여 사용한다.

 : Split horizon, Reverse poison, Holddown timer, Triggered update를 지원한다.


9.5.1. RIP 환경 설정

 - Router Mode 진입

  : Router(config)# router [routing protocol]

  : Router(config)# router rip

  : Router(config)# network [직접 연결된 네트워크 주소]

  : 직접 연결된 네트워크를 RIP에게 알려주어 RIP 업데이트를 전달할 라우터를 명시적으로 알게 한다.

 

  : RIP의 네트워크 명령은 네트워크 주소를 Classful로 선언하게 되어 있어서 서브넷 주소로 입력하였더라도 저장되는 값은 class 단위로 이루어진다.



9.5.2. RIP 라우팅 테이블

 - sh ip route

  : 라우팅 테이블의 확인



9.5.3. RIP 타이머

 - sh ip protocols 

  : 각 타이머의 종류와 expire 될 때까지의 시간이 표시된다.

 - Route Update Timer

  : RIP는 30초의 간격으로 라우팅 테이블을 모든 인접 라우터에게 전달한다.

  : 모든 이웃 라우터에게 업데이트를 전달 하면 Route Update Timer를 시작한다.

 - Route Invalid Timer

  : 라우팅 테이블에 경로가 처음 추가될 때와 같은 경로에 대한 업데이트가 도착할 때마다 전의 타이머를 종료하고 새로 시작한다.

  : Invalid Timer의 주기는 업데이트를 막기 위해 보통은 Update Timer 보다 길게 설정한다.

  : 이 기간 동안 라우팅 테이블에 있는 경로에 대한 Update Timer가 도착하지 않는다면 이 경로를 'Invalid'라고 판단하고 이를 주변 라우터에 알린다.

 - Router Flush Timer

  : 주기는 240초

  : Invalid Timer가 180초에 도달하여 완료되면 60초 후에 라우팅 테이블에서 업데이트에 도달하지 않는 경로를 삭제한다.

  : 따라서 Timer의 기본값을 변경하고자 할 때는 반드시 Invalid Timer보다 길게 설정해야 한다.

 - Holddown Timer

  : 주기는 240초

  : down과 up을 반복하는 경로가 있을 때, 즉시 이를 반응하면 네트워크에 혼란은 가중하게 되므로 Timer 기간 동안 라우팅 테이블의 Metric보다 더 높은 Metric을 갖는 경로에 대한 업데이트가 도착하면 Holddwon Timer는 이로 인한 라우팅 테이블의 변화를 막도록 한다.


9.5.4. RIP의 전파 방지

 - passive-interface

  : RIP 업데이트의 전파를 막기 위해 사용된다.

  : Router(config)# router rip

  : Router(config-router)# passive-interface s0/0

  : serial 0/0 인터페이스로는 업데이트 정보가 나가지 않지만 다른 라우터가 보내는 업데이트 정보는 받을 수 있다.


 - Unnumbered IP links

  : 

 - RIP의 문제 해결

  : show ip protocols

  : RIP의 타이머에 대한 정보

  : show ip rip database

  : show ip route 

  : 라우팅 테이블을 보여준다.

  : Debug ip rip

  : 라우터의 각 인터페이스를 통해 들어고고 나오는 RIP 업데이트에 대한 정보를 업데이트가 일어날 때마다 화면에 보여준다.

  : Debug ip rip events

  : RIP 업데이트를 이벤트 별로 묶어서 화면에 보여준다.

+ Recent posts