목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

배경 정보

로드 밸런싱이란?

Cisco Express Forwarding 전 - 다중 경로 또는 경로 수집

Cisco Express Forwarding 로드 공유 구성

Cisco Express Forwarding Load Balancing 내부 메커니즘

Cisco Express Forwarding 로드 밸런싱 확인

링크 변경 후 공유 로드

삭제 시 공유 정보 로드

알려진 문제

Cisco Express Forwarding 로드 밸런싱을 위한 하드웨어 지원

관련 정보

관련 Cisco 지원 커뮤니티 토론

소개

이 문서에서는 Cisco IOS의 방법을 설명합니다. Cisco Express Forwarding을 사용할 경우 여러 병렬 링크에 걸쳐 레이어 3 로드 밸런싱을 구현합니다.

사전 요구 사항

요구 사항

이 문서에서는 Cisco Express Forwarding의 두 데이터 구조를 이해하고 있다고 가정합니다.

- 포워딩 정보 베이스(FIB)

- 인접성 테이블

Cisco Express Forwarding 운영 개요는 이 문서의 "관련 정보" 섹션을 참조하십시오.

사용되는 구성 요소

이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 라이브 네트워크에서 작업하는 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 이해해야 합니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.

배경 정보

IP 스위칭은 Cisco IOS가 라우터를 통해 패킷을 전달하는 데 사용하는 내부 메커니즘입니다. 사용 가능한 메커니즘에는 프로세스 스위칭, 고속 스위칭, Cisco Express Forwarding 등이 있습니다. 세 가지 메커니즘 중 어느 것이 패킷의 대부분을 전환하는 데 사용되는지에 따라 전체 시스템 성능 및 로드 밸런싱이 영향을 받습니다.

IP 스위칭 메커니즘은 패킷당 및 대상별 두 가지 일반 모드를 지원합니다. 다음 표에서는 두 모드의 장점과 단점에 대해 설명합니다.

대상별

패킷당

IP 스위칭 메커니즘

Fast Switching 및 Cisco Express Forwarding for Destination입니다.

패킷 당 프로세스 스위칭 및 Cisco Express Forwarding

장점

고속 스위칭을 사용하면 여러 경로를 사용할 수 있더라도 지정된 대상에 대한 패킷이 동일한 경로를 사용할 수 있습니다. Cisco Express Forwarding 스위칭을 사용하면 여러 경로를 사용할 수 있더라도 지정된 소스 대상 호스트 쌍에 대한 패킷이 동일한 경로를 사용할 수 있습니다. 서로 다른 쌍으로 향하는 트래픽은 다른 경로를 사용하는 경향이 있습니다.

패킷별 로드 밸런싱의 경로 사용률은 라우터가 개별 호스트 또는 사용자 세션에 관계없이 경로를 통해 연속적인 데이터 패킷을 전송할 수 있도록 하기 때문에 적합합니다. 각 패킷이 목적지로 향하는 경로를 결정하는 데 round-robin 메서드를 사용합니다

단점

고속 스위칭을 사용하면 한 대상에 대한 패킷이 항상 동일한 경로를 따르기 때문에 대상 스위칭당 부하 공유가 일치하지 않을 수 있습니다. Cisco Express Forwarding 스위칭은 소수의 소스-대상 쌍으로 서로 다르게 배포될 수 있습니다. 대상별 로드 밸런싱은 트래픽의 통계적 분포에 따라 달라집니다. 소스-대상 쌍의 수가 증가하면 로드 공유가 더 효과적입니다.

지정된 소스-대상 호스트 쌍의 패킷은 다른 경로를 사용할 수 있으며, 이는 패킷의 재정의를 야기할 수 있습니다. 이는 VoIP(Voice over IP) 및 순차적 전달이 필요한 기타 플로우에는 권장되지 않습니다.

로드 밸런싱이란?

로드 밸런싱은 라우터가 둘 이상의 경로를 통해 대상 IP 주소(IP 접두사라고도 함)로 패킷을 전송하는 기능을 설명합니다.

로드 밸런싱을 논의할 때 먼저 다음 용어를 정의해야 합니다.

기간

정의

접두사

