본문 바로가기

Ryu's Tech

LAB 3 - EIGRP





■ Introduce EIGRP

  • CISCO에서 만든 프로토콜이다.
  • A Balanced Hybrid 프로토콜이다.
    • Distance-Vector : 인접한 라우터 들에게 업데이트를 광고한다.
    • Link-States : 테이블의 series를 사용한다.
  • link failure 에도 빠르게 converge 된다.
  • 8개의 load balance 제공한다.
  • VLSM 지원
  • RIPv2 처럼 멀티캐스트로 광고한다.
  • 다양한 라우팅 프로토콜을 지원한다. ( IP, IPX, AppleTalk)
  • DUAL 알고리즘 ( Looping을 방지 )
    • AD(Advertised Distance) : 이웃 라우터로부터 목적지 까지의 거지
    • RD(Reported Distance) : AD를 과거에는 RD라고 지칭했다고 합니다.
    • FD(Feasible Distance) : AD를 포함한 출발지에서 목적지까지의 Metric
    • Successor : 최적의 라우팅으로 목적지까지 가기 위한 next-hop router
    • Feasible Successor : Successor을 백업하는 목적지까지 가기 위한 next-hop router
    • Load balancing이 이루어지면 가장 작은 FD를 Successor로 선출한다.
    • Feasible Successor(후속경로) 선출 조건은 아래와 같다.
      • 최적경로의 FD보다 작은 AD를 가지고 있는 경로
      • 위의 조건에 만족했을 때 FD가 남아있는 경로중 FD가 가장 작아야한다.



■ EIGRP metric

EIGRP

  • metric = [K1 * bandwidth + ((K2 * bandwidth) / (256 - load)) + K3 * delay] * [K5 / (reliability + K4)]
  • Default Metric
    • K1 = 1
    • K2 = 0
    • K3 = 1
    • K4 = 0
    • K5 = 0
    • 즉, [bandwidth + delay]
    • Default EIGRP Metric = bandwidth + Delay
    • bandwidth = 10,000,000 / minimum bandwidth in kbps * 256
    • delay = sum of delays of all interfaces in path in ten of millisecons * 256
  • K value가 다르면 제대로 동작하지 않는다.

■ LAB 3 Topology



bandwidth가 추가되었다.



■ EIGRP configuration 구문



■ Configure EIGRP




###R1
R1(config)#router eigrp 1
R1(config-router)#network 1.1.1.1 0.0.0.0
R1(config-router)#network 192.168.1.1 0.0.0.3
R1(config-router)#network 172.16.1.0 0.0.0.3
R1(config-router)#network 172.16.2.0 0.0.0.3
R1(config-router)#

###R2
R2(config)#router eigrp 1
R2(config-router)#network 2.2.2.2 0.0.0.0
R2(config-router)#network 10.1.2.0 0.0.0.255
R2(config-router)#network 192.168.1.0 0.0.0.3
R2(config-router)#

###BB1
BB1(config)#router eigrp 1
BB1(config-router)#network 3.3.3.3 0.0.0.0
BB1(config-router)#network 10.1.1.0 0.0.0.3
BB1(config-router)#network 172.16.1.0 0.0.0.3
BB1(config-router)#


###BB2
BB2(config)#router eigrp 1
BB2(config-router)#network 4.4.4.4 0.0.0.0
BB2(config-router)#network 10.1.1.0 0.0.0.3
BB2(config-router)#network 172.16.2.0 0.0.0.3
BB2(config-router)#


이제 라우팅 설정은 끝났으니 아래의 라우팅 테이블을 봅시다.

###R1
R1#sh ip route
     1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       1.0.0.0/8 is a summary, 00:01:28, Null0
C       1.1.1.1/32 is directly connected, Loopback0
D    2.0.0.0/8 [90/156160] via 192.168.1.2, 00:00:58, FastEthernet0/0
D    3.0.0.0/8 [90/2297856] via 172.16.1.2, 00:00:37, Serial0/0.1
D    4.0.0.0/8 [90/2297856] via 172.16.2.2, 00:00:20, Serial0/0.2
D    10.0.0.0/8 [90/30720] via 192.168.1.2, 00:00:58, FastEthernet0/0
     172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
D       172.16.0.0/16 is a summary, 00:01:28, Null0
C       172.16.1.0/30 is directly connected, Serial0/0.1
C       172.16.2.0/30 is directly connected, Serial0/0.2
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
D       192.168.1.0/24 is a summary, 00:01:28, Null0
C       192.168.1.0/30 is directly connected, FastEthernet0/0
R1#

위의 정보중 우리가 주목해야 될 부분은 10.0.0.0 네트워크로 가는 경로입니다.
경로를 보시면 subnet prefix가 8로 되어 있습니다. classful 한 네트워크 주소라는 말이죠.
그리고 경로를 보면 192.168.1.2가 최적의 경로로 되어 있군요. 그럼 이제 ping을 날려 보겠습니다.
위의 정보를 가지고 핑이 제대로 응답할지 안할지도 예상할 수 있으셔야 합니다.


R1#ping 10.1.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms

R1#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)

R1#

왜 이렇게 되는지 아시겠죠? 라우팅 정보가 classful하게 광고 되기 때문에 10.x.x.x 네트워크로 가는 경로가
한쪽으로만 이루어 지고 있는 것입니다.





■ Disable auto-summarization


자 그럼 이제 위의 문제를 해결 하기 위해서 auto-summary 를 전부 disable 시키도록 하겠습니다.


###R1
R1(config-router)# no auto-summary
###R2
R2(config-router)# no auto-summary
###BB1
BB1(config-router)# no au
###BB2
BB2(config-router)# no au


