본문 바로가기

네트워크

[네트워크] 19. VLSM, IGRP

이 게시물은 후니의 쉽게 쓴 CISCO 네트워킹 4판을 공부한 내용을 바탕으로 작성됨.


VLSM (Variable Length Subnet Mask)

 

 

중요한 개념이지만 여기서는 간략하게 기초만 보고 넘어간다. VLSM은 라우터의 각 인터페이스 별로 (즉, 포트 별로) subnet mask가 제각각으로 다른 경우를 말한다. 즉 한 라우터에 서로 다른 subnet mask가 존재하는 것을 VLSM이라고 한다.

 

예전에 인터넷을 사용하기 전에는 비공인 IP주소를 주로 사용했기 때문에 IP주소가 전혀 모자라지 않았다. 하지만 인터넷이 대중화되면서 IP 주소가 점점 모자라졌고, 그에 따라 subnet mask의 중요성이 대두되었다. 그래서 ethernet쪽 subnet mask와 Serial쪽 subnet mask를 서로 다르게 설정하기 시작했고, 그에 따라 하나의 라우터에 여러 길이의 subnet mask를 사용하게 되었다. VLSM을 이용하면 IP 주소를 효율적으로 사용할 수 있다는 장점이 있다.

 

RIP나 IGRP는 VLSM을 지원하지 않는데, 이들은 인터넷 시대 이전에 개발된 프로토콜이라 그런 것 같다. 이들은 애초에 network 주소를 입력해줄 때 부터 subnet mask를 입력하지 않기 때문에 당연히 VLSM이 불가능하다.

 

따라서 라우터에 VLSM을 설정하기 위해서는 RIP, IGRP는 사용이 불가능하고 static이나 EIGRP, OSPF와 같은 라우팅 프로토콜을 사용해야 한다.

 

 

 

 

 

 


IGRP (Interior Gateway Routing Protocol)

 

 

RIP는 최대 hop count가 15라는 한계점, 그리고 가장 좋은 경로를 찾는 방식이 hop count라는 점 자체가 치명적인 단점이었다. (동시에 간단하다는 장점이 되기는 하지만) 그리하여 IGRP가 개발되었다.

 

IGRP의 간단한 특성을 살펴보면 다음과 같다.

 

  • 라우팅 프로토콜. 경로를 찾아주는 운전사이다.
  • Dynamic 프로토콜이다.
  • 내부용 라우팅 프로토콜 IGP이다.
  • Distance Vector 라우팅 알고리즘이다.
  • IGRP는 시스코에서 개발한 프로토콜으로 표준 프로토콜이 아니다. ➜ RIP와는 달리 시스코 라우터에서만 사용 가능하다.
  • BW, Delay, Reliability, Load, MTU 총 5가지 요인을 고려하여 최적 경로를 찾는다. ➜ 홉 카운트만 사용하는 RIP보다 똑똑함.
  • 90초에 한 번씩 라우팅 테이블 업데이트가 발생한다. 
  • RIP에서 최대 홉 카운트가 15였던 약점을 해소하였다. ➜ 홉 카운트가 255인 대규모 네트워크도 사용 가능하다.

 

 

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int Serial 0/3/0
Router(config-if)#bandwidth 56

 

BW를 설정은 위처럼 간단하게 수행되는데, 이때 숫자의 단위는 Kbits이다. BW 디폴트 값은 1.544Mbps이다.

 

 

Router#show interface Serial 0/3/0
Serial0/3/0 is up, line protocol is up (connected)
  Hardware is HD64570
  Internet address is 203.230.10.1/24
  MTU 1500 bytes, BW 56 Kbit, DLY 20000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation HDLC, loopback not set, keepalive set (10 sec)

 

설정을 마친 후 해당 interface의 정보를 출력해보면 BW 56Kbit를 볼 수 있다.

 

 

 

 

Delay ⇨ 해당 경로를 통해서 목적지에 도착하는 데 까지 걸리는 시간. 단위는 마이크로초.

 

Reliability ⇨ 회선을 통해 패킷을 전송했을 때 생기는 error rate를 의미한다. (Reliability = Error rate = 잘 도착한 패킷/보낸 패킷 x 100). Keepalive라는 것을 통해 경로의 신뢰도를 측정하며 [0, 255] 범위의 정수로 표현된다. 값이 클수록 신뢰도가 큰 것.

 

Load ⇨ 부하, 하중. 출발지와 목적지 사이 경로에 어느 정도의 부하가 걸리고 있는지를 의미한다. 기본 단위는 k/255으로, 1/255이면 부하가 적은 것이고, 255/255이면 부하가 큰 것이다.

 

MTU ⇨ Maximum Transmission Unit. 경로의 최대 전송 유닛의 크기를 의미하며 단위는 Byte이다.

 

 

 

 

