■ 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
저장하고 때려칩시다.