본문으로 바로가기
728x90

들어가며

이 글은 EIGRP의 기본 특징부터 메트릭, 패킷, DUAL, 축약, 디폴트 루트, SIA 방지, 부하분산까지 정리한 것입니다.

마지막 섹션에 숫자와 명령어를 한 표로 모았으니 복습에 쓰세요.

1. EIGRP란 무엇인가

EIGRP는 시스코가 개발한 고급(Advanced) Distance Vector 프로토콜입니다.

복합 메트릭으로 최적 경로를 고르고, DUAL 알고리즘으로 백업 경로(피저블 석세서)까지 미리 관리하는 것이 핵심입니다.

특징은 다음과 같습니다.

  • 시스코 전용 Distance Vector 프로토콜입니다.
  • IP 프로토콜 번호는 88입니다.
  • UCMP를 지원해서 메트릭이 다른 경로도 동시에 사용할 수 있습니다.
  • OSPF보다 설정이 간단합니다.
  • 대규모 네트워크에서는 관리가 힘들고 SIA(Stuck In Active) 현상이 발생할 수 있습니다.
  • AS 번호 범위는 1~65535입니다.
  • 라우터 ID는 별도로 설정하지 않으면 루프백 인터페이스 중 가장 높은 IP를 쓰고, 루프백이 없으면 물리 인터페이스 IP 중 가장 높은 것을 씁니다.
  • network 명령에 와일드카드 마스크를 사용합니다.

와일드카드 마스크

와일드카드 마스크는 서브넷 마스크의 반대 개념으로, 어느 비트까지 일치해야 하는지를 나타냅니다.

서브넷팅된 여러 네트워크를 한 번에 표기할 때 유용합니다.

 

<와일드카드 마스크 예시>

프리픽스 서브넷 마스크 와일드카드 마스크
/8 255.0.0.0 0.255.255.255
/16 255.255.0.0 0.0.255.255
/24 255.255.255.0 0.0.0.255

 

예를 들어 2.2.4.0과 2.2.5.0을 이진수로 보면 세 번째 옥텟의 마지막 비트만 다릅니다.

2.2.4.0 = 00000010.00000010.00000100.00000000
2.2.5.0 = 00000010.00000010.00000101.00000000

와일드카드는 0.0.1.0이 되고, 호스트 범위까지 포함하면 0.0.1.255입니다.

2. EIGRP 메트릭

EIGRP는 벡터 메트릭을 하나의 복합 메트릭으로 합쳐 최적 경로를 정합니다.

메트릭 구성 요소

  • 대역폭
  • 지연
  • 신뢰도
  • 부하
  • MTU
  • 홉카운트

이 벡터 메트릭들을 종합해 하나의 값인 복합 메트릭을 만들고, 이 값으로 최적 경로를 결정합니다.

홉카운트

홉카운트의 기본값은 100이고, 100을 초과하면 도달 불가능한 경로로 간주합니다.

 

<홉카운트 증가 설정 예시>

R1(config-router)# metric maximum-hops <1-255>

부하와 신뢰도를 제외하는 이유

복합 메트릭 계산에 부하나 신뢰도까지 넣으면 아래 문제가 생깁니다.

  • 라우팅 경로가 수시로 바뀌어 네트워크가 불안해집니다.
  • 잦은 라우팅 계산 때문에 라우터의 CPU 사용이 늘어납니다.
  • 라우팅 정보 전송이 늘어 링크 점유율이 증가합니다.

그래서 복합 메트릭을 계산할 때 K2, K4, K5 상수 값을 0으로 설정해 부하와 신뢰도를 제외시킵니다.

K 상수의 기본값이 K1=1, K2=0, K3=1, K4=0, K5=0이라서 기본 상태에서는 메트릭이 대역폭과 지연만으로 계산됩니다.

네이버끼리 K 값이 다르면 네이버가 맺어지지 않으니 주의하세요.

3. EIGRP AD(Administrative Distance)

EIGRP AD는 내부 90, 외부 170, 축약 5입니다.

