EIGRP (Enhanced Interior Gateway Routing Protocol)
개념
- 엔터프라이즈 단위 네트워크에서 자주 볼 수 있는 심화 버전의 Distance vector 라우팅 프로토콜
- Unequal Load-Balancing을 할 수 있음
Autonomous System
- BGP에서 주로 사용됨
- EIGRP는 BGP의 AS 개념만 갖고 옴(실제 Autonomous System은 아님)
- 하나의 프로세스 내에서 다양한 프로토콜을 지원할 수 있음
- AS 부분에 naming 가능
router eigrp ICT
- address family는 주소체계 개념
- OSPFv1, v2에서는 IPv4만 지원했지만, v3는 IPv6까지 지원
Feasible Successor
- Successor는 최적의 라우팅으로 목적지까지 가기 위한 next-hop router
- Feasible Successor는 Successor를 백업하는 목적지까지 가기 위한 next-hop router
Feasible Distance
- AD(Advertised Distance), 이웃 라우터로부터 목적지까지 거리
- Feasible Distance는 FD로 표기, AD를 포함한 목적지까지 거리
- RD, Reported Distance
- AD를 포함한 출발지에서 목적지까지의 최적 Metric
Configuration Mode
EIGRP Named Mode
-
Address Family
- EIGRP AS와 연관된 세팅이 포함된 submode
- 네트워크 인터페이스 선택, EIGRP K 상수, logging 세팅, stub 세팅 등
-
Interface
- 인터페이스와 연관된 세팅이 포함됨
- hello 홍보 주기, split-horizon, 인증, 라우팅 경로 자동 요약 등
sh ip eigrp int
- 어느 인터페이스가 eigrp 선언되었는가
- peers (neighbor가 얼마나 맺어져 있는가)
- SRTT (Smooth Round Trip Time)
EIGRP Router-ID
- RID는 동적으로 설정될 수 있음
- 동적 할당으로는 모든 루프백 인터페이스에 설정된 주소 중 가장 높은 IPv4 주소
- 루프백이 없으면 Active 상태의 인터페이스 중 가장 높은 IPv4 주소
- RID는 EIGRP 구동이 초기화 될 때마다 바뀜
- EIGRP에서 Router-ID는 그리 중요하지 않음(사용하지 않는 것은 아님)
Passive Interface
- OSPF는 Passive를 주고 neighbor 명령어를 주든 neighbor 명령어를 주고 Passive를 주든 neighbor가 맺어짐
- EIGRP는 Passive를 주어야 Unicast로 통신할 수 있음
passive-interface default
- 모든 인터페이스에 passive를 걸어놓고 필요한 인터페이스만 열어서 사용하겠다는 의미
EIGRP Path Metric Calculation
EIGRP Unequal Load Balancing
variance
- variance를 2로 줬을 때, Feasible Distance x variance 값보다 작을 경우 Load-Balance 실행
- 해당 과정은 Successor가 아닌 Feasible Successor에서만 일어나는 과정
Advanced EIGRP
Dead Interval

Query
- Feasible Successor가 없는 네트워크 상에서 Successor가 Down 되면, 주변에 새로운 경로가 있는가에 대한 Query 전송
- 해당 과정은 Route Poisoning과 유사
- Query를 받은 라우터는 바로 Query에 대한 ACK 전송 후, 주변 neighbor들에게 Query 전송
- Query를 요청한 라우터는 Query Reply를 받을 때까지 대기 상태 돌입 (Active)
- 해당 과정이 마지막 라우터(최하층 라우터)까지 진행될 경우(더이상 Query를 날릴 neighbor가 없는 라우터가 Query에 대한 Reply를 보냈을 경우), Query 과정이 전부 끝났다고 볼 수 있음
- 모든 경로로 Query를 보낸 후 하나의 경로에서라도 Reply가 오지 않으면 계속 Active 상태 지속
Stuck in Active
- Query Reply가 오지 않을 경우 무한히 대기 상태를 지속할 수 없으므로, EIGRP 프로토콜에서 자체적으로 걸어둔 제한 시간
- 3분 안에 Query에 대한 응답이 오지 않으면 이상이 발생한 것으로 간주하여 neighbor 관계 해제
- 이때 Stuck in Active Time (180seconds)의 절반에 해당하는 시간, (90 seconds)에 Stuck in Active Query를 전송
- Stuck in Active Query는 Query를 받은 라우터 본인이 Reply를 보내지 못하는 건지, 그 뒤의 또 다른 라우터에서 Reply를 보내지 않아 Active 상태에 들어가 있는 건지 파악하기 위한 질문
퀴즈
Neighbor