192.16.10.0/24과 같은 대상 IP 네트워크에 대해 설명합니다. Cisco IOS는 동적 라우팅 프로토콜을 사용하여 메시지를 교환하거나 고정 경로의 수동 컨피그레이션을 통해 얻은 정보를 사용하여 라우팅 테이블에 대상 IP 접두사를 추가합니다.

경로

대상 접두사에 도달하기 위한 유효한 경로를 설명합니다. Cisco IOS는 각 경로에 비용을 할당합니다. 목적지 접두사에 대한 활성 경로 집합은 비용이 같거나 같지 않을 수 있습니다.

세션

두 IP 노드 간의 단방향 통신 흐름에 대해 설명합니다. 세션의 모든 패킷은 동일한 소스 및 대상 IP 주소를 사용합니다.

자세한 내용은 로드 밸런싱 작동 방식을 참조하십시오.

Cisco Express Forwarding 전 - 다중 경로 또는 경로 수집

Cisco Express Forwarding은 IP 라우팅 테이블의 경로 정보를 사용하여 여러 링크를 통한 트래픽 균형을 조정합니다. 따라서 올바른 Cisco Express Forwarding 로드 밸런싱을 확인하는 작업은 IP 라우팅 테이블의 내용을 확인하는 것부터 시작합니다.

다음 토폴로지에서는 라우터 A와 라우터 B의 두 라우터가 HDLC(High-Level Data Link Control) 캡슐화를 통해 3개의 직렬 인터페이스를 통해 다시 연결합니다.

라우터 A

라우터 B

interface Ethernet 0

ip address  192.168.20.1 255.255.255.0

!

interface Serial1

ip address 10.10.10.1 255.255.255.0

!

interface Serial2

ip address 20.20.20.1 255.255.255.0

!

interface Serial3

ip address 30.30.30.1 255.255.255.0

ip ospf cost 100

!

router ospf 1

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

network 30.30.30.0 0.0.0.255 area 0

network 192.168.20.0 0.0.0.255 area 0

interface Serial1

ip address 10.10.10.2 255.255.255.0

clockrate 2000000

!

interface Serial2

ip address 20.20.20.2 255.255.255.0

clockrate 148000

!

interface Serial3

ip address 30.30.30.2 255.255.255.0

ip ospf cost 100

clockrate 148000

router ospf 1

network 10.10.10.0 0.0.0.255 area 0

network 20.20.20.0 0.0.0.255 area 0

network 30.30.30.0 0.0.0.255 area 0

maximum-paths 1

라우터 B가 라우터 A의 이더넷 인터페이스 IP 네트워크 192.168.20.0에 연결하기 위해 하나 이상의 경로를 선택하는 방법을 살펴보겠습니다.

- 기본적으로 OSPF(Open Shortest Path First)는 대상에 대한 네 가지 동일 비용 경로를 지원합니다. 이 시나리오에서는 라우터 B가 1과 같은 최대 경로로 구성됩니다. 따라서 라우터 B는 가능한 동일 경로 중 하나만 선택하여 첫 번째 경로를 수신합니다. 라우터 B는 192.168.20.0 네트워크의 단일 경로로 Serial 2를 선택하는 것으로 시작합니다. 현재 경로 세트를 보려면 show ip cef 및 show ip route 명령을 사용합니다.

RouterB#show ip cef  192.168.20.0

192.168.20.0/24, version 59, cached adjacency to Serial2

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

next hop 20.20.20.1, Serial2

valid cached adjacency

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 20.20.20.1 on Serial2, 00:03:58 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:03:58 ago, via Serial2

Route metric is 74, traffic share count is 1

- OSPF 아래의 maximum-paths 명령을 사용하여 라우팅 테이블에 대해 둘 이상의 경로를 허용합니다. OSPF는 동일한 비용 로드 밸런싱만 허용합니다. 같지 않은 비용 로드 공유를 구성하려면 EIGRP/IGRP(Enhanced Interior Gateway Routing Protocol/Interior Gateway Routing Protocol)를 IGP(Interior Gateway Protocol)로 구성합니다. IGRP 및 EIGRP에서 How Do Unequal Cost Path Load Balancing (Variance) Work in IGRP? 참조 자세한 내용을 참조하십시오.

RouterB(config)#router ospf 1

RouterB(config-router)#maximum-paths ?

<1-6>  Number of paths

RouterB(config-router)#maximum-paths 3

