bxm's IT Story

EIGRP 최대 장점 중 하나 - Unequal Cost Load Balancing 본문

Network/Cisco (KEDU)

EIGRP 최대 장점 중 하나 - Unequal Cost Load Balancing

bxmsta9ram 2021. 6. 22. 09:38

이 그림처럼 구현. 용어는 아래 정리되어 있음.


공통]

ena

conf t

no ip domain lookup

line c 0

  logg sy

  exec-timeout 0

  exit

line vty 0 4

  pass cisco

  exit

 

int s1/0

  no shut

  enc fram 

  no fram inver

  clock rate 64000

  end


R1]

conf t

int lo0

  ip add 22.22.1.1 255.255.255.0

  exit

 

int s1/0.12 p

  ip add 22.22.12.1 255.255.255.0

  fram inter 102

 

int s1/0.13 p

  ip add 22.22.13.1 255.255.255.0

  fram inter 103

  


R2]

conf t

int lo0

  ip add 22.22.2.2 255.255.255.0

  exit

 

int s1/0.12 p

  ip add 22.22.12.2 255.255.255.0

  fram inter 201

 

int s1/0.24 p

  ip add 22.22.24.2 255.255.255.0

  fram inter 204


R3]

conf t

int lo0

  ip add 22.22.3.3 255.255.255.0

  exit

 

int s1/0.13 p

  ip add 22.22.13.3 255.255.255.0

  fram inter 301

 

int s1/0.34 p

  ip add 22.22.34.3 255.255.255.0

  fram inter 304

 


R4]

conf t

int lo0

  ip add 22.22.4.4 255.255.255.0

  exit

 

int s1/0.24 p

  ip add 22.22.24.4 255.255.255.0

  fram inter 402

 

int s1/0.34 p

  ip add 22.22.34.4 255.255.255.0

  fram inter 403

 

 


PING 테스트

R1]

ping 22.22.12.2

ping 22.22.13.3

## 통신 양호

 

R2]

ping 22.22.12.1

ping 22.22.24.4

## 통신 양호

 

R3]

ping 22.22.13.1

ping 22.22.34.4

## 통신 양호

 

R4]

ping 22.22.24.2

ping 22.22.34.3

## 통신 양호


R1~R4,, EIGRP 넣어주기

R1]

conf t

router eigrp 22

  eigrp router-id 22.22.1.1

  network 22.22.1.1 0.0.0.0

  network 22.22.12.1 0.0.0.0

  network 22.22.13.1 0.0.0.0

  no auto-summary

  passive-interface lo0

 

R2]

conf t

router eigrp 22

  eigrp router-id 22.22.2.2

  network 22.22.2.2 0.0.0.0

  network 22.22.12.2 0.0.0.0

  network 22.22.24.2 0.0.0.0

  no auto-summary

  passive-interface lo0

 

R3]

conf t

router eigrp 22

  eigrp router-id 22.22.3.3 

  network 22.22.3.3 0.0.0.0

  network 22.22.13.3 0.0.0.0

  network 22.22.34.3 0.0.0.0

  no auto-summary

  passive-interface lo0

 

R4]

conf t

router eigrp 22

eigrp router-id 22.22.4.4

network 22.22.4.4 0.0.0.0

network 22.22.24.4 0.0.0.0

network 22.22.34.4 0.0.0.0

no auto-summary

passive-interface lo0


EIGRP 까지 기본값 설정 완료!! R1->R4로도 통신 원활 확인!!

 

공통]

show ip route


[공통]

show ip eigrp nei

 

연결이 모두 잘 되어있음을 확인!!




## DUAL(Diffusing Update Algorithm) 알고리즘 ##

- EIGRP가 사용하는 알고리즘.

- DUAL에서 사용되는 용어는 아래와 같다.

[용어 정리]

 * [속도] T1[1.544Mbps]  <  T2[6.312Mbps]

 

1) FD(Feasible Distance)

     - 출발지에서 목적지 network까지의 전체 Metric을 의미한다.

     - FD 값이 가장 낮은 경로가 Best Path로 선출된다. (여기 실습에서는 FD1 !!)


  2) AD(Advertised Distance) 또는 RD라고 함.

     - 출발지 장비의 Next-hop 부터 목적지 network 까지의 Metric을 의미한다.


  3) Successor

     - FD_Best Path(최적 경로) 상의 출발지의 next-hop 라우터를 의미한다. 즉, FD가 가장 낮은 경로의 다음 Router를

       의미한다.


  4) Feasible Successor

     - Loop가 없다고 확인된 Backup Path 상의 next-hop 라우터를 의미한다.

     - 출발지 Router에서 다음 조건이 일치하는 Backup Path가 존재할 경우 Loop가 없다고 확신할 수 있다.

   

      ※ [Best Path(최적 경로)의 FD]  >  [Backup Path(후속 경로)의 AD]

      ==> RD2가 FD1보다 크면 안 된다.(실제 RD2_R3->R4에서 Delay를 주면 더 커질 수 있음.)

             그러면 최적 경로가 아님.

           ## 만약에 RD2 값이 Delay를 무한정 주게 되어, RD2값이 FD1 값보다 더 크게 할 수 있다!!

           ## 하지만 뒷동산을 가는 지름길(FD1)이 있고, 대체 경로(RD2)로 서울-호주-옆동네-뒷동산을 가면

           ## 대체 경로는 의미가 없음!! 그래서 위의 조건을 만족해야 하는 것임.

 

      - 위의 조건이 만족되는 경로가 존재하는 경우 해당 경로는 Loop가 없는 Backup Path라는 것을 확신하고,

        해당 경로 정보를 자신의 'EIGRP Topology Table'에 등록한다.

     

      - 위의 조건에 만족이 되지 않는 Backup 경로는 Topology Table에 등록되지 않고, Best Path 장애시 Query 패킷을

        사용하여 확인 후 Loop가 없다면 Routing table에 등록된다.


