bxm's IT Story

EIGRP 에서의 문제점 - SIA 현상 (Stuck In Active) 본문

Network/Cisco (KEDU)

EIGRP 에서의 문제점 - SIA 현상 (Stuck In Active)

bxmsta9ram 2021. 6. 23. 09:13

 


공통]

conf t

no ip domain lookup

line c 0

  logg sy

  exec-timeout 0

  exit

line vty 0 4

  password cisco

  exit

int s1/0

  no shut

  enc fram

  no fram inver

  clock rate 64000


R1]

int lo0

  ip add 23.23.1.1 255.255.255.0

  end

 

## Line-mesh 모형에서 s1/0.xx 들어가서 fram map만 하다보니까 순간 얼탔음;;

int f0/0

  no shutdown

  ip add 23.23.12.1 255.255.255.0

  exit

int s1/0.13 m

  ip add 23.23.13.1 255.255.255.0

  fram map ip 23.23.13.3 103 br

  end


R2]

int lo0

  ip add 23.23.2.2 255.255.255.0

  exit

 

int f0/0

  no shutdown

  ip add 23.23.12.2 255.255.255.0

  exit

int s1/0.23 m

  ip add 23.23.23.2 255.255.255.0

  fram map ip 23.23.23.3 203 br

  end

 

 

R3]

int lo0

  ip add 23.23.3.3 255.255.255.0

  exit

 

int s1/0.13 m

  ip add 23.23.13.3 255.255.255.0

  fram map ip 23.23.13.1 301 br

  exit

int s1/0.23 m

  ip add 23.23.23.3 255.255.255.0

  fram map ip 23.23.23.2 302 br

  exit

int s1/0.34 m

  ip add 23.23.34.3 255.255.255.0

  fram map ip 23.23.34.4 304 br

  end


R4]

int lo0

  ip add 23.23.4.4 255.255.255.0

  exit

 

int s1/0.34 m

  ip add 23.23.34.4 255.255.255.0

  fram map ip 23.23.34.3 403 br

  end


Ping 확인 - 전부 양호

 


## EIGRP 돌리기

R1]

conf t

router eigrp 23

  eigrp router-id 23.23.1.1

  network 23.23.1.1 0.0.0.0

  network 23.23.12.1 0.0.0.0

  network 23.23.13.1 0.0.0.0

  no auto

  passive-interface lo0


R2]

conf t

router eigrp 23

  eigrp router-id 23.23.2.2

  network 23.23.2.2 0.0.0.0

  network 23.23.12.2 0.0.0.0

  network 23.23.23.2 0.0.0.0

  no auto

  passive-interface lo0


R3]

conf t

router eigrp 23

  eigrp router-id 23.23.3.3

  network 23.23.3.3 0.0.0.0

  network 23.23.13.3 0.0.0.0

  network 23.23.23.3 0.0.0.0

  network 23.23.34.3 0.0.0.0

  no auto

  passive-interface lo0


R4]

conf t

router eigrp 23

  eigrp router-id 23.23.4.4

  network 23.23.4.4 0.0.0.0

  network 23.23.34.4 0.0.0.0

  no auto

  passive-interface lo0


## Show ip route를 통해 EIGRP 잘 잡혔는지 확인.

 

공통]

show ip route

## 전부 제대로 잡혀있는 것을 확인할 수 있다.


 

## Show ip eigrp nei로 nei 확인

공통]

show ip eigrp nei


## Show ip eigrp topology detail

R1]

show ip eigrp topology detail

## R1 -> R4까지의 통신일 때,

## 석세서 : R3

## 피저블석세서 : R2

## FD1 : R1-R3-R4

## RD1 : R3-R4


## 그렇다면 피저블 석세서를 없애려면 어떻게 해야할까?

## R2<->R3 사이를 늘리던가 // R2-R3-R4 구간을 전체를 늘려 RD2 > FD1 으로 만들면 된다.

 

R2]

conf t

int s1/0.23

  delay 2100

  end

clear ip eigrp nei


R1]

show ip eigrp topology detail

피저블 석세서가 사라지니 .23 라인만 잡힌다!!


##  그렇다면 R1<->R2 사이의 f0/0 포트를 shutdown 시키면 어떻게 될 것인가?

R1]

