검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 네트워크
RIP은 현재 실존하는 라우팅 프로토콜 중 가장 간단한 프로토콜이라고 할 수 있습니다. 초기에 나온 버전1(이후 RIPv1)과 후에 기능을 보강한 버전2(이후 RIPv2)가 있는데 버전2는 클래스리스 라우팅 프로토콜이기 때문에 VLSM을 지원하여 더 유연한 설정이 가능합니다.

more..



more..


 

more..



more..



more..



more..



참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/09/01 17:43 2010/09/01 17:43
Posted
Filed under 네트워크
라우터의 목적은 패킷을 목적지까지 최고의 경로로 보내는 것입니다. 여기서 '최고'의 기준과 경로의 수집 방법은 라우터에서 사용할 라우팅 프로토콜에 의해 결정됩니다. 라우터는 자신이 사용하는 라우팅 프로토콜로 같은 라우팅 프로토콜을 사용하는 다른 라우터에게서 경로를 수집하며 이렇게 형성한 정보의 결과를 라우팅 테이블이라고 부릅니다.


라우팅 프로토콜의 분류

라우팅 프로토콜의 분류. EGP의 EGP는 더 이상 쓰이지 않는다.

  라우팅 프로토콜은 크게 IGP(Interior Gateway Protocol)와 EGP(Exterior Gate Protocol)로 나눌 수 있습니다. 이 두 개념을 다루기 이전에 먼저 AS(Autonomous System)라는 것을 알아야 합니다. AS는 하나의 집단을 이루는 관리 단위에 부여하는 번호로서 회사, 학교, 조직 등이 하나의 AS를 이룰 수 있는 예라고 할 수 있습니다. IP주소와 마찬가지로 AS도 ICANN(Internet Corporation for Assigned Network Number)이 관리를 총괄합니다. IGP는 하나의 AS 내에서 패킷이 가는 경로를 알려주는 역할을 하는 라우팅 프로토콜로서 RIP(버전1, 2 모두 포함), EIGRP(IGRP 포함), OSPF 등이 여기에 속합니다. 이와 달리 EGP는 서로 다른 AS끼리 경로를 교환하는 라우팅 프로토콜로서 같은 패킷이 한 AS를 2번 지나지 않게 하여 루프에 빠지는 것을 막기도 합니다. IGP에 해당하는 프로토콜의 수가 여럿인 것과 달리 EGP에 해당하는 프로토콜은 BGP(Border Gateway Protocol)가 유일합니다. 사실 BGP가 존재하기 전에 그 이전 버전 격인 EGP라는 프로토콜이 있었는데 지금은 완전히 BGP로 대체되었기 때문에 사용되지 않습니다.


주요 IGP 라우팅 프로토콜과 비교 사항 설명

주요 라우팅 프로토콜 요약

  위 표는 주요 IGP 라우팅 프로토콜에 대한 요약으로서 각 사항들에 대한 설명은 아래와 같습니다.

클래스리스, 라우팅 업데이트 시 서브넷 마스크 전송
  'O'는 해당 프로토콜이 클래스리스 라우팅 프로토콜임을 뜻하고 'X'는 클래스풀 라우팅 프로토콜임을 뜻합니다. 클래스리스 라우팅 프로토콜은 대상 서브넷이 어느 클래스에 속하는지를 생각하지 않으며 서브넷 마스크만으로 서브넷을 구분하므로 다른 라우터에 광고를 할 때도 서브넷 마스크를 함께 보내는 프로토콜입니다. 반대로 클래스풀 라우팅 프로토콜은 네트워크가 클래스풀 네트워크라고 가정하며 그러므로 IP만 보면 서브넷 마스크를 알 수 있으므로 다른 라우터에 광고를 할 때 서브넷 마스크를 보내지 않는 프로토콜입니다. 클래스리스 라우팅 프로토콜은 VLSM 지원, 라우팅 업데이트 시 서브넷 마스크 전송, 수동 경로 요약 지원 항목이 모두 'O'이고 반대로 클래스풀 라우팅 프로토콜은 모두 'X'입니다. 사실 이것 자체가 클래스리스와 클래스풀 라우팅 프로토콜을 구분하는 특징입니다.