내부 EIGRP 90 D network 명령으로 포함된 경로
외부 EIGRP 170 D EX redistribute
축약 5 - summary-address

4. EIGRP 패킷

EIGRP 패킷은 Hello, Update, 라우팅 정보 요청(Query), 응답(Reply), 수신확인(ACK) 다섯 종류입니다.

Reply와 ACK는 항상 유니캐스트(네이버 IP)로 전송됩니다.

4-1. Hello 패킷

  • 네이버를 구성하고 유지하는 데 사용합니다.
  • 멀티캐스트 주소 224.0.0.10을 목적지로 씁니다.
  • 홀드타임은 Hello 주기의 3배입니다.

<헬로 주기와 홀드타임>

네트워크 Hello 주기 Hold 타임
이더넷 5초 15초
NBMA 60초 180초

 

<Hello 패킷 송수신 확인 debug 명령>

R1# debug eigrp packets hello
R1# debug ip packet

<Hello 주기와 홀드타임 설정>

R1(config-subif)# ip hello-interval eigrp 1 10
R1(config-subif)# ip hold-time eigrp 130

Hello 간격을 바꿔도 홀드타임은 자동으로 조정되지 않으므로 직접 맞춰야 합니다.

4-2. Update 패킷

  • 라우팅 정보를 전달할 때 사용합니다.
  • 이더넷에서는 멀티캐스트를, NBMA와 포인트투포인트 네트워크에서는 네이버 IP로 유니캐스트를 사용합니다.
  • 특정 네이버에게서 수신확인 패킷을 받지 못하면 그 네이버에게만 유니캐스트로 다시 보냅니다.
  • 최대 16회까지 재전송합니다.

4-3. 라우팅 정보 요청(Query) 패킷

라우팅 테이블에 있던 석세서 경로가 사라지거나 메트릭이 증가했는데, 대체 경로(피저블 석세서)마저 없을 때 사용합니다.

멀티캐스트와 유니캐스트 사용 방식은 Update 패킷과 같습니다.

4-4. 응답(Reply) 패킷

요청받은 라우팅 정보를 전송합니다.

항상 유니캐스트입니다.

4-5. 수신확인(ACK) 패킷

Update, 라우팅 정보 요청, 응답 패킷의 수신을 확인해 줄 때 사용합니다.

항상 유니캐스트입니다.

5. EIGRP 대역폭

EIGRP 패킷은 인터페이스 대역폭의 50%까지 사용할 수 있습니다.

 

<대역폭 변경 설정 예시>

R1(config-subif)# ip bandwidth-percent eigrp <AS 번호> <퍼센트>

6. DUAL

DUAL은 토폴로지 테이블의 FD와 RD를 비교해 최적 경로(석세서)와 백업 경로(피저블 석세서)를 정합니다.

백업 경로가 미리 있으면 쿼리 없이 바로 전환할 수 있습니다.

6-1. 토폴로지 테이블

토폴로지 테이블은 인접 라우터에게서 수신한 네트워크와 그 네트워크의 메트릭 정보를 저장합니다.

 

<토폴로지 테이블 출력 예시>

P 2.2.1.0/24, 1 successors, FD is 158720
    via 2.2.24.2 (158720/156160), FastEthernet0/0.24

괄호 안의 158720가 FD이고, 156160가 RD입니다.

6-2. 용어 정리

용어 의미
피저블 디스턴스(FD) 목적지 네트워크까지의 최적 메트릭
석세서 최적 경로의 넥스트홉
리포티드 디스턴스(RD) 넥스트홉에서 목적지까지의 메트릭
피저블 석세서 석세서가 아닌 이웃 중 RD < FD를 만족하는 넥스트홉

석세서와 피저블 석세서는 모두 넥스트홉 라우터입니다. 피저블 석세서는 RD가 FD보다 작습니다.

6-3. 업데이트 수신 시 DUAL 동작

EIGRP가 업데이트 패킷을 받았을 때의 동작은 경우에 따라 네 가지로 나뉩니다.