- 라우팅 테이블에 192.168.20.0에 대한 두 개의 경로가 포함되어 있는지 확인하려면 show ip route 명령을 사용합니다.

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 10.10.10.1 on Serial1, 00:00:11 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2

Route metric is 74, traffic share count is 1

10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1

Route metric is 74, traffic share count is 1

!--- The route metric is 74 for both paths.

- 세 개의 동일 비용 경로를 지원하도록 OSPF를 구성했지만 show ip route의 출력에는 두 개의 활성 경로만 표시됩니다. show ip ospf interface 명령을 사용하여 원인을 확인할 수 있습니다. 직렬 3은 직렬 1 및 직렬 2보다 비용이 높으므로 같지 않습니다.

RouterB#show ip ospf interface s1

Serial1 is up, line protocol is up

Internet Address 10.10.10.4/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64

RouterB#show ip ospf interface s2

Serial2 is up, line protocol is up

Internet Address 20.20.20.2/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64

RouterB#show ip ospf interface s3

Serial3 is up, line protocol is up

Internet Address 30.30.30.2/24, Area 0

Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 100

- show run 명령을 사용하여 Serial 3이 ip ospf cost 100 명령으로 구성되어 있는지 확인할 수 있습니다. no ip ospf cost 100 sub-interface 명령을 사용하여 컨피그레이션에서 이를 제거하고 세 개의 시리얼 링크 모두의 비용을 동일하게 만듭니다.

RouterB#show run interface s3

Building configuration...

Current configuration:

!

interface Serial3

ip address 30.30.30.2 255.255.255.0

no ip directed-broadcast

ip ospf cost 100

ip ospf interface-retry 0

- 이제 show ip route 명령은 192.168.20.0 네트워크에 대한 세 가지 동일 비용 경로를 표시합니다.

RouterB#show ip route  192.168.20.0

Routing entry for  192.168.20.0/24

Known via "ospf 1", distance 110, metric 74, type intra area

Redistributing via ospf 1

Last update from 10.10.10.1 on Serial1, 00:00:01 ago

Routing Descriptor Blocks:

* 20.20.20.1, from 204.204.204.1, 00:00:01 ago, via Serial2

Route metric is 74, traffic share count is 1

30.30.30.1, from 204.204.204.1, 00:00:01 ago, via Serial3

Route metric is 74, traffic share count is 1

10.10.10.1, from 204.204.204.1, 00:00:01 ago, via Serial1

Route metric is 74, traffic share count is

이제 Cisco Express Forwarding 로드 밸런싱이 라우팅 테이블의 정보를 사용하여 패킷을 전달하는 방법을 살펴보겠습니다.

Cisco Express Forwarding 로드 공유 구성

Cisco Express Forwarding은 loadshare 테이블을 사용하여 로드 밸런싱을 수행합니다. Cisco 라우터의 다른 모든 로드 밸런싱 솔루션과 마찬가지로 아웃바운드 인터페이스에서 로드 밸런싱 결정을 내릴 수 있습니다. 다른 스위칭 방법과 달리 Cisco Express Forwarding은 경로의 소스 주소와 목적지 주소를 모두 기반으로 경로를 추적합니다. 이를 간소화하기 위해 경로가 IP 세션이며 각 세션이 논리적으로 고유한 소스 대상 주소 쌍으로 식별된다고 말할 수 있습니다.

로드 밸런싱이 발생하는 방식을 이해하려면 먼저 테이블이 어떻게 연관되는지 확인해야 합니다. Cisco Express Forwarding 테이블은 병렬 경로의 인접성 테이블을 가리키는 16개의 해시 버킷(로드 공유 테이블)을 가리킵니다. 자세한 내용은 Cisco Express Forwarding Load Balancing Internal Mechanism 섹션을 참조하십시오. 스위칭할 각 패킷은 소스 및 대상 주소 쌍으로 분할되어 loadshare 테이블에 대해 확인됩니다.

참고: Cisco Express Forwarding 스위칭에는 목적지별 및 패킷별 두 가지 기본 유형이 있습니다. 두 유형이 모두 라우터에서 사용 중인 경우 각 유형에는 고유한 loadshare 테이블이 있습니다.