VLSM 지원
  VLSM(Variable-Langth Subnet Mask)이란 하나의 클래스풀 네트워크 안에서 여러 서브넷 마스크를 사용할 수 있는 기능을 말합니다. 이와 반대로 하나의 클래스풀 네트워크 안에서 하나의 서브넷 마스크만 쓰는 것을 SLSM(Static-Length Subnet Mask)이라고 합니다. 여기서 중요한 것은 '동일한 클래스풀 네트워크 안에서'입니다. 그렇기 때문에 만약 라우팅 테이블에 '10.0.0.0 네트워크에 서브넷 마스크가 255.255.255.0'에 대한 경로와 '11.0.0.0 네트워크에 서브넷 마스크가 255.255.0.0'에 대한 경로가 있다고 하더라도 하나는 '10.0.0.0' 네트워크고 다른 하나는 '11.0.0.0' 네트워크이기 때문에 이는 VLSM과 무관합니다. 일단 VLSM의 실제 토폴로지 예와 그에 따라 형성되는 라우팅 테이블을 통해 보겠습니다.

VLSM을 사용한 예

  토폴로지를 보면 같은 192.168.0.0 네트워크 안에서 2개 이상의 서브넷이 존재하고 있는데 이런 기능을 바로 VLSM이라고 부릅니다. 이렇게 구성하고 VLSM을 지원 안 하는 라우팅 프로토콜인 RIPv1을 사용한 후 라우팅 테이블을 보겠습니다.
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     192.168.0.0/30 is subnetted, 2 subnets
C       192.168.0.0 is directly connected, Serial1/0
C       192.168.0.4 is directly connected, Serial1/1
  보시다시피 직접 연결된 192.168.0.0/30 서브넷만 있을 뿐 192.168.0.64/26과 192.168.0.128/26 서브넷은 테이블에 형성되어 있지 않습니다. 그럼 이번에는 VLSM을 지원하는 RIPv2 프로토콜을 사용한 후 라우팅 테이블을 보겠습니다.
Router#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     192.168.0.0/24 is variably subnetted, 4 subnets, 2 masks
C       192.168.0.0/30 is directly connected, Serial1/0
C       192.168.0.4/30 is directly connected, Serial1/1
R       192.168.0.64/26 [120/1] via 192.168.0.2, 00:00:13, Serial1/0
R       192.168.0.128/26 [120/1] via 192.168.0.6, 00:00:22, Serial1/1
  보시다시피 RIPv1을 사용할 때는 없었던 두 서브넷이 라우팅 테이블에 형성된 것을 볼 수 있습니다. VLSM을 두고 '서브네팅한 네트워크를 다시 서브네팅하는 것'이라고 정의하는 경우가 많은데 틀린 말은 아니지만 이것은 정의라기보다 용도에 더 가까우므로 '하나의 클래스풀 네트워크 안에서 여러 서브넷 마스크를 사용하는 것'이라고 알아두는 것이 좋을 것이라고 생각합니다.

수동 경로 요약 지원, 자동 경로 요약 지원
  주소의 앞부분이 동일한 여러 네트워크를 알고 있을 때 해당 네트워크들을 하나로 요약해서 광고하는 기능입니다. 예를 들어 만약 192.168.10.0/26, 192.168.10.64/26, 192.168.10.128/26, 192.168.10.192/26라는 4개의 네트워크와 직접 연결된 라우터가 있다고 합시다. 만약 이 라우터가 다른 라우터에게 저 4개의 네트워크를 광고한다면 4개의 네트워크를 각각 따로 광고할 필요가 있을까요? 4개의 네트워크 모두 192.168.10.0/24에 포함되는 네트워크입니다. 따라서 광고할 때 '나에게는 192.168.0.0/24 네트워크가 있다.'라고 광고한다면 광고를 받는 쪽에서는 4개의 경로 대신 1개의 경로만 라우팅 테이블에 기록할 것이고 그로 인해 라우팅 테이블이 간소화될 것입니다. 이런 기능을 경로 요약 지원이라고 하며 이것을 수동으로 관리자가 직접 설정할 수 있으면 수동 경로 요약을 지원하는 것이고 따로 관리자가 설정하지 않아도 작동하게 할 수 있으면 자동 경로 요약을 지원하는 겁니다.

