Cisco IOS® Software는 지연 및 높은 처리량을 최소화하면서 트래픽 전달을 용이하게 하는 여러 메커니즘을 지원합니다.이 문서에서는 패킷에서 어떤 Cisco IOS 스위칭 또는 포워딩 경로를 사용할지 확인하는 방법에 대해 설명합니다.
참고: 이 문서에서는 프로세스 스위칭, 고속 스위칭 및 CEF(Cisco Express Forwarding)에만 대해 설명합니다.
이 문서의 독자는 다음 주제에 대해 잘 알고 있어야 합니다.
Cisco IOS 소프트웨어
Cisco 1600, 2500 및 3600 Series 플랫폼
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
Cisco IOS 스위칭은 라우터를 통한 패킷 흐름을 정의합니다.더 구체적으로, 라우터를 통해 패킷을 전달할 수 있는 속도와 패킷이 저장되는 물리적 버퍼를 결정합니다.
Cisco IOS의 역사 동안 여러 스위칭 방법이 개발되었습니다.일부 메서드는 특정 플랫폼에서만 지원됩니다.CEF는 최신 스위칭 방법입니다.CEF가 전역적으로 활성화되면(기본 동작) ip route-cache cef interface specific 명령도 활성화됩니다.이 명령을 사용하면 이 인터페이스에 들어오는 패킷에 대해 CEF 스위칭이 수행됩니다.경우에 따라 한 인터페이스에서만 CEF를 비활성화해야 하는 경우 no ip route-cache cef 명령이 추가됩니다.이렇게 하면 해당 인터페이스에 대한 CEF 스위칭만 비활성화됩니다.Cisco IOS는 no ip route-cache 명령을 CEF를 비활성화해야 할 경우 자체적으로 running-config에 추가하지 않습니다.Cisco IOS 12.0 메인라인의 여러 플랫폼, 특히 Cisco 1600, 2500, 3600 Series와 같은 로우레인지 및 미드레인지 플랫폼에 도입되었습니다.
라우터가 라우티드 인터페이스에서 패킷을 수신하면 먼저 레이어 2(L2) 프레임 정보를 제거합니다.그런 다음 레이어 3(L3) 패킷을 I/O 메모리에 저장합니다.다음 작업은 패킷이 따르는 스위칭 경로에 따라 달라집니다.
다음 단계를 사용하여 패킷이 CEF 스위칭 경로를 따르는지 확인할 수 있습니다.
CEF가 전역 및 특정 인터페이스에서 활성화되었는지 확인합니다.
router#show ip cef %CEF not running
CEF를 활성화하려면 글로벌 컨피그레이션 모드에서 ip cef 명령을 사용합니다.
참고: Cisco 7200 Series에서 CEF는 Cisco IOS의 향후 릴리스에서 기본 Cisco IOS 스위칭 방법입니다.
show ip cef prefix 명령을 사용하여 접두사가 나열되는지 확인합니다.
router#show ip cef Prefix Next Hop Interface 0.0.0.0/32 receive 192.168.0.0/30 attached Serial2/0/0:1 192.168.0.0/32 receive
특정 인터페이스에서 CEF가 활성화되었는지 확인합니다.
show cef interface x/x 명령을 사용하여 "IP CEF switching enabled" 또는 "IP distributed CEF(dCEF) switching enabled"를 찾습니다.
router#show cef interface fastEthernet 0/0/0 FastEthernet0/0/0 is up (if_number 2) Internet address is 192.168.1.253/24 ICMP redirects are always sent Per packet loadbalancing is disabled Inbound access list is not set Hardware idb is FastEthernet0/0/0 Fast switching type 1, interface type 18 IP Distributed CEF switching enabled Fast flags 0x0. ifindex 1(1) Slot 0 Slot unit 0 VC -1 Hardware transmit queue ptr 0x48001A00 (0x48001A00) Transmit limit accumulator 0x48001A02 (0x48001A02) IP MTU 1500
show ip interface 명령을 사용하여 활성화된 Cisco IOS 스위칭 방법을 표시합니다.
router#show ip interface fastethernet 1/0/0.1 FastEthernet1/0/0.1 is up, line protocol is up IP fast switching is enabled IP fast switching on the same interface is enabled IP Flow switching is disabled IP CEF switching is enabled IP Distributed switching is enabled IP Fast switching turbo vector IP Normal CEF switching turbo vector IP multicast fast switching is enabled IP multicast distributed fast switching is disabled IP route-cache flags are Fast, Distributed, No CEF
이 출력에서 "No CEF" 플래그는 특정 인터페이스에서 no ip route-cache cef 명령으로 인해 CEF가 비활성화되었음을 나타냅니다."CEF" 플래그는 CEF가 실행됨을 나타냅니다.안정된 상태에서는 두 플래그가 모두 표시되어서는 안 됩니다.Cisco 버그 ID CSCdr80269(등록된 고객만 해당)는 두 플래그가 모두 표시될 수 있는 드문 조건을 해결합니다.버그 ID에 대한 자세한 내용은 버그 툴킷(등록된 고객만 해당)을 참조하십시오.
라우터를 통과하는 대부분의 패킷이 CEF 스위치인지 확인합니다.
show interface x/x stat 명령을 사용하고 라우터가 "Route cache" 대신 "Processor"를 통해 전달한 패킷 및 바이트 수를 결정합니다. "Route Cache"에는 Fast-Switched 패킷과 CEF-switched 패킷이 모두 포함됩니다.
router#show interface stats FastEthernet0/0 Switching path Pkts In Chars In Pkts Out Chars Out Processor 95084 26211621 33493 3386174 Route cache 24581 1132797 24542 13297583 Distributed cache 0 0 0 0 Total 119665 27344418 58035 16683757
show ip cache 명령을 사용하여 IP 캐시 항목이 있는지 확인합니다. 이는 패킷이 고속 스위칭 경로를 따르는지 나타냅니다.빠른 스위칭은 온디맨드 경로 캐시를 기반으로 구축되어 라우터를 통해 패킷 전달을 가속화합니다.인터페이스 하드웨어에서 실행되는 드라이버 코드는 제어를 일시적으로 고속 스위칭 코드로 전송합니다. 이 코드는 경로 캐시에서 프레임을 검색하고 이전에 전송된 패킷에서 생성된 기타 정보를 검색합니다.경로 캐시에 항목이 포함되어 있으면 고속 스위칭 코드는 패킷을 대상 인터페이스로 직접 보내려고 시도합니다.
router#show ip cache IP routing cache 0 entries, 0 bytes 0 adds, 0 invalidates, 0 refcounts Minimum invalidation interval 2 seconds, maximum interval 5 seconds, quiet interval 3 seconds, threshold 0 requests Invalidation rate 0 in last second, 0 in last 3 seconds Prefix/Length Age Interface Next Hop
이 단계에서는 CEF를 사용하여 패킷이 전달되고 있는지 확인하기 위한 보다 구체적인 절차를 간략하게 설명합니다.
ip cef 명령으로 CEF를 활성화합니다.
clear ip cache 명령을 실행하여 고속 스위치 캐시 항목을 지웁니다.
트래픽 스트림을 시작합니다.
show ip cache 명령을 실행합니다.패킷이 CEF 스위치드 상태이므로 빠른 스위치드 캐시에 항목이 표시되지 않는지 확인합니다.
show interface stats 명령을 실행하고 경로 캐시 인바운드에 대한 증분 적중을 확인합니다.
참고: 경로 캐시 카운터에는 고속 스위치드 패킷과 CEF 스위치드 패킷이 모두 포함됩니다.
인바운드 인터페이스에서 no ip route-cache cef 명령을 사용하여 CEF를 비활성화합니다.
show interface stats 명령을 실행하고 경로 캐시에 대한 증분 적중 수를 확인합니다.
show ip cache 명령을 실행하고 Cisco IOS가 고속 스위칭으로 되돌아온 이후 항목이 표시되는지 확인합니다.
고속 스위칭을 비활성화하려면 아웃바운드 인터페이스에서 no ip route-cache 명령을 실행합니다.일치하는 인바운드 인터페이스의 패킷은 프로세스 스위칭됩니다.
참고: 트래픽이 많은 네트워크에서는 프로세스 스위칭을 구성하지 않는 것이 좋습니다.
라우터 인터페이스에서 CEF가 활성화되었음을 확인하고 대부분의 패킷이 CEF 스위칭되지 않았음을 확인한 경우 Cisco TAC(Technical Assistance Center)에 문제를 보고할 때 이 명령을 캡처합니다.
참고: 디버그 명령을 실행하기 전에 디버그 명령에 대한 중요 정보를 참조하십시오.
show cef interface x/x - CEF 관련 인터페이스 정보를 표시합니다.
show ip cef prefix - FIB(Forwarding Information Base)에 접두사 엔트리를 표시합니다.
show adjacency interface detail - 인접성을 통해 확인된 재귀적 및 직접 접두사를 표시합니다.
show cef not-cef-switched - 어떤 패킷이 CEF-switched가 아닌 지 표시합니다.
debug ip cef drop - CEF 삭제 패킷에 대한 디버그 정보를 표시합니다.
입력 인터페이스는 패킷이 사용하는 Cisco IOS 스위칭 경로를 결정합니다.특정 인터페이스에서 스위칭 메서드를 활성화하거나 비활성화할 때 이러한 thumb 규칙을 고려하십시오.
수신 인터페이스 | 발송 인터페이스 | 스위칭 방법 |
---|---|---|
CEF | 프로세스 | CEF |
프로세스 | CEF | 빠름 |
프로세스 | 고속 스위칭(IP 경로 캐시) | 고속 스위칭 |
CEF | 고속 스위칭 | CEF |
즉, 패킷이 CEF 스위칭되도록 하려면 수신 인터페이스에서 CEF를 활성화해야 합니다.CEF는 입력에 대한 전달 결정을 내리기 때문에 CEF를 비활성화하려면 인그레스 인터페이스에서 no ip route-cache cef 명령을 사용합니다.반면, Cisco IOS는 패킷을 전환한 후 고속 스위칭 캐시 엔트리를 구축하므로, 프로세스 스위치 인터페이스에서 들어오고 고속 스위치드 인터페이스를 통해 나가는 패킷이 빠르게 스위칭되므로, 이그레스 인터페이스에서 no ip route-cache 명령을 사용하여 고속 스위칭을 비활성화합니다.이러한 트래픽 유형은 CEF 스위칭되지 않습니다.
스위칭 캐시에 항목이 없는 패킷
라우터로 향하는 패킷
브로드캐스트 트래픽
옵션이 있는 IP 패킷
프로토콜 변환이 필요한 패킷
암호화된 트래픽
"punt"라는 용어는 다음 가장 빠른 스위칭 수준으로 패킷을 "down"하는 인터페이스의 디바이스 드라이버에 의한 작업을 설명하기 위해 Cisco에서 정의합니다.이 목록은 기본 Cisco IOS 스위칭 방법의 순서를 정의합니다(가장 빠른 것부터 가장 느린 것까지).
분산 CEF
CEF
고속 스위칭
프로세스 스위칭
다음과 같은 조건에서 펀트가 발생합니다.
다음 하위 수준이 올바른 경로를 생성하지 않았거나 CEF의 경우 유효한 인접성을 생성하지 않았습니다.즉, CEF 조회 프로세스가 전달 정보 기반에서 유효한 항목을 찾지 못하면 패킷은 사용 가능한 다음 스위칭 경로로 펀딩되거나 삭제됩니다.
특정 기능 또는 레이어 2 캡슐화는 최저 수준에서 지원되지 않습니다.CEF가 특정 기능을 지원하는 경우 패킷의 소유권이 CEF "기능 경로"의 소프트웨어 루틴 집합을 통해 전달됩니다.
기능을 사용하려면 특수 처리가 필요합니다.
일부 출력 기능이 CEF에서 지원되지 않는 경우 CEF의 강력한 인접성이 설치됩니다.CEF는 모든 패킷을 전환하기 위해 이러한 인접성으로 이동하는 모든 패킷을 다음 최상의 스위칭 모드로 푸시합니다.
center#show ip cef 45.0.0.0 45.0.0.0/8, version 184, 0 packets, 0 bytes via 1.1.1.1, Tunnel0, 0 dependencies next hop 1.1.1.1, Tunnel0 valid punt adjacency CEF Packets passed on to next switching layer Slot No_adj No_encap Unsupported Redirect Receive Bad_ttl Options RP 0 0 0 0 5700 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0
불완전한 인접성이 있는 경우 CEF는 라우터가 전체(다른 모든 스위칭 경로 포함)로 인해 인접 노드에 연결하는 방법을 모르는 것으로 간주합니다.ARP(Address Resolution Protocol)와 같은 일부 확인 프로토콜을 시작하기 위해 스위칭을 처리할 패킷을 푸시합니다. 그러면 인접성이 나중에 완료됩니다.이 경우 CEF는 패킷의 홍수를 방지하기 위해 다음 스위칭 경로로 2초마다 패킷 하나를 펀트합니다.따라서 이러한 상황에서 IP 주소에 대한 ping이 약 50%에 실패하고 "!..!.!.!!.!"이 표시됩니다. ping 패턴이 조건은 show ip route 명령 정보와 특정 IP 주소에 대한 show ip cef 명령 정보의 차이점에 따라 CEF 테이블이 손상된 경우에도 발생합니다.
참고: GSR(Gigabit Switch Router)에서 LC(Line Card)는 CEF 내에서 ICMP(Internet Control Message Protocol) 에코 응답을 생성합니다.패킷이 GSR 로컬 주소 중 하나로 이동되지 않을 경우 어떤 프로세스도 관련되지 않습니다.사용하는 LC에 따라 하드웨어 또는 dCEF에서 인터럽트 중 하나를 통해 직접 전환됩니다.
GSR에서는 고속 스위칭 및 프로세스 스위칭을 사용할 수 없습니다.목적지 접두사를 인바운드 LC 테이블의 전달 항목으로 확인할 수 없는 경우 패킷이 삭제됩니다.인접 디바이스와 일치하는 패킷만 GRP(Gigabit Routing Processor)에 펀딩됩니다. 또한 GSR에서 LC CPU는 기능을 위해 GRP에 패킷을 푸시하지 않으며, LC는 ICMP 도달 불가(no ip unreachables 명령이 구성되지 않은 경우)를 전송합니다. GSR에서 GRP로 펀딩된 유일한 트래픽은 라우터의 인터페이스로 향하는 패킷이거나 라우터에서 소싱된 패킷입니다.