목적지별 로드 밸런싱을 통해 라우터는 로드 공유를 위해 여러 경로를 사용할 수 있습니다. Cisco Express Forwarding을 활성화하면 대상별 로드 밸런싱이 기본적으로 활성화되며, 대부분의 상황에서 로드 밸런싱 방법을 선택할 수 있습니다. 대상별 로드 밸런싱은 트래픽의 통계적 분포에 따라 다르므로 소스-대상 쌍의 수가 증가할수록 로드 공유가 더 효과적입니다.

패킷별 로드 밸런싱을 사용하면 라우터가 개별 호스트 또는 사용자 세션에 관계없이 경로를 통해 연속 데이터 패킷을 전송할 수 있습니다. 각 패킷이 목적지로 향하는 경로를 결정하려면 round-robin 메서드를 사용합니다. 패킷별 로드 밸런싱은 여러 링크를 통한 균형을 보장합니다. 패킷별 로드 밸런싱의 경로 사용률은 양호하지만, 지정된 소스 대상 호스트 쌍의 패킷은 다른 경로를 사용할 수 있으므로 패킷의 순서가 변경될 수 있습니다. 이러한 이유로, VoIP와 같은 특정 유형의 데이터 트래픽에 대한 패킷 당 로드 밸런싱은 시퀀스로 대상에 도착하는 패킷에 따라 적합하지 않습니다. 단일 소스 대상 쌍의 경로가 오버로드되지 않도록 하려면 패킷별 로드 밸런싱을 사용합니다.

ip load-sharing 명령을 사용하여 패킷별 및 대상별 메서드 간에 변경합니다.

7200-1.3(config)#interface fast 0/0

7200-1.3(config-if)#ip load-sharing ?

per-destination  Deterministic distribution

per-packet       Random distribution

7200-1.3(config-if)#ip load-sharing per-packet

show cef interface 명령을 사용하여 변경 사항을 확인합니다.

7200-1.3#show cef interface fast 0/0

FastEthernet0/0 is up (if_number 3)

Corresponding hwidb fast_if_number 3

Corresponding hwidb firstsw->if_number 3

Internet address is 172.16.81.13/24

ICMP redirects are always sent

Per packet load-sharing is enabled

IP unicast RPF check is disabled

Inbound access list is not set

Outbound access list is not set

IP policy routing is disabled

Hardware idb is FastEthernet0/0

Fast switching type 1, interface type 18

IP CEF switching enabled

IP Feature Fast switching turbo vector

IP Feature CEF switching turbo vector

Input fast flags 0x0, Output fast flags 0x0

ifindex 1(1)

Slot 0 Slot unit 0 VC -1

Transmit limit accumulator 0x0 (0x0)

IP MTU 1500

Cisco Express Forwarding Load Balancing 내부 메커니즘

먼저 Cisco Express Forwarding 로드 밸런싱의 이면에 있는 내부 메커니즘을 해체합니다.

- 각 세션(위의 표 참조)은 활성 경로에 할당됩니다.

- session-to-path 할당은 소스 및 대상 IP 주소를 사용하는 해시 함수를 사용하여 수행되며, 최근 Cisco IOS 릴리스에서는 엔드 투 엔드 경로 전체에서 할당을 임의로 지정하는 고유한 해시 ID가 사용됩니다.

- 활성 경로는 여러 개의 16개의 해시 버킷에 내부적으로 할당됩니다. Path-to-Bucket 할당은 로드 밸런싱 유형 및 활성 경로 수에 따라 달라집니다.

- 해시 함수의 결과는 활성화된 버킷 중 하나를 선택하여 세션에 사용할 경로를 선택하는 데 사용됩니다.

- 라우터에서 전달되는 모든 세션의 경우 각 활성 경로는 동일한 세션 수를 전달합니다.

이러한 Cisco Express Forwarding 내부 직원의 예를 살펴보겠습니다.

1. maximum-paths 명령을 사용하여 대상 접두사에 대한 활성 경로 수를 2개로 줄입니다.

RouterB(config)#router ospf 1

RouterB(config-router)#maximum-paths 2

2. show ip cef {prefix} internal 명령을 사용하여 path-to-bucket 할당을 봅니다.

RouterB#show ip cef  192.168.20.0 internal

192.168.20.0/24, version 66, per-destination sharing

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

0 packets, 0 bytes switched through the prefix

Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1)

!--- The load distribution line summarizes how each path is !--- assigned to the hash buckets.