수신한 업데이트 DUAL 동작
기존 경로보다 좋거나 동일한 메트릭 해당 경로 선택 → 네이버에게 업데이트 전송
기존보다 나쁨, 석세서가 아닌 네이버에게서 수신 무시
기존보다 나쁨, 석세서에게서 수신, 피저블 석세서 있음 피저블 석세서 선택 → 업데이트 전송
기존보다 나쁨, 석세서에게서 수신, 피저블 석세서 없음 쿼리 패킷 전송 → 확산

6-4. 쿼리 전송이 끝나는 경우

토폴로지 테이블에 해당 네트워크 정보가 없거나, 액티브 상태이거나, 네이버가 없거나, 피저블 석세서가 존재하면 그 라우터에서 쿼리 패킷 전송이 종료됩니다.

6-5. Active와 Passive

  • Active: 쿼리 패킷을 전송하고 아직 응답을 받지 못한 상태입니다.
  • Passive: 응답을 받았거나 쿼리 패킷을 전송하지 않은 상태입니다.
  • 3분 이내에 쿼리 패킷에 대한 응답을 받지 못하면 네이버 관계를 해제합니다.

7. EIGRP 축약

축약은 자동 축약과 수동 축약 두 가지입니다.

7-1. 자동 축약

주 네트워크 경계에서 주 네트워크 정보만 광고하는 방식으로, 명령은 auto-summary입니다.

show ip protocols 명령으로 확인 가능합니다.

7-2. 수동 축약

<수동 축약 설정 예시>

R2(config)# int f0/0.24
R2(config-subif)# ip summary-address eigrp 1 1.1.2.0 255.255.254.0
R4# show ip route eigrp
     1.0.0.0/23 is subnetted, 1 subnets
     1.1.2.0 [90/158720] via 2.2.24.2, 00:00:51, FastEthernet0/0.24

 

7-3. Null0 인터페이스

축약에 포함된 상세 네트워크가 모두 다운되었을 때만 축약 네트워크가 다운되었다고 알려 주기 때문에, 라우팅 루프가 발생하는 것을 막기 위해, 축약이 이루어지는 라우터의 라우팅 테이블에서는 축약 네트워크의 게이트웨이가 Null0 인터페이스로 설정됩니다.

 

<Null0가 없을 때 루프가 생기는 과정>

  1. R4는 축약 정보를 이용해 패킷을 R2 방향으로 라우팅 합니다.
  2. R2에서는 해당 상세 네트워크 1.1.2.0/24가 다운되어 라우팅 테이블에 없습니다.
  3. R2는 디폴트 루트를 참조해 이 패킷을 다시 R4로 전송합니다.
  4. R4는 이 패킷을 또 R2로 라우팅 하고, 이 과정이 반복됩니다. 목적지가 1.1.2.0/24인 패킷이 R2와 R4 사이에서 루프에 빠집니다.

<Null0가 있을 때>

디폴트 루트를 참조하기 전에 롱기스트 매치 룰(longest match rule)에 따라 디폴트 루트보다 더 상세한 1.1.2.0/23 네트워크를 참조합니다. 이 네트워크의 게이트웨이가 Null0으로 설정되어 있으므로 해당 패킷을 폐기하고, 라우팅 루프는 발생하지 않습니다.

8. EIGRP 보안

EIGRP 보안은 패킷 인증, 스태틱 재분배, passive-interface 세 가지로 정리합니다.

8-1. 패킷 인증 (MD5)

MD5로 EIGRP 패킷을 인증합니다.

키 번호와 암호는 양쪽이 일치해야 하고, 키 체인 이름은 달라도 됩니다.

8-2. 스태틱 재분배

종단 쪽에는 EIGRP를 포함하지 않고 스태틱으로 설정한 뒤 재분배합니다. 그러면 종단에는 라우팅 정보가 전송되지 않습니다.

8-3. passive-interface

passive-interface를 설정한 인터페이스는 Hello를 전송하지 않으므로 네이버가 형성되지 않습니다.

9. EIGRP 디폴트 루트

디폴트 루트는 재분배, 축약, 플로팅 축약경로 세 가지 방법으로 만듭니다.