자 이제 다시 라우팅 테이블을 확인해 봅시다.

###R1
sh ip route

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.1.1.0/30 [90/2681856] via 172.16.1.2, 00:00:02, Serial0/0.1
                    [90/2681856] via 172.16.2.2, 00:00:02, Serial0/0.2
D       10.1.2.0/24 [90/30720] via 192.168.1.2, 00:00:07, FastEthernet0/0

오우 이런 제대로 등록이 되었군요.
그런데 여기서 10.1.1.0 의 백본 네트워크로 가는 경로를 보시길 바랍니다.
Metric 값이 둘다 같군요. 앞에서 말한 듯이 bandwidth 를 변경하여 비균등 로드 밸런싱으로 바꿔보겠습니다.


■ Load balance using the variance feature


R1(config)#int s0/0.1
R1(config-subif)#bandwidth 128
R1(config-subif)#int s0/0.2
R1(config-subif)#bandwidth 64

BB1(config)#int s0/0.1
BB1(config-subif)#bandwidth 256
BB1(config-subif)#int s0/0.2
BB1(config-subif)#bandwidth 128

BB2(config)#int s0/0.1
BB2(config-subif)#bandwidth 256
BB2(config-subif)#int s0/0.2
BB2(config-subif)#bandwidth 64


  • 구간의 속도를 주는 명령어
    • Bandwidth 
      • 하위 IOS에서도 존재하는 명령어
      • <1-10000000>  Bandwidth in kilobits 와 같이 kbps로 속도를 지정
    • Speed
      • 버전 3000이상이나 Switch에 존재하는 명령어
      • Mbps 단위로 속도를 지정한다.
    • 설정 예
      • T1 ( 1.544 Mbps )
        • bandwidth 1544
        • speed 1
      • E1 ( 2,048 Mbps )
        • bandwidth 2048
        • speed 2


아무튼 이제 다시 sh ip route로 라우팅 테이블을 확인해 봅시다.

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.1.1.0/30 [90/21024000] via 172.16.1.2, 00:17:52, Serial0/0.1

이제 아까와는 달리 10.1.1.0 네트워크로 가는 경로가 이제 하나로 변했네요
그럼 좀 더 자세하게 볼게요

R1#sh ip eigrp topology
IP-EIGRP Topology Table for AS 1

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.2.0/24, 1 successors, FD is 30720
         via 192.168.1.2 (30720/28160), FastEthernet0/0
P 1.1.1.1/32, 1 successors, FD is 128256
         via Connected, Loopback0
P 192.168.1.0/30, 1 successors, FD is 28160
         via Connected, FastEthernet0/0
P 172.16.1.0/30, 1 successors, FD is 20512000
         via Connected, Serial0/0.1
P 172.16.2.0/30, 1 successors, FD is 40512000
         via Connected, Serial0/0.2
P 2.2.2.2/32, 1 successors, FD is 156160
         via 192.168.1.2 (156160/128256), FastEthernet0/0
P 3.3.3.3/32, 1 successors, FD is 20640000
         via 172.16.1.2 (20640000/128256), Serial0/0.1
         via 172.16.2.2 (41152000/10639872), Serial0/0.2
P 10.1.1.0/30, 1 successors, FD is 21024000
         via 172.16.1.2 (21024000/2169856), Serial0/0.1
         via 172.16.2.2 (41024000/10511872), Serial0/0.2
P 4.4.4.4/32, 1 successors, FD is 21152000
         via 172.16.1.2 (21152000/2297856), Serial0/0.1
         via 172.16.2.2 (40640000/128256), Serial0/0.2
         via 172.16.2.2 (40640000/128256), Serial0/0.2
         via 172.16.2.2 (40640000/128256), Serial0/0.2
R1#


딱 자르고 필요한 부분만 보시길 바랍니다.
10.1.1.0 으로 가는 경로가
via 172.16.1.2 FD값은 21024000
via 172.16.2.2 FD값은 41024000
이렇게 두개가 있네요.

아 여기서 앞의 P 라고 되어 있는 것은 passive 라는 것인데 A의 Active와 헤깔리지 마시길 바랍니다.
대부분 그냥 보면 A가  가능한 경로라고 생각하는 경우가 많은데
Active - 경로 계산중으로 목적지까지의 Successor가 선출되지 않아서 업데이트를 받는 중.
Passive - 경로 계산이 끝나고 Successor이 선출되어 라우팅이 가능한 상태.

아무튼 그렇군요...
자 그럼


R1(config-router)#variance 2
R1(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 172.16.1.2 (Serial0/0.1) is up: new adjacency
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.1.2 (FastEthernet0/0) is up: new adjacency
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 172.16.2.2 (Serial0/0.2) is up: new adjacency
R1(config-router)#

Successor의 FD에 Variance 설정값을 곱해주는 명령입니다.
이를 하는 이유는 unequal-path에 대해서 load balance를 가능하게 해주는 것입니다.

자 이제 다시 라우팅 테이블을 확인해 봅시다.

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       10.1.1.0/30 [90/21024000] via 172.16.1.2, 00:00:37, Serial0/0.1
                    [90/41024000] via 172.16.2.2, 00:00:35, Serial0/0.2

이 데이터를 보면 Metric 값이 다름에도 불구하고 Feasible Successor가 라우팅 테이블로 올라와 있는 것을 볼 수 있습니다.
라우팅 테이블에서 위와 같이 표시 되는 의미는 다들 아시죠?
동등 경로에 대해서만 두 경로를 사용하는 것인데, variance를 이용해서 비균등 로드 밸런싱을 하고 있는 것을 볼 수 있습니다.



■ Verify EIGRP operation


저장하고 때려칩시다.