Hash  OK  Interface                 Address         Packets

1     Y   Serial2                   point2point           0

2     Y   Serial3                   point2point           0

3     Y   Serial2                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point           0

6     Y   Serial3                   point2point           0

7     Y   Serial2                   point2point           0

8     Y   Serial3                   point2point           0

9     Y   Serial2                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial3                   point2point           0

13    Y   Serial2                   point2point           0

14    Y   Serial3                   point2point           0

15    Y   Serial2                   point2point           0

16    Y   Serial3                   point2point

16개의 해시 버킷은 로드 밸런싱 유형 및 활성 경로 수에 따라 설정됩니다. 단순 사례는 짝수 개의 경로를 위한 것입니다. 16개의 버킷은 활성 경로로 균일하게 채워집니다. 16이 활성 경로 수로 표시되지 않으면 나머지를 나타내는 마지막 몇 개의 버킷이 비활성화됩니다. 다음 표는 해시 버킷이 두 개 및 세 개의 활성 경로를 찾는 방법을 보여줍니다.

버킷/경로

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

2

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

3

0

1

2

0

1

2

0

1

2

0

1

2

0

1

2

x

다음 예에서는 목적지로 가는 세 개의 경로가 있습니다. Cisco Express Forwarding에서 해시 버킷 16을 어떻게 제거했는지, 그리고 세 개의 직렬 링크가 해시 버킷 1~15에 균등하게 할당되었는지 확인하십시오.

RouterB#show ip cef  192.168.20.0 interface

192.168.20.0/24, version 64, per-destination sharing

0 packets, 0 bytes

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

!--- The active paths are assigned to hash buckets in a !--- round-robin pattern.

Hash  OK  Interface                 Address         Packets

1     Y   Serial2                   point2point           0

2     Y   Serial3                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial2                   point2point           0

5     Y   Serial3                   point2point           0

6     Y   Serial1                   point2point           0

7     Y   Serial2                   point2point           0

8     Y   Serial3                   point2point           0

9     Y   Serial1                   point2point           0

10    Y   Serial2                   point2point           0

11    Y   Serial3                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial2                   point2point           0

14    Y   Serial3                   point2point           0

15    Y   Serial1                   point2point           0

!--- Hash bucket 16 has been removed.

참고: 대상에 대해 단일 경로를 선택하지만 Cisco Express Forwarding Per-Destination 및 Fast Switching 메커니즘은 해당 경로를 선택하는 방식이 다릅니다. Cisco Express Forwarding은 소스 및 대상 IP 주소를 모두 고려하지만, 고속 스위칭은 대상 IP 주소만 고려합니다.

Cisco Express Forwarding 로드 밸런싱 확인

라우터에서 Cisco Express Forwarding 로드 밸런싱을 확인하려면 다음 단계를 수행하십시오.

1. Cisco Express Forwarding이 라우터에서 전역적으로 활성화되었는지 확인합니다.

S3-4K-2#show ip cef

%CEF not running

Prefix                      Next Hop                     Interface

!--- This output shows Cisco Express Forwarding is not enabled. !--- Use ip cef command in global configuration to enable it.

2. 특정 아웃바운드 인터페이스에서 패킷별 또는 목적지별 스위칭이 활성화되었는지 확인합니다. 기본값은 대상별 입니다.

RouterA#show cef interface s1

Serial1 is up (if_number 3)

Internet address is 10.10.10.1/24

ICMP redirects are always sent

Per packet loadbalancing is disabled

IP unicast RPF check is disabled

Inbound access list is not set

Outbound access list is not set

Interface is marked as point to point interface

Hardware idb is Serial1

Fast switching type 4, interface type 40

IP CEF switching enabled

!--- Cisco Express Forwarding is enabled on the interface.

IP CEF Fast switching turbo vector

Input fast flags 0x0, Output fast flags 0x0

ifindex 5(5)

Slot 0 Slot unit 1 VC -1

Transmit limit accumulator 0x0 (0x0)

IP MTU 1500

3. 라우팅 테이블 및 Cisco Express Forwarding 테이블에 show ip route 명령을 사용하여 모든 병렬 경로가 포함되어 있는지 확인합니다.

RouterB#show ip route 192.168.20.0

Routing entry for 192.168.20.0/32, 1 known subnets