R1]

show ip route

위 아래의 값이 같음.

## R1에서 R4로 가는 경로 Metric을 다시 한번 보게 되면 위로 가는 경로와, 아래로 가는 경로의 값이 같음을 

## 확인할 수 있다. 하지만 우리는 위에 그림판으로 그린 그림에서 위로 가는 경로가 T2로 아래보다 더 빠르므로

## 아래 R3의 오른쪽 부분의 Delay 값을 살짝 늘려서 더 느리게 해보자.

## 원래 R3의 왼쪽 T1과 만나는 s1/0.13 부분을 바꿨었는데 자꾸 Metric 값이 안먹어서 오른쪽으로 바꿈.

 

R3]

conf t

int s1/0.34

  delay 2100

  ## 기본값이 20,000 ms 였으니까 /10 되면 원래는 2,000임. 그래서 delay를 살짝 더 올려서 2,100 정도로 늘려보자!


R1, R3]

clear ip eigrp nei

clear ip ro *

## 라우팅 테이블 초기화


R1]

show ip eigrp topology detail-links

## 모든 라우팅 정보를 가지고 있는 것을 eigrp에서는 토폴로지라고 한다.

FD1(최적 경로) > RD2(대체 경로의 후속값) 확인!!


## DUAL(Diffusing Update Algorithm) 알고리즘  동작원리##

1) Successor로부터 기존의 Metric보다 더 좋은 Metric을 전달 받았을 때 변화 없음. 그냥 더 좋은 것임.
2)                     "                   더 나쁜 Metric을 전달 받고,
피저블 석세서가 존재할 때
피저블 석세서가 석세서로 바뀌고, 대체경로가 최적 경로로 변함
3)                     "                   더 나쁜 Metric을 전달 받고,
피저블 석세서가 존재하지 않을 때
확산(Diffusing)한다!!
계속 피저블 석세서를 찾아 헤맴.
("거기 누구 없어요!!")
그래서 DUAL 알고리즘이라고 함

R1]

show ip route

22.22.12.2 경로만 최적 경로로 설정되어 있고, 대체 경로는 나오지 않음.

 

## 하지만 12.2로 패킷을 2개 보내는 동안, 13.3 으로도 패킷 1개 정도는 보내자!! 

## 이럴 때는 일정 조건을 갖춰야 한다.


★★★★ [Unequal Cost 부하 분산 조건] ★★★★

1. FD1 > RD2 (피저블 석세서가 존재한다는 뜻. 피저블 석세서가 존재하지 않으면 부하 분산이라는 말 자체가 성립이 X)

2. FD1 * Variance(어떤 정수값) > FD2 

   ## 여기서 적당한 정수값은 뭐가 있을까? 2가


R1]

show ip protocols

## 현재 variance 값 확인하는 명령어

 

 

conf t

router eigrp 22

  variance 2

 

show ip route

Variance 값을 바꾸니, 로드 밸런싱이 되었다!!

 

## variance 값이 변경된 것을 확인

show ip protocols


R2]

conf t

int s1/0.24

  shutdown

  ## 이렇게 하면  R2 <-> R1 <-> R3 <-> R4 기존에 했던 Line mesh 형태로 변환된다!!



## 과제. R2에서 루프백 5개를 만드는데 다음과 같이  4개의  네트워크를

만들고 EIGRP로 광고하세요.

5.5.8.1/24

5.5.9.1/24

5.5.10.1/24

5.5.11.1/24

5.5.12.1/24

5.5.13.1/24

5.5.14.1/24

5.5.15.1/24


R2]

conf t

int lo5

ip add 5.5.8.1 255.255.255.0

ip add 5.5.9.1 255.255.255.0 sec

ip add 5.5.10.1 255.255.255.0 sec

ip add 5.5.11.1 255.255.255.0 sec

ip add 5.5.12.1 255.255.255.0 sec

ip add 5.5.13.1 255.255.255.0 sec

ip add 5.5.14.1 255.255.255.0 sec

ip add 5.5.15.1 255.255.255.0 sec

 

router eigrp 22

network 5.5.8.0 0.0.7.255

광고하기!!

R1]

## 이제 R2쪽에서의 IP들이 보일 것임.

show ip route

