# EIGRP
## 개요
* Cisco에서 1993년 독자적으로 개발한 [[IGP (Interior Gateway Protocol)]]
* 기존의 IGRP를 대체하며 개발되었고, RIP의 단순성과 OSPF의 복잡성 사이에서 균형을 맞춘 하이브리드 프로토콜로 설계됨.
* 기존 RIP와 OSPF 프로토콜은 어떤 복잡성이 존재했는가?
* 2016년 IETF에 의해 RFC 7868로 공개되어, 이제는 Cisco 독점이 아님 (그러나 여전히 실질적으로 Cisco 장비에서만 사용됨)
---
## 사용 범위
* 조직 내 LAN/WAN에서 통제 가능한 범위 내의 라우팅에 적합 (AS 내부 라우팅)
* 위 통제 가능한 범위라는 것은 무엇인가?
* AS 내부 라우팅이라는 것은 무엇인가?
---
## 주요 특징
| 기능 | 설명 |
| ----------------------------------------- | -------------------------------------------------- |
| **DUAL (Diffusing Update Algorithm)** | 루프 없는 경로 계산 알고리즘 |
| **Partial & Triggered Updates** | 전체 테이블 대신 변경된 항목만 전송 |
| **Neighbor Discovery** | Hello 패킷 기반 인접 관계 형성 |
| **Topology Table** | 인접 라우터로부터 수신한 모든 경로 보관 (Routing Table 아님) |
| **Feasible Distance / Reported Distance** | 경로 선택의 핵심 기준값 |
| **Feasible Successor** | 차선책 경로를 미리 계산해둠 (빠른 수렴) |
| **Multicast 기반** | **==224.0.0.10, Protocol 번호 88 사용==** |
| **Classless 지원** | [[CIDR (Classless Inter Domain Routing)]], VLSM 지원 |
| **Protocol Independence** | IP 이외의 네트워크 계층 프로토콜 지원 가능 (이론적으로는) |
---
## 내부 데이터 구조 및 작동 메커니즘
### 핵심 테이블 구조
| 테이블 명 | 설명 |
| ------------------ | ------------------------------------------------------------ |
| **Neighbor Table** | Hello를 통해 인접 관계가 형성된 라우터 목록 |
| **Topology Table** | 인접 라우터로부터 받은 모든 경로 정보 저장 (Feasible/Not Feasible 포함) |
| **Routing Table** | Topology Table에서 선택된 Best Path만 저장됨 (Feasible Successor만 고려) |
### 수렴 과정
1. Neighbor Discovery
- Hello 패킷을 주기적으로 송신 (Default: 5s on LAN, 60s on WAN)
- Hold Time 내 응답 없으면 Neighbor 관계 해제
2. Topology Building
- 인접 라우터와의 인접 관계 형성 후, Update 패킷을 통해 라우팅 정보 교환
- 수신된 경로는 Topology Table에 저장
3. Best Path Selection
- DUAL 알고리즘은 아래 기준으로 경로 평가
- Feasible Distance (FD): 자신이 가진 경로의 총 비용
- Reported Distance (RD): 이웃이 말해준 자기까지의 비용
- 조건: RD < FD → Feasible Successor로 인정 (Loop-free 보장)
4. Routing Table에 반영
- 가장 낮은 FD를 가진 경로를 Successor로 선택하여 Routing Table에 넣음
- Feasible Successor는 Backup 용도로 유지
### 패킷 종류 및 역할
| 패킷 유형 | 설명 |
| ---------- | ----------------------------- |
| **Hello** | Neighbor Discovery, Keepalive |
| **Update** | 새로운 라우팅 정보 전송 |
| **Query** | 경로 손실 시, 다른 라우터에 경로 요청 |
| **Reply** | Query에 대한 응답 |
| **ACK** | Update/Reply 수신 확인용 (신뢰성 보장) |
참고 EIGRP는 RTP(Reliable Transport Protocol)를 자체 구현하여, TCP 없이도 신뢰성 있는 전송을 보장함