O       192.168.20.1 [110/65] via 20.20.20.1, 00:06:54, Serial1

[110/65] via 10.10.10.1, 00:06:54, Serial2

[110/65] via 30.30.30.1, 00:06:54, Serial3

4. show ip cef 명령을 사용하여 Cisco Express Forwarding FIB를 확인합니다.

RouterB#show ip cef 192.168.20.0

192.168.20.0/24, version 18, per-destination sharing

0 packets, 0 bytes

via 30.30.30.1, Serial3,   0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

tmstats: external 0 packets, 0 bytes

internal 0 packets, 0 bytes

RouterB#show ip cef 192.168.20.0 internal

192.168.20.0/24, version 18, per-destination sharing

0 packets, 0 bytes

via 30.30.30.1, Serial3, 0 dependencies

traffic share 1

next hop 30.30.30.1, Serial3

valid adjacency

via 20.20.20.1, Serial2, 0 dependencies

traffic share 1

next hop 20.20.20.1, Serial2

valid adjacency

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

0 packets, 0 bytes switched through the prefix

tmstats: external 0 packets, 0 bytes

internal 0 packets, 0 bytes

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

Hash  OK  Interface                 Address         Packets

1     Y   Serial3                   point2point           0

2     Y   Serial2                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point           0

6     Y   Serial1                   point2point           0

7     Y   Serial3                   point2point           0

8     Y   Serial2                   point2point           0

9     Y   Serial1                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial3                   point2point           0

14    Y   Serial2                   point2point           0

15    Y   Serial1                   point2point           0

참고: 위의 loadshare 테이블에는 로드 분배 0 1 2 0 1 2가 표시됩니다. . 및 트래픽 공유는 각 경로에 대해 1입니다. 즉, 3개의 동일 비용 경로 간에 목적지당 동일한 비용 로드 공유가 가능합니다.

5. Cisco Express Forwarding 인접성을 확인합니다.

RouterB#show adjacency detail

Protocol Interface                 Address

IP       Serial1                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

IP       Serial2                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

IP       Serial3                   point2point(11)

0 packets, 0 bytes

0F000800

CEF   expires: 00:02:31

refresh: 00:00:31

6. 모든 아웃바운드 인터페이스에 필요한 Cisco Express Forwarding 로드 밸런싱 메커니즘이 구성되었는지 확인합니다.

RouterB#show ip cef  192.168.20.0

192.168.20.0/24, version 89, per-destination sharing

0 packets, 0 bytes

via 10.10.10.1, Serial1, 0 dependencies

traffic share 1

next hop 10.10.10.1, Serial1

valid adjacency

[output omitted]

7. 해시 버킷 어카운팅을 활성화하여 통계를 수집하여 네트워크의 Cisco Express Forwarding 패턴을 더 잘 이해할 수 있습니다. 예를 들어, 대상으로 전환된 패킷 및 바이트 수 또는 대상을 통해 전환된 패킷 수와 같은 정보를 수집할 수 있습니다. 다음 명령을 사용합니다.

router(config)# ip cef accounting load-balance-hash

Packet(패킷) 필드 아래의 값을 관찰하여 패킷 흐름을 확인합니다.

RouterB#show ip cef 192.168.20.0 internal

[...]

Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1)

Hash  OK  Interface                 Address         Packets

1     Y   Serial                    point2point           0

2     Y   Serial2                   point2point           0

3     Y   Serial1                   point2point           0

4     Y   Serial3                   point2point           0

5     Y   Serial2                   point2point          35

6     Y   Serial1                   point2point           0

7     Y   Serial3                   point2point           0

8     Y   Serial2                   point2point          60

9     Y   Serial1                   point2point           0

10    Y   Serial3                   point2point           0

11    Y   Serial2                   point2point           0

12    Y   Serial1                   point2point           0

13    Y   Serial3                   point2point           0

14    Y   Serial2                   point2point          30

15    Y   Serial1                   point2point           0

Serial 2를 통해 125개의 패킷이 유입되었습니다. ping을 사용하여 트래픽을 생성하는 경우 ping 패킷이 Cisco Express Forwarding-switched 라우터를 통과해야 합니다. 다시 말해, ping 패킷은 Cisco Express Forwarding-switched 인터페이스, 즉 Cisco Express Forwarding-switched 인터페이스, 다른 Cisco Express Forwarding-switched 인터페이스에서 입력해야 합니다.