거리 벡터, 링크 상태
  이 두 가지는 해당 라우팅 프로토콜이 최적의 경로를 결정할 때 무엇을 기준으로 삼는가를 나타냅니다. 거리 벡터(Distance Vector) 알고리즘을 사용하는 라우팅 프로토콜은 단순히 '목적지까지 얼마나 많은 라우터를 거쳐가나'를 기준으로 최적의 경로를 결정하며 인접한 라우터에게 자신의 라우팅 테이블을 넘겨줍니다. 알고리즘 자체가 간단하지만 루프 문제가 발생할 수 있다는 문제가 있습니다. 링크 상태(Link State) 알고리즘을 사용하는 라우팅 프로토콜은 서브넷과 서브넷의 상태를 데이터베이스화해서 보관하며 이를 이용하여 최상의 경로를 결정합니다. EIGRP의 경우 특이하게 이 두 가지 중 하나에 속하지 않는데 사실 거리 벡터를 기본으로 두 가지 특성을 모두 담고 있다고 볼 수 있어 '고급 거리 벡터 프로토콜'이라고도 부르며 시스코는 공식적으로 '밸런스트 하이브리드(Balanced Hybrid)'라는 이름을 주장하고 있습니다.

표준 여부
  해당 프로토콜이 표준에 속하는 프로토콜인가를 나타냅니다. 표에 있는 프로토콜 중 EIGRP를 제외한 모든 프로토콜이 표준 프로토콜입니다. EIGRP는 시스코 사가 자체 개발한 고유의 프로토콜로서 시스코 사의 제품에서만 사용할 수 있습니다.

멀티캐스트를 통한 라우팅 업데이트
  라우팅 업데이트 패킷을 보낼 때 멀티캐스트를 이용하여 보내는가를 나타냅니다. 멀티캐스트를 이용할 경우 업데이트를 보내고 싶은 대상에게만 보낼 수 있어 네트워크의 대역폭에 부담을 덜 주게 됩니다. 멀티캐스트를 이용하지 않는 프로토콜의 경우 브로드캐스트를 이용하여 업데이트를 보내는데 브로드캐스트는 같은 네트워크의 모든 호스트에게 전달되기 때문에 대역폭을 낭비하게 됩니다.

인증 지원
  광고를 주고 받을 라우터를 서로 인증하는 기능을 뜻합니다. 인증을 설정하지 않을 경우 공격자들이 라우팅 프로토콜의 허점을 악용하여 DoS 공격을 할 가능성이 있습니다. 예를 들어 공격자가 자신의 라우터를 네트워크에 연결시키고 특정 경로에 대한 메트릭을 낮게 만든 후 광고하여 어떤 목적지로 가려는 패킷을 모두 자신의 라우터로 모으는 행위를 할 수 있습니다. 인증 기능을 사용할 경우 인증된 라우터에 대해서만 라우팅 업데이트를 제공하기 때문에 이런 공격을 방어할 수 있습니다.

수렴 속도
  네트워크 토폴로지에 변화가 일어날 경우 라우팅 업데이트를 통해 이를 인식하고 최상의 경로를 다시 계산하여 라우팅 테이블에 반영하는 과정을 수렴(Convergence)라고 합니다. 수렴이 빠를수록 네트워크의 장애 복구 시간도 짧아지기 때문에 빠를수록 좋다고 할 수 있습니다.


라우터가 최고의 경로를 판단하는 기준

  동일한 라우팅 프로토콜에서 최고의 경로를 판단하는 기준이 되는 값을 메트릭(Metric)이라고 하며 값이 낮을수록 좋은 경로임을 의미합니다. 그런데 각 라우팅 프로토콜마다 메트릭 값을 구하는 방법도 다르고 값의 크기도 다릅니다. 예를 들어 RIP의 경우 메트릭 값을 구할 때 거쳐가는 라우터의 개수를 기준으로 삼으며 값의 크기도 1~2 자리 수 정도 밖에 되지 않지만 EIGRP의 경우 거쳐가는 회선의 대역폭과 지연 값 등을 참조하며 값도 RIP과 비교해 매우 높습니다. 즉, 라우팅 프로토콜마다 메트릭 값이 의미하는 바가 다릅니다. 그렇기 때문에 한 라우터에 여러 라우팅 프로토콜이 작동하고 있고 어떤 목적지까지 가는 경로를 각각의 라우팅 프로토콜마다 가지고 있을 경우 단순히 메트릭 값을 비교하는 것으로는 어느 프로토콜의 경로가 더 좋은 경로인지 알 수가 없습니다. 그래서 시스코 라우터에서는 각 프로토콜마다 일종의 우선 순위라고 할 수 있는 값을 정해두고 있는데 이것을 AD(Administrative Distance)라고 하며 이 값이 낮을수록 좋은 프로토콜임을 의미합니다. 그러므로 같은 목적지를 향하는 경로를 2개 이상의 프로토콜이 알고 있다면 AD 값이 가장 낮은 프로토콜의 경로가 라우팅 테이블에 적용됩니다. 아래는 각 라우팅 프로토콜의 AD 값입니다. '직접 연결된 곳'은 목적지가 라우터와 직접 연결된 곳을 말하며 '정적 경로'는 관리자가 수동으로 지정한 경로를 뜻하는 것으로 실제로 라우팅 프로토콜이 아니지만 AD 값을 가지고 있으므로 적었습니다.