- 트라이앵글 구조에서 서브넷이 다른 두 라우터 사이의 Neighbor 관계가 Up/Down 상태를 반복하는 이유
- 라우팅 업데이트 정보를 전달했으나 건너편 라우터에서 ACK가 오지 않았거나 건너편 라우터에서 전송은 했지만 전달이 되지 않은 경우 해당 현상 발생
- 그 상태로 16번 통신 실패할 경우 neighbor 관계 해제
- 이후 다시 hello packet 통신으로 neighbor 관계 연결
예상
- EIGRP의 인접성 조건에는 K 상수 값이 같고 EIGRP AS 번호가 같아야 한다는 조건이 있음
- 해당 이유로 neighbor까지는 맺어지지만, 서브넷이 다른 두 라우터 사이의 데이터 송수신은 불가능하기 때문에 실질적인 패킷 전송은 이루어지지 않고 neighbor 관계만 맺어졌다 끊어지기를 반복
정답
- 24비트와 25비트 주소를 지닌 라우터는 각각 위에 있는 라우터를 통해 서로의 경로를 홍보
- /24가 /25와 hello packet을 통해 neighbor 관계를 맺고 난 이후 업데이트 패킷을 전달할 때, longest prefix match 규칙으로 인해 /24와 /25의 통신 경로는 상단 라우터를 거치게 될 것
- 업데이트 패킷의 TTL 값은 기본 1이므로 서로의 라우터까지 업데이트 패킷 전송이 이루어지지 않고, Unreachable 메시지만 반환
- 이렇게 16회의 통신 실패가 발생하게 되면, neighbor 관계 해제
- 이후 첫 순서부터 재반복
- 해당 과정으로 인해 neighbor 관계 Up/Down이 반복됨
Query
- Square 구조와 Triangle 구조에서 Query 동작 방식의 차이
예상
- Square 구조에서 Query가 동작할 때, 라우터가 Active 상태로 있는 시간이 Triangle 구조에서보다 Square 구조에서 더 짧을 것으로 예상
- Query를 전송하는 경로의 수와 받아야 하는 Query Reply의 수가 Square에서 더 적기 때문에 더 빠른 Query 과정이 이루어질 것
정답
- Triangle 구조에서 Query 동작 방식은 이미 특정 경로에 대해 로드 밸런싱이 동작하고 있기 때문에 굳이 나머지 하위 라우터로 Query를 전송할 필요 없이 상위 라우터에서 Query 과정이 끝남
- Square 구조에서 Query 동작은 각 라우터에 대한 Feasible Successor를 효율적인 경로로 설정하지 않으면 모든 하위 라우터로 Query가 전송되기 때문에 전체 Query 과정 순환이 오래 걸리게 됨
- 결론적으로 Triangle 구조는 Feasible Successor에 대한 설정에 크게 영향을 받지 않지만, Square 구조에서 Feasible Successor 설정 값이 전체 통신 속도에 큰 영향을 미침
Route Summarization

- 해당 토폴로지와 같이 계층적으로 Summarization 할 수 있는 구조를 Good Addressing Structure라고 함
- Summary 한 라우팅 테이블에서 D(DUAL Algorithm)로 등록된 경로는 요약된 여러 경로들 중 가장 작은 Metric 값을 가진 경로의 Metric을 가져감
WAN Consideration
EIGRP Stub
- Stub의 의미는 본인(라우터) 뒤로는 Neighbor가 더 없고, 본인이 해당 네트워크의 끝이므로 더 넘겨줄 업데이트 정보가 없다는 것을 의미
- EIGRP Stub는 다른 EIGRP Peers로부터 온 다른 경로를 홍보하지 않음

- EIGRP Stub를 설정할 때 주로 사용하는 옵션은 redistributed
- 주로 같은 EIGRP AS를 사용하던 구역을 Stub로 나누어 다른 AS를 사용하는 EIGRP 구역과 재분배 하기 위해
Stub Site
- 하위 라우터들이 WAN 너머의 네트워크에 대한 정보를 받거나 WAN 너머로 Network Prefix를 홍보하는 행위를 허용하는 기능
Redistribution
default-metric
- 재분배를 실행할 때, 모든 경로에 대해 metric 값을 고정하는 명령어
- 만약 재분배 명령어 입력 중 metric 관련 명령어를 추가하면?
- default metric보다 재분배 명령어에서 설정한 metric 값이 우선순위 더 높음
route-map
- route map에서도 metric 설정이 가능한데, 특정 route map 조건에 해당하면 route map에서 설정한 metric 값을 달고 외부로 홍보되고 그렇지 않으면 재분배 명령어에서 설정한 metric을 달고 외부에 홍보됨
route-map default setting
PBR
permit any
- 패킷 Drop을 고려하여 permit any를 입력하는 경우가 많지만, permit any를 걸어두는 순간 CPU 사용량이 기하급수적으로 높아지고 원하지 않는 패킷이 이동하는 경우가 발생하기 때문에 웬만하면 permit any 설정은 입력하지 않음
- 사실상 PBR은 임시로 사용하는 경우가 많고 평소에 사용하기엔 약간의 설정 변경으로도 큰 통신 장애가 발생할 수 있기 때문에 잘 사용하지 않음
Local PBR
- 기본적으로 설정한 global PBR은 라우터 내부에서 발생한 패킷에 대해서는 정책 적용을 할 수 없음
- 라우터에서 발생하는 패킷에 대해 PBR을 적용하기 위해 local PBR이라는 것을 설정해야 함
ip loacl policy route-map
- 위의 명령어를 통해 Router 내부에서 생성된 패킷들도 PBR의 영향을 받도록 설정할 수 있음
- Local PBR이 Global PBR보다 적용 우선순위가 높기 때문에, 패킷은 Local PBR에 대해 먼저 검사받고 다음으로 Global PBR의 검사를 받게 됨