참고: 소스-대상 쌍의 수가 증가하면 대상별 로드 공유가 더 효과적입니다.

8. 접두사로 트래픽을 보내는 동안 show interface 명령의 여러 출력을 캡처합니다. "txload" 및 "rxload" 값을 분석합니다. (일부 인터페이스는 전송 및 수신을 모두 고려하는 단일 "로드" 값을 표시합니다.) 패킷 당 로드 밸런싱은 패킷 수에 균등한 분포를 제공하지만, 병렬 링크는 패킷 크기에 따라 약간 불균형한 속도를 나타낼 수 있습니다.

Serial1/0:0 is up, line protocol is up

reliability 255/255, txload 10/255, rxload 3/255

Serial1/1:0 is up, line protocol is up

reliability 255/255, txload 18/255, rxload 3/255

9. Cisco Express Forwarding Per-Destination 로드 밸런싱을 사용하면 다음 명령을 사용하여 세션이 할당되는 경로를 확인할 수 있습니다. 키워드 internal을 추가하여 사용할 해시 버킷을 표시합니다.

show ip cef exact-route {source-ip-address} {dest-ip-address} [internal]

RouterB# show ip cef exact-route 50.50.50.2 192.168.20.1  internal

50.50.50.2      -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 4 from 15, total 3 paths

RouterB# show ip cef exact-route 5.5.5.1 192.168.20.1  internal

5.5.5.1         ->192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 7 from 15, total 3 paths

RouterB# show ip cef exact-route 6.6.6.1 192.168.20.1  internal

6.6.6.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 7 from 15, total 3 paths

RouterB# show ip cef exact-route 8.8.8.1 192.168.20.1  internal

8.8.8.1         -> 192.168.20.1   : Serial9/0 (next hop 20.20.20.1)

Bucket 13 from 15, total 3 paths

10. 출력이 일치하지 않는 경우 다음을 고려하십시오.

- 병렬 링크를 통과하는 고유한 소스 및 대상 주소 쌍 또는 세션의 수입니다.

- 각 세션의 패킷 수 및 크기입니다. 한 세션에 많은 수의 패킷이 있습니까? 대상별 로드 밸런싱은 트래픽의 통계적 분포에 따라 달라지며 소스-대상 쌍의 수가 증가함에 따라 더 효과적입니다.

링크 변경 후 공유 로드

라우팅 테이블이 변경되어 대상에 대한 활성 경로 수를 조정하면 Cisco Express Forwarding은 show ip cef {prefix} internal 명령의 출력에 표시되는 로드 밸런싱 구조를 업데이트합니다. 그런 다음 Cisco Express Forwarding은 인접성 및 해당 해시 버킷에 새로 도착하는 패킷을 확인합니다. 선택한 버킷은 이전에 사용한 버킷과 동일하거나 다를 수 있습니다.

다음 단계에서는 대상 접두사에 대한 활성 경로 수가 변경된 후 Cisco Express Forwarding 로드 밸런싱 정보를 업데이트하는 방법을 설명합니다.

1. 대상 접두사가 두 경로를 통해 도달할 수 있다고 가정합니다. 경로 1이 비활성 상태이고 경로 2가 활성 상태이며 모든 트래픽을 전달합니다.

2. 경로 1을 다시 사용할 수 있으면 IP 라우팅 재통합 프로세스를 묻는 메시지가 표시됩니다.

3. Cisco Express Forwarding은 이제 두 경로 모두에서 로드 밸런싱을 수행하며 경로 2에 걸쳐 기존 흐름을 보존하지 않습니다. 이렇게 하면 경로 1이 사용되지 않습니다. 다시 말해, Cisco Express Forwarding은 유효한 경로에서 세션에 대한 패킷을 전달할 수 있다고 생각하지 않으며 선택한 해시 버킷에 따라 플로우의 새 경로를 선택할 수 있습니다.

삭제 시 공유 정보 로드

라우팅 테이블이 변경되면 Cisco Express Forwarding은 활성 경로를 해시 버킷에 할당하는 로드 밸런싱 구조를 삭제한 다음 재구축합니다. 재구축 프로세스 중에 일부 패킷이 손실될 수 있으며, show ip cef {prefix} internal 명령은 삭제로 인해 공유 정보 로드를 나타냅니다.