R1에서 R2로부터 넘어온 IP들을 확인할 수 있다! R4에서도 마찬가지로 show ip route를 통해 네트워크들이 넘어온 것을 확인할 수 있다.


## 라우팅 테이블이 지금 너무 많아졌으므로,

## 이제 위의 R2에 추가된 5.5.(8~15).0 네트워크들을 R4로 보내고,

## R4에서 0.0.0.0/0 을 왼쪽으로 보내면

 

R2]

conf t

int s1/0.24

  ip summary-address eigrp 22 5.5.8.0 255.255.248.0

                                       ## 255 - 7(wildmask 값)


R4]

show ip route

축약되어 제대로 넘어온 것을 확인!


R1]

conf t

int s1/0.12

  ip summary-address eigrp 22 0.0.0.0  0.0.0.0

  ## R2에게 Default route를 설정해줘서 모르는 것 나한테 다 물어봐!! 하고 주소를 넘겨줌.


R2]

clear ip ro *

 

show ip route


## 여기서 살짝 불편한게 생김! R2에서 5.5.9.1/24 를 no ip add로 죽여도,

## R1에서는 R2에서 넘겨받은 5.5.8.0/21 이 있기에 R2로 ping을 보냄.

## 근데 R2는 이미 5.5.9.1/24가 죽었기에, 자신이 가지고 있는 0.0.0.0  0.0.0.0을 통해 '모르는 것 다 R1 너한테

    가랬지?' 하고, R1으로 다시 보냄. 그러면 서로 Loop를 돌아서 R1과 R2 둘다 죽어버림. 과부하!!

 

R2]

conf t

int lo5

  no ip address 5.5.9.1 255.255.255.0 sec

  ## 5.5.9.1/24를 R2에서 죽였음.


R1]

clear ip eigrp nei

clear ip ro *

## 라우팅 테이블 Refresh

 

show ip route

R1 라우팅 테이블에 아직도 R2에서 넘겨받은 축약된 21bit 네트워크를 가지고 있음.

 

## 근데 R2에서는 이미 5.5.9.1/24가 죽어버렸기에 "나는 모르오~" 하고 R1의 Default로 계속 보냄.

## 그럼 서로 계속 떠넘김.

## 그래서 이러한 서로 계속 떠넘기기의 Loop를 방지하기 위해서 NULL 0를 만들음.


R2]

show run

## 축약을 한 네트워크의 AD값은 5다. 기본값으로 설정이 되어버림!! 내가 안했음!!


## 기존에 R1에서 추가했던 Default route와, R2에서 축약으로 추가했던 IP들을 전부 취소해보자

 

R1]

conf t

int s1/0.12

  no ip summary-address eigrp 22 0.0.0.0  0.0.0.0

  end

 

ping 22.22.4.4

## 통신이 잘 된다.

 

 

## 그럼 이제 R1->R3 // R3->R4로 Default route를 줘보자.

conf t

int s1/0.13

  ip summary-address eigrp 22 0.0.0.0  0.0.0.0

  end


R3]

show ip route

## default가 13.1을 향한다.

## 아! 이제 내가 모르는 것은 R1으로 보내면 되겠구나 ㅎㅎ


R4]

show ip route

## R4에서도 마찬가지로 R3의 34.3을 바라보고 있음. (R1쪽을 바라보고 있는 것임)


R3]

## R3에서 R4로 default 축약을 한번 더 줘보자!! 이 전까지는 R1->R3한테만 주었기 때문에

## 이제는 R3->R4로 직접적으로 준 것임.

conf t

int s1/0.34

ip summary-address eigrp 22 0.0.0.0  0.0.0.0

R1에서 R3로 축약해서 디폴트를 보낼때 NULL0가 만들어졌다. 그때까지만 해도 R4->R2로 통신이 가능했음!! 근데 R3에서 R4로 디폴트를 축약해서 또 보내서 R3에서도 디폴트에 NULL0 값이 만들어졌음. 그래서 R4에서 R2으로 통신이 안됨!!


R4]

show ip route

## Connected로 직접적으로 Default 값이 연결된 것을 확인할 수 있다!

 

ping 22.22.2.2

## 그런데! 이 상태에서 ping 22.22.2.2 을 날리면 통신이 안된다!

## R1에서 생성된 0.0.0.0(AD값_5) / 0(AD값_90)

##                   R3에서 생성된 0.0.0.0(AD값_5) / 0(AD값_90) 에서 R3에서 생성된 AD값 5가 더 우등하기 때문에

##                   R3에서 NULL0가 생겨버림. 블랙홀 생성! 왼쪽으로 더 이상 안넘어가지게 된다.

R3가 지금 블랙홀이 되었음!!

 

## 블랙홀 퇴치 (R3에서 NULL0 없애기)

conf t

int s1/0.34

  no ip summary-address eigrp 22 0.0.0.0  0.0.0.0

  ip summary-address eigrp 22 0.0.0.0  0.0.0.0 100


R4]

ping 22.22.1.1

## 이제 정상적으로 R1 쪽으로 통신이 된다.