방법마다 수신 측에서 보이는 표시와 AD가 다릅니다.

9-1. 재분배에 의한 디폴트 루트

<설정 예시>

R4(config)# ip route 0.0.0.0 0.0.0.0 2.2.45.5
R4(config)# router eigrp 1
R4(config-router)# redistribute static

<라우팅 테이블>

R4# show ip route
Gateway of last resort is 2.2.45.5 to network 0.0.0.0
S*   0.0.0.0/0 [1/0] via 2.2.45.5

R1# show ip route
D*EX 0.0.0.0/0 [170/33280] via 2.2.12.2, 00:02:19, FastEthernet0/0.12

9-2. 축약에 의한 디폴트 루트

<설정 예시>

R2(config)# int f0/0.12
R2(config-subif)# ip summary-address eigrp 1 0.0.0.0 0.0.0.0

9-3. 플로팅 축약경로

인터넷 쪽 장비와 연결된 경계 라우터가 디폴트 루트를 EIGRP로 광고하고, 그 아래의 중간 라우터는 하단 라우터들에게 줄 디폴트 루트(0.0.0.0/0)를 축약으로 직접 만든다고 가정합니다. 이때 하단 라우터에서 EIGRP 안에 있는 경계 라우터의 루프백까지는 핑이 되지만, 경계 라우터 너머 인터넷 쪽 장비의 루프백까지는 핑이 되지 않습니다. 원인은 중간 라우터가 직접 만든 축약 디폴트 루트(AD 5, 게이트웨이 Null0)입니다. 경계 라우터에서 광고받은 디폴트 루트는 AD가 90이라 밀려서 설치되지 못하고, 인터넷 쪽으로 가는 패킷은 Null0으로 버려집니다.
따라서 중간 라우터의 라우팅 테이블에 경계 라우터에서 광고받은 디폴트 루트가 설치되어야 합니다. 받은 디폴트 루트의 AD가 90이므로, 중간 라우터가 직접 축약한 디폴트 루트의 AD를 이보다 높게(예: 220) 설정합니다. 그러면 평소에는 받은 디폴트 루트를 쓰고, 축약 디폴트 루트는 예비로만 남습니다.

 

<설정 예시>

R2(config)# router eigrp 1
R2(config-router)# summary-metric 0.0.0.0/0 distance 220

10. Stuck In Active(SIA) 방지

SIA는 쿼리에 응답이 오지 않아 네이버가 끊기는 현상입니다. 방지책은 타이머 조정, 축약, 스텁 라우팅, 재분배 네 가지입니다.

10-1. SIA 현상

EIGRP가 정보 요청 패킷(Query)을 보낸 뒤 응답 패킷을 받지 못해 Active 상태가 장시간 유지되는 현상입니다.

응답 없이 3분이 지나면 네이버 관계가 해제되고, Hello를 수신하면 다시 네이버가 형성됩니다.

10-2. 타이머 조정

SIA 때문에 네이버가 해제되는 것을 방지하기 위한 방법입니다.

대체 경로로 수렴하는 컨버전스 타임이 길어지므로 유의해야 합니다.

 

<타이머 조정 설정 예시>

R3(config-router)# timers active-time 4

예제의 4는 4분입니다.

10-3. 축약 (쿼리 스코핑)

상세 네트워크(예: 2.2.1.0/24)의 광고가 중간 라우터에 도착했다고 가정합니다. 중간 라우터가 이를 더 큰 대역(예: 2.2.0.0/16)으로 축약하면, 다음 라우터에게는 상세 네트워크 광고가 전송되지 않습니다.
다음 라우터의 토폴로지 테이블에는 상세 네트워크 정보가 없습니다. 그래서 나중에 이 네트워크에 대한 쿼리를 받아도 그 너머의 라우터에게는 더 이상 쿼리 패킷을 전송하지 않습니다. 축약하면 다음 라우터에서 쿼리가 멈춥니다.

10-4. 스텁(Stub) 라우팅

단말 장비에 사용하며 eigrp stub으로 설정합니다.