router#show ip cef 10.10.128.0 int

10.10.128.0/28, version 63, per-destination sharing

0 packets, 0 bytes

via 10.8.0.31, 0 dependencies, recursive

next hop 10.8.2.49, POS0/0/0

valid adjacency

Load sharing information due for deletion

Cisco 버그 ID CSCdm87127을 통해 구현된 변경 사항은 기본 0.0.0.0 경로의 활성 경로 수를 변경하는 동안 패킷 손실을 최소화합니다. 특히 Cisco Express Forwarding은 이제 이 경로에 대해 가능한 최대 활성 경로를 위한 공간이 있는 FIB 항목을 할당합니다.

알려진 문제

Cisco Express Forwarding 로드 밸런싱이 4개 경로와 같지 않습니다. 자세한 내용은 CSCdm87756(등록된 고객만 해당)을 참조하십시오.

12.0(16)S 이전 버전의 Cisco IOS에서 show ip cef exact-route 명령을 입력하면 Cisco 12000 시리즈 인터넷 라우터 또는 Cisco 7500/RSP 시리즈 라우터의 RP(Route Processor)가 다시 로드될 수 있습니다. 이 상황은 대상 접두사가 재귀적이며 라우터가 다음 홉에 로드 공유 중일 때 발생합니다. 자세한 내용은 이 문제를 해결하는 CSCdt80914(등록된 고객만 해당)를 참조하십시오.

6500 Series 플랫폼에서는 CEF 패킷별 로드 밸런싱이 지원되지 않습니다. 이는 하드웨어 제한 때문이며 현재 대상별 로드 밸런싱만 가능합니다. 따라서 유일한 옵션은 dMLPPP(Distributed Multilink Point-to-Point Protocol) 또는 레이어 4 플로우 로드 공유를 사용하는 것입니다.

Cisco Express Forwarding 로드 밸런싱을 위한 하드웨어 지원

Cisco Express Forwarding Per-packet 로드 밸런싱은 원래 소프트웨어 기반 포워딩을 사용하는 플랫폼에서 지원되었습니다. 이러한 플랫폼에는 2600, 3600, 7200 시리즈가 포함됩니다. 이제 NSE-1 및 10000 시리즈와 함께 7200 시리즈에서 PXF(Parallel Express Forwarding)를 사용하는 하드웨어에서 패킷별 로드 밸런싱이 지원됩니다. Catalyst 6000 Series에서 Cisco IOS Cisco Express Forwarding ip load-sharing per-packet, MSFC2의 ip cef accounting per-prefix 및 ip cef accounting non-recursive 명령은 MSFC2의 Cisco Express Forwarding-switched인 소프트웨어인 트래픽에만 적용됩니다. 이 명령은 PFC2에서 하드웨어 Layer 3-Switched 또는 DFC-DFC-On에 설치된 트래픽에는 하드웨어 Router의 트래픽에는 영향을 주지 않습니다. 스위칭 모듈. 자세한 내용은 Supervisor Engine 2에서 IP 유니캐스트 레이어 3 스위칭 구성을 참조하십시오.

참고: NSE-100 프로세서 카드가 장착된 Cisco 7300 라우터는 PXF에서 패킷별 로드 밸런싱을 지원하지 않습니다. PXF는 대상 로드 밸런싱당 만 지원합니다. 그러나 컨피그레이션 명령을 라우터의 CLI에서 사용할 수 있기 때문에 지원하는 것으로 나타났습니다. 이는 수정되며 Cisco 버그 ID CSCdx63389에 기록됩니다.

12000 시리즈에서는 엔진 3과 4를 제외한 모든 레이어 3 포워딩 엔진에서 패킷별 로드 밸런싱을 사용할 수 있습니다. 각 라인 카드는 독립적인 포워딩 결정을 수행합니다. 각 IP 플로우에 대한 정확한 경로를 보려면 하드웨어 기반 Cisco Express Forwarding 테이블을 사용하는 라인 카드에서 exec 슬롯 X show ip hardware-cef exact-route src dst 명령을 사용합니다.

관련 정보

- Cisco Express 포워딩

- Cisco Express Forwarding을 통한 로드 밸런싱

- IP 라우팅 지원

- 기술 지원 및 문서 − Cisco Systems