홉 카운트만을 고려하여 최적경로를 설정하는 RIP와 달리, IGRP는 위 5가지 요소를 복합적으로 고려하기 때문에 더 지능적으로 최적 경로를 찾아낼 수 있다는 장점이 있다. (홉 카운트는 많지만 BW가 훨씬 빠른 경로를 선택할 것이다.)

 

 

하지만 RIP와 동일하게 subnet을 입력하지 않아서 150.140.100.0 (255.255.255.0)를 입력하면 150.140.0.0으로 인식한다. 애초에 subnet mask를 입력받지 않으므로 서브네팅된 네트워크들을 입력할 때 subnet 되었다는 것을 알려줄 수 없다. 이러한 이유로 한 장비의 여러 interface에 서로 다른 subnet mask를 지원하는 VLSM을 지원할 수 없다는 단점이 있다.

 

➜ 이 단점 때문에 요즘날 많이 사용되지 않는다.

 


 

IGRP 실습

 

이제 IGRP를 이용한 실습을 진행해보자.

 

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router ?
  bgp    Border Gateway Protocol (BGP)
  eigrp  Enhanced Interior Gateway Routing Protocol (EIGRP)
  ospf   Open Shortest Path First (OSPF)
  rip    Routing Information Protocol (RIP)

 

Cisco 2901 라우터 기준으로 사용 가능한 라우팅 프로토콜을 출력한 모습이다. IGRP 대신 그 상위버전인 EIGRP (Enhanced IGRP)가 사용 가능하다.

 

 

 

Router(config)#router eigrp [system number]
Router(config-router)#network [network IP address]

 

윗줄의 system number는 AS 번호를 의미한다. (동일한 system number 갖는 라우터들은 서로 같은 AS에 속한다.)

만약 Ethernet interface에 150.140.100.1 / 255.255.255.0의 IP 주소를 할당한 경우라면 이때 네트워크 부분은 150.140.100.0이므로 이를 아랫줄의 [network IP address]에 입력하면 된다.

 

 

 

Router#sh run

...

router eigrp 100
 network 150.140.0.0

 

설정 후 show run을 명령하면 eigrp에 설정한 AS 번호와 network IP address를 확인할 수 있다.

 

 

 

 

 

 

다음과 같은 네트워크를 구성하고 EIGRP를 설정해보도록 한다.

 

 

EIGRP 실습 1

 

 

 

라우터 AA 설정 과정

Router(config)#hostname A

A(config)#interface GigabitEthernet 0/0
A(config-if)#ip address 203.240.100.1 255.255.255.0
A(config-if)#no shut

A(config)#interface Serial 0/3/0
A(config-if)#ip address 203.240.150.1 255.255.255.0
A(config-if)#clock rate 2000000
A(config-if)#no shut

A(config)#router eigrp 200
A(config-router)#network 203.240.100.0
A(config-router)#network 203.240.150.0

 

AS번호를 200으로 알잘딱 설정하였다. router A와 연결된 네트워크들을 router network에 입력해주었다.

 

 

 

 

 

라우터 BB 설정 과정

Router(config)#hostname B

B(config)#interface GigabitEthernet 0/0
B(config-if)#ip address 203.240.200.1 255.255.255.0
B(config-if)#no shut

B(config)#interface Serial 0/3/0
B(config-if)#ip address 203.240.150.2 255.255.255.0
B(config-if)#no shut

B(config)#router eigrp 200
B(config-router)#network 203.240.200.0
B(config-router)#network 203.240.150.0

 

A에서 AS번호를 200으로 입력했으므로 B에서도 AS번호를 200으로 동일하게 맞춰주어야 한다. (AS번호가 서로 같지 않으면 통신에 문제가 발생한다. AS가 서로 달라도 통신이 가능한 방법이 있긴 하지만 일단 잘 맞춰주도록 한다.)

 

⇨ EIGRP는 AS 내부에서 라우터 경로를 찾는 프로토콜이므로, 서로 AS 번호가 같은 라우터 간에 사용이 가능하다.

⇨ AS 번호가 서로 다르다면 이것들은 서로 다른 AS에 속한 라우터이므로, AS 외부 라우팅 프로토콜을 사용해야 한다.

 

 

 

 

A#show ip protocols 

Routing Protocol is "eigrp  200 " 
  Outgoing update filter list for all interfaces is not set 
  Incoming update filter list for all interfaces is not set 
  Default networks flagged in outgoing updates  
  Default networks accepted from incoming updates 
  Redistributing: eigrp 200
  EIGRP-IPv4 Protocol for AS(200)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
    NSF-aware route hold timer is 240
    Router-ID: 203.240.100.1
    Topology : 0 (base)
      Active Timer: 3 min
      Distance: internal 90 external 170
      Maximum path: 4
      Maximum hopcount 100
      Maximum metric variance 1

  Automatic Summarization: disabled
  Automatic address summarization: 
  Maximum path: 4
  Routing for Networks:  
     203.240.100.0
     203.240.150.0
  Routing Information Sources:  
    Gateway         Distance      Last Update 
    203.240.150.2   90            685493     
  Distance: internal 90 external 170

 