단말 라우터를 스텁 라우터로 지정하면 그 네이버(상위 라우터)는 스텁 라우터에게 쿼리 패킷을 전송하지 않습니다.

R5(config-router)# eigrp stub ?
  connected      Do advertise connected routes
  leak-map       Allow dynamic prefixes based on the leak-map
  receive-only   Set receive only neighbor
  redistributed  Do advertise redistributed routes
옵션 의미
connected network 명령으로 포함된 연결 경로 정보를 광고
leak-map leak-map에 따라 특정 네트워크를 전송하거나 차단
receive-only 네이버에게 정보를 수신만 함
redistributed 재분배된 경로를 광고

10-5. 재분배

종단 라우터에서 EIGRP를 사용하지 않으면 쿼리가 전송되는 것을 차단할 수 있습니다.

종단 라우터에선 스태틱을 설정한 뒤 재분배합니다.

R4(config-router)# redistribute static
R4(config-router)# redistribute connected

11. EIGRP 부하분산

EIGRP는 메트릭이 같은 경로(ECMP)뿐 아니라 메트릭이 다른 경로(UCMP)로도 부하를 분산합니다.

UCMP는 피저블 석세서와 variance가 있어야 동작합니다.

11-1. ECMP

동일 메트릭 경로에 대한 부하분산으로, 자동으로 라우팅 테이블에 설치됩니다.

기본적으로 최대 4개 경로까지 부하분산 가능하며, show ip protocols의 maximum-path로 확인합니다.

11-2. UCMP

UCMP는 서로 다른 메트릭 경로에 대한 부하분산입니다.

아래 두 조건을 모두 만족해야 동작합니다.

조건 내용 방법
① 피저블 석세서를 통하는 경로 (RD < FD) offset-list
② 부하분산하려는 경로의 메트릭 값 < FD × variance 값 variance 설정

11-3. offset-list

피저블 석세서를 만들기 위해 경로의 메트릭을 증가시킵니다.

 

<설정 예시>

R1(config)# ip access-list standard R4-LOOPBACK
R1(config-std-nacl)# permit 2.2.4.0
R1(config-std-nacl)# exit
R1(config)# router eigrp 1
R1(config-router)# offset-list R4-LOOPBACK in 2139137 f0/0.12
항목 의미
ip access-list standard R4-LOOPBACK ACL로 메트릭을 증가시킬 네트워크를 지정
R4-LOOPBACK offset-list에 적용할 ACL 이름
in 라우팅 정보를 수신하면서 메트릭을 증가
2139137 증가시킬 메트릭 값
f0/0.12 수신 인터페이스

11-4. variance 설정

1~128 사이에서 부하분산시킬 메트릭 값의 범위를 지정합니다.

FD × variance 값이 부하분산하려는 경로의 메트릭보다 크도록 설정해야 합니다.

11-5. 벡터 메트릭 조정

벡터 메트릭을 조정할 때는 delay를 조정합니다.

12. show ip eigrp neighbors

EIGRP 네이버 상태는 show ip eigrp neighbors로 확인합니다.

R1# show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H   Address     Interface  Hold   Uptime    SRTT  RTO  Q    Seq
                           (sec)            (ms)       Cnt  Num
1   2.2.13.3    Fa1/0.13   11     00:02:26  52    312  0    49
0   2.2.12.2    Fa1/0.12   130    00:03:36  58    348  0    51
항목 의미
H 네이버가 생성된 순서
Address 네이버 IP 주소
Interface 네이버와 연결된 인터페이스
Hold (sec) 남은 홀드타임
Uptime 네이버가 유지된 시간
SRTT (ms) 네이버까지 패킷을 전송하고 응답이 돌아오는 데 걸리는 시간
RTO 이 시간까지 수신확인이 안 되면 재전송하는 시간
Q Cnt 큐에서 대기 중인 패킷 개수
Seq Num 시퀀스 번호

 


피터 전 저자(글), 「한 권으로 끝내는 IP라우팅(IP Routing)」
본 게시물은 위 강의 및 교재를 기반으로 정리한 글입니다.

 

728x90
SMALL