시스코 IOS의 Administrative Distance

  라우팅과 관련하여 백업 정적 경로(Backup Static Route)라는 것이 있는데 이것은 정적 경로의 경우 AD를 원하는 값으로 설정할 수 있다는 것을 응용하는 기법입니다. 기본적으로 정적 경로의 AD 값은 어떤 라우팅 프로토콜보다도 낮습니다. 따라서 어떤 목적지에 대해 정적 경로가 설정되어 있다면 그 경로가 라우팅 테이블에 올라가 사용될 겁니다. 하지만 해당 정적 경로를 설정할 때 AD 값을 다른 프로토콜보다 높게 설정한다면 어떻게 될까요? 그 정적 경로는 동일한 목적지에 대한 다른 라우팅 프로토콜의 경로가 모두 사용 불가가 될 때 비로서 쓰일 겁니다. 이런 식으로 구성한 정적 경로를 백업 정적 경로라고 합니다.

  최고의 경로를 판단하는 또 다른 기준은 서브넷 마스크의 프리픽스 길이입니다. 만약 목적지가 10.100.1.2인 패킷을 받은 라우터의 라우팅 테이블에 10.100.0.0/16과 10.100.1.0/24가 있다면 라우터는 해당 패킷을 10.100.1.0/24가 가리키는 곳으로 패킷을 보냅니다. 이렇게 라우터는 패킷을 받으면 자신의 라우팅 테이블 보고 IP와 프리픽스를 비교하여 패킷의 목적지와 가장 일치하는 경로로 패킷을 보냅니다. 그런데 만약 아래와 같이 AD와 프리픽스가 서로 대결을 벌이는 상황이 오면 어떻게 될까요?

AD vs Prefix

C    192.168.0.0/24 is directly connected, Serial1/0
C    192.168.1.0/24 is directly connected, Serial1/1
R    192.168.2.0/24 [120/1] via 192.168.0.2, 00:00:18, Serial1/0
R    192.168.3.0/24 [120/1] via 192.168.1.2, 00:00:08, Serial1/1
     192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
S       192.168.4.0/24 [1/0] via 192.168.0.2
S       192.168.4.1/32 [100/0] via 192.168.1.2
  라우팅 테이블을 보면 Router3의 루프백 주소인 192.168.4.1과 관련된 정적 경로가 2개 있는 것을 볼 수 있습니다. 하나는 프리픽스가 24인 대신 AD 1이고 다른 하나는 프리픽스가 32로 패킷의 목적지 주소와 완벽히 일치하는 대신 AD가 100입니다. 여기서 192.168.4.1을 향해 패킷을 던지면 라우터는 AD가 더 낮은 192.168.0.2로 패킷을 보낼까요? 아니면 프리픽스가 더 많이 일치하는 192.168.1.2로 패킷을 보낼까요?
Router#traceroute 192.168.4.1
Type escape sequence to abort.
Tracing the route to 192.168.4.1

  1   192.168.1.2     32 msec   31 msec   31 msec  
  2   192.168.3.1     47 msec   62 msec   63 msec  
  이런 경우 라우터는 프리픽스가 더 일치하는 쪽을 더 좋은 경로로 판단합니다. 즉, AD보다 프리픽스의 우선 순위가 더 높습니다. 따라서 위의 결과에서 볼 수 있듯이 192.168.1.2로 패킷을 넘기게 됩니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/29 16:08 2010/08/29 16:08