show ip protocols를 이용하여 현재 사용중인 라우팅 프로토콜의 정보를 확인했다. EIGRP를 사용중이며 AS는 200으로 설정되어있다. 더불어 지정해준 network의 IP address도 확인 가능하다. 

 

RIP 게시글에서 위와 똑같은 네트워크를 구성했을 때 distance가 120로 도출되었는데, 위에서 볼 수 있듯이 EIGRP는 distance가 90이다. 따라서 EIGRP와 RIP를 둘 다 사용하면 같은 경로에 대하여 distance가 짧은 EIGRP가 선택된다.

 

 

 

 

 

A#sh ip route
Codes: L - local, C - connected, S - static, 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

     203.240.100.0/24 is variably subnetted, 2 subnets, 2 masks
C       203.240.100.0/24 is directly connected, GigabitEthernet0/0
L       203.240.100.1/32 is directly connected, GigabitEthernet0/0
     203.240.150.0/24 is variably subnetted, 2 subnets, 2 masks
C       203.240.150.0/24 is directly connected, Serial0/3/0
L       203.240.150.1/32 is directly connected, Serial0/3/0
D    203.240.200.0/24 [90/2172416] via 203.240.150.2, 00:07:16, Serial0/3/0

 

맨 아랫줄 D 203.240.200.0/24 [90/2172416] via 203.240.150.2, 00:07:16, Serial0/3/0가 라우터 A의 EIGRP가 얻어낸 라우팅 정보이다. 라우터 A와 연결된 상대방 interface의 IP 203.240.150.2를 이용하여 그 다음 홉에 존재하는 네트워크 203.240.200.0이라는 네트워크 찾아낸 것이다. [90/2172416]에서 90은 해당 경로에 대한 distance, 두 번째 숫자는 매트릭스 값이다.

 

 

 

 

 

 


 

EIGRP 실습 2

 

 

 

(Interface IP 잡아주는 과정은 생략)

 

라우터 A, B, C EIGRP 설정

A(config)#router eigrp 200
A(config-router)#network 203.210.100.0
A(config-router)#network 203.210.200.0
A(config-router)#network 210.240.10.0


B(config)#router eigrp 200
B(config-router)#network 172.70.0.0
B(config-router)#network 203.210.100.0


C(config)#router eigrp 200
C(config-router)#network 150.150.0.0
C(config-router)#network 203.210.200.0

 

 

 

 

 

router C의 라우팅 테이블

C#sh ip route
Codes: L - local, C - connected, S - static, 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

     150.150.0.0/16 is variably subnetted, 2 subnets, 2 masks
C       150.150.0.0/16 is directly connected, GigabitEthernet0/0
L       150.150.1.1/32 is directly connected, GigabitEthernet0/0
     172.70.0.0/24 is subnetted, 1 subnets
D       172.70.100.0/24 [90/2684416] via 203.210.200.1, 00:02:29, Serial0/3/0
D    203.210.100.0/24 [90/2681856] via 203.210.200.1, 00:03:10, Serial0/3/0
     203.210.200.0/24 is variably subnetted, 2 subnets, 2 masks
C       203.210.200.0/24 is directly connected, Serial0/3/0
L       203.210.200.2/32 is directly connected, Serial0/3/0
D    210.240.10.0/24 [90/2172416] via 203.210.200.1, 00:02:56, Serial0/3/0

 

 

뒤에 괄호 붙은 것들이 EIGRP로 찾아낸 경로들이다. EIGRP는 RIP의 명령어와 다른점이 거의 없다. AS 번호를 입력하는 것만 다르다. EIGRP를 이용하여 경로를 이어주고 싶은 라우터들에 대하여 서로 같은 AS 번호를 입력해주면 된다.

 

Router C의 라우팅 테이블에 172.70.100.0 (B의 PC 주소)가 있으므로, C는 B까지의 경로를 찾아냈으며 통신이 가능하다. 이제 Router C ➜ B 방향으로 ping을 쏴보자.

 

 

 

C#ping
Protocol [ip]: 
Target IP address: 172.70.100.1
Repeat count [5]: 
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: y
Source address or interface: 150.150.1.1
Type of service [0]: 
Set DF bit in IP header? [no]: 
Validate reply data? [no]: 
Data pattern [0xABCD]: 
Loose, Strict, Record, Timestamp, Verbose[none]: 
Sweep range of sizes [n]: 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.70.100.1, timeout is 2 seconds:
Packet sent with a source address of 150.150.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/14 ms

 

 

결과는 대성공. 간단한 네트워크를 구성했고, 네트워크 간 라우팅을 EIGRP로 수행해보았다.