debug eigrp packets query reply

conf t

int f0/0

  shut

## f0/0을 shutdown 시킨 후 Query를 날려보니, R1->R3,  R3->R4로 Query를 보냄.

## R4->R3 : 나는 12.0을 모르오..

## R3->R1 : 나는 12.0을 아오..

 

## R1은 R2와의 연결이 죽으면, R3과 R4의 두 군데에서의 정보를 취합해야만 라우팅 테이블을 업데이트한다!! 

## 그런데 만약 R1의 'debug eigrp packets query reply'에서 R4의 Reply 정보가 없다면!?

     ==> 무한정 기다린다...! 왜냐하면 R3은 12.0의 존재를 이미 알고 있어서 보고를 바로 할 수 있지만, R4의 정보를

            받기 전까지는 무한정 대기임. ex)선생님의 점심내기 사다리 예시 생각

 

## Hello : 224.0.0.10


## 그렇다면, R4의 Reply를 못받게 Hello만 받게 해보자!!

access-list 설정을 안해주면 R3가 R4의 Reply를 그냥 받아버리기에 SIA 현상이 생기지 않음!! 그래서 일부러 환경변수설정을 해준 것임!!!!!!!!!!!!!!!!!!!!!!!!!!!

R3]

conf t

access-list 100

## access-list가 100 이상이면 확장 access-list임. [출발지, 목적지, Protocol, Port number]를 제어할 수 있음.

## access-list ? 쳐보기.

출발지가 어디든 간에!! R3 나는! 224.0.0.10 0.0.0.0 (Hello)만 받겠다! 다른 Reply 따윈 받지 않겠다!! 라고 선언해준 것임.

 

access-list 100 deny ip any any

## 묵시적으로 deny ip any any는 자동으로 설정되기에 생략 가능


R1]

conf t

int f0/0

  no shutdown


R3]

conf t

int s1/0.34
  ip access-group 100 in

  end

## R4로부터 Hello 밖에 못 받는다.

 

show ip eigrp nei


R1]

show ip eigrp topology detail-links

## Passive : Routing 정보 계산을 모두 끝마친 상태

##  Active : Routing 정보 계산을 아직 끝마치지 않은 상태 (==Reply와 Ack를 받지 못한 상태)

 

R1]

conf t

int f0/0

  shutdown

  end


공통]

show ip eigrp topology detail

R1]에서 보니 12.0에 대한 RTO(Retransmission TimeOut) 값이 무한정 늘어난 것을 확인할 수 있음. 


R1]

conf t

int f0/0

  no shutdown

  delay 8000

  end

clear ip eigrp nei

## delay를 겁나 크게 줘 보았음.

 

conf t

int f0/0

  shutdown

  end

 

show ip eigrp topology detail-links

2.0과 12.0에 대한 RTO가 무한정 증가한 것을 볼 수 있음!!


R3]

deb eigrp packets SIAquery  SIAreply

 

show ip eigrp nei

## nei를 끊는지 안 끊는지 기다려보기!!

## nei를 끊었다 맺었다를 계속 반복함!!

## 3분 기다리다가 Reply Ack가 없으면 Nei를 끊어버림.

## 근데 또 Hello를 받으면 Nei를 맺음.

## 또 3분 있다가 Nei를 끊어버림.

 

## R3 지가 R4와의 Nei를 끊고 맺고 난리부르스를 치고 있음.

## 예전 대구(R3<->R4)에서 네트워크 망이 난리가 난 적이 있었는데, 알고보니 서울(R1->R2 f0/0)의 망 문제였음.

 

다시 한번 정리!!

Query -> Query 하면 Reply Ack, Reply Ack를 해야함. 기다리다가 일단 내꺼부터 보냄(확산 상태_Stuck In Active). 

계속 안오면 끊어버림. Hello가 오면 또 Nei 맺음.

 

이 SIA 때문에 EIGRP를 안쓴다!!!!!!!!!!!!!!!!




이 SIA 현상에 대해서 어떻게 막을 수 있을까? 막을 수 있다!!

 

PS. 선생님과 함께 아래의 실습들을 했는데 1시간동안 선생님도 뭐가 잘 안풀리셨는지 불꽃 타이핑을 하시는 바람에

어떤 어떤 원리인지는 정확하게 설명해주시지는 않았지만, Stub을 하게 되면 플래핑 현상이 사라지는 것은 확인했다고

충분하다고 하셨음.. 

 

R2]

conf t

int s1/0.23

  no delay 8000   

  ## 딜레이 준 것 취소하고, 아래 R1] int f0/0에 delay를 주었음.


R1]

conf t

int f0/0

  no shutdown

  exit

no shut을 한 뒤에 어느 정도의 시간을 기다리기.

 

int f0/0

  delay 8000

  end

  ## 딜레이 다시 주기. 그래서 R3 입장에서 12.0으로 가려면 원래 <13.0>과 <23.0>의 루트가 있었지만,

  ## R1의 f0/0 포트에서 연결을 끊었기에, 대체 경로인 23.0으로 갔지만 R1과 R2 사이에 8,000이라는 Delay가

  ## 존재하게 되어, 대체 경로로써의 역할을 못한다고 판단함.

  

  ## 그래서 R4한테 "너는 12.0으로 가는길 아니?" 하고 물어봤는데 Reply가 없음.

  ## 그래서 nei를 끊어버림.

 

conf t

int f0/0

  shutdown

  end

 

show ip eigrp topology active

## 뭐가 계속 안된다. 근데 선생님이 계속 쳐보셨음

 

show ip eigrp topology detail

R1이 Active 상태인걸 보여야 하는데 안보임..


R3, R4]

## 아직도 난리 부르스중. 플래핑 현상?

## 플래핑 현상 == 지금 R1<->R2의 RD2가 R1<->R3의 FD1 값보다 크므로 R2는 피저블 석세서가 되지 못한다.

                          그래서 지금 R3랑 R4간에 플래핑 현상이 계속 발생되고 있는 것임.

## R4가 확산할 필요가 없는 쓸모 없는 존재임을 알려주면 된다.

## R4는 현재 대체경로가 없고, R3과만 연결되어있다.

## 그래서 R4가 R3에게 "나는 막다른 길이오~" 하고 알려주면 된다.


R1]

conf t

int f0/0

  no shut

  ## 그럼 이제 R3<->R4 간에 Nei를 맺게 된다.

 


R4]

conf t

router eigrp 23

  eigrp stub


R3]

clear ip eigrp nei

 

conf t

int s1/0.34

  no ip access-group 100 in


R4]

conf t

router eigrp 23

  eigrp stub

  end

 

clear ip eigrp nei


R3]

 

show ip eigrp detail


R4]

 

## 위의 R3에서 34.4에 대해서 Stub Peer 상태이고, 'CONNECTED SUMMARY' 라고 뜨면 R4에서 라우팅 테이블에 대한

    변화가 있어야 하는데 [clear ip ro *], [show ip route] 를 해도 변화가 없음.


R1]

 

conf t

int f0/0

  shut

  ## 다시 플래핑 현상이 일어나나 보자.


R3]

 

conf t

int s1/0.34

  ip access-group 100 in


R1]

 

  no shut

  shut  

  ## no shut 했다가 다시 shut 해서 R3<->R4 간에 플래핑 현상이 발생하나 보자.


R3]

show ip eigrp nei

아무리 기다려봐도 플래핑 현상이 발생하지 않음.


요약

R3 -> 12.0으로 가는 대체경로가 존재하지 않기 때문에, Query에 대한 Reply가 

 

R4에서 Stub 선언을 하면, Reply와 Ack에 대해서 면제권을 부여받는 라우터가 된다!!

그래서 R4가 Stub이야~ 선언하면 R3에서 R4에게 축약해서 줘야하는데 지금 R4의 라우팅 테이블이 변화하지 않고 있음.

 

  ## R3 입장에서 12.0으로 가려면 원래 <13.0>과 <23.0>의 루트가 있었지만,

  ## R1의 f0/0 포트에서 연결을 끊었기에, 대체 경로인 23.0으로 갔지만 R1과 R2 사이에 8,000이라는 Delay가

  ## 존재하게 되어, 대체 경로로써의 역할을 못한다고 판단함.

  

  ## 그래서 R4한테 "너는 12.0으로 가는길 아니?" 하고 물어봤는데 Reply가 없음.

  ## 그래서 nei를 끊어버림.