소개
이 문서에서는 SDN(Software Defined Networking)을 네트워킹에 대한 새로운 접근 방식으로 설명하며 기존 네트워크 아키텍처를 보완합니다.SDN의 원래 정의는 OpenFlow와 연결됩니다.
OpenFlow SDN 목표
다음은 OpenFlow SDN의 핵심 목표입니다.
- 네트워크 확장성 향상.
- 네트워크 복잡성 감소.
- 애플리케이션 제어를 강화합니다.
- 기능 독립성을 활성화합니다.
- 컨트롤 플레인과 데이터 플레인을 분리하고 데이터 플레인을 표준화함으로써 달성할 수 있습니다.컨트롤 플레인은 고성능 멀티코어 서버에서 실행되는 지능적이고 정교한 분산 소프트웨어로 구현됩니다.
- OpenFlow는 ONF(Open Networking Foundation)의 사양으로서 흐름 기반 포워딩 인프라(스위치 모델)와 표준화된 애플리케이션 프로그래밍 인터페이스(프로토콜 정의)를 정의합니다.
- OpenFlow를 사용하면 컨트롤러가 보안 채널을 통해 스위치의 전달 기능을 전달할 수 있습니다.로컬 디바이스 컨피그레이션이 OpenFlow 프로토콜의 범위를 벗어났습니다.
기능 요약
Fopuet OpenFlow 컨트롤러입니다.
- OpenFlow 1.3 스위치(TFM- 테이블 기능 메시지 포함)
- 레이어 2 스위칭, VLAN, ACL, 레이어 3 IPv4 및 IPv6 라우팅, 정적 및 BGP를 통해
- 추가 SDN 기반 기능을 활성화하기 위해 네트워크에서 L2/L3 스위치에 대한 드롭인 교체용으로 구축됩니다.
- OpenFlow는 완전히 다른 포워딩 패러다임이며 동일한 Catalyst 9000 하드웨어 및 소프트웨어를 사용합니다.
- OPENFLOW와 NORMAL 간에 모드를 전환할 수 있으므로 재부팅해야 합니다.

OpenFlow는 컨트롤러(컨트롤 플레인)와 이더넷 스위치(데이터 플레인) 간의 프로토콜입니다. 스위치에는 파이프라인에 정렬된 플로우 테이블이 있으며 플로우는 패킷을 검사하는 규칙입니다.
플로우는 다음을 지정합니다.
- 일치 기준
- 우선 순위
- 패킷에서 수행할 작업
- 시간 초과
샘플 파이프라인:

참고:기능 종속성이 없지만 OpenFlow 모드에서 스위치를 부팅해야 합니다.OpenFlow 모드에서 사용 가능한 플랫폼, Catalyst 9000 시리즈 스위치 - 9300/9400/9500/9500-H
Cisco 구현(Cat9k의 OpenFlow 모드)
일반 및 OpenFlow 작업에 동일한 이미지가 사용됩니다.
스위치는 OpenFlow 모드여야 합니다.
ott-of-c9k-210#show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
All the front panel ports are openflow ports (no hybrid mode)
Changing the boot mode (reload mandatory)
ott-of-c9k-210(config)#boot mode openflow
스위치를 다시 로드합니다.
스위치가 Openflow 모드인지 확인합니다.
of-switch# show boot mode
System initialized in openflow forwarding mode
System configured to boot in openflow forwarding mode
“no boot mode openflow” followed by reboot reverts to normal mode.
CAT9300#show run openflow
feature openflow
openflow
switch 1 pipeline 1
controller ipv4 10.104.99.42 port 6653 vrf Mgmt-vrf security none
controller ipv4 10.104.99.42 port 6633 vrf Mgmt-vrf security tls
controller ipv4 10.104.99.42 port 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue
현재 총 8개의 컨트롤러가 지원됩니다!
IPV6 컨트롤러 컨피그레이션 및 작업도 지원됩니다.
OpenFlow의 명령 옵션 |
목적 |
스위치 1 파이프라인 1 |
스위치 1과 파이프라인 1은 C9k에서 유일한 선택 사항입니다. |
컨트롤러 ipv4 10.104.99.42 포트 6653 vrf Mgmt-vrf 보안 없음 |
보안이 없는 컨트롤러 |
컨트롤러 ipv4 10.104.99.42 port 6633 vrf Mgmt-vrf security tls |
tls를 사용하는 컨트롤러, 전역 tls trustpoint 컨피그레이션 사용 |
컨트롤러 ipv4 10.104.99.42 포트 6637 vrf Mgmt-vrf security tls local-trustpoint tp-blue |
tls를 사용하는 컨트롤러, 로컬 tlstrustpoint 컨피그레이션을 사용하지만 전역 tlstrustpoint에서 원격 |
최대 백오프 10 |
컨트롤러 연결이 끊길 때 OpenFlow 연결을 재시도할 최대 시간, 기본값은 8초입니다. |
프로브 간격 10 |
연결을 사용하여 OpenFlow 연결을 프로브하는 시간 간격은 유휴 상태가 되며 기본값은 5초입니다. |
rate-limit packet_in 2000 burst 3000 |
컨트롤러에 대한 패킷 속도 제한, 기본값 0 |
통계 수집 간격 6 |
플로우 통계를 수집하는 빈도이며 기본값은 5초입니다. |
데이터 경로 ID 0x1 |
스위치 데이터 경로 unique id - 구성되지 않은 기본값이 ((1<<48>) | system-mac-addr) |
기본 누락 컨트롤러 |
어떤 흐름과도 일치하지 않는 패킷은 컨트롤러에 펀딩될 수 있습니다.기본값은 |
로깅 플로우 수정 |
flow-mod 정보를 show logging의 로그로 덤프합니다. 기본적으로 활성화되지 않습니다. |
tls trustpoint 로컬 tp-local remote |
보안 컨트롤러 연결을 위한 전역 tls 신뢰 지점# |
문제 해결/디버깅
컨트롤러 측 디버깅이 이 문서의 범위를 벗어났습니다.
일반적인 플랫폼 CLI가 모두 Openflow 스위치에서 지원되지는 않습니다.디버깅 시나리오에 허용된 CLI만 선택하고 사용합니다.
다른 명령 및 참조는 이 config-guide를 참조하십시오. https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/174/b_174_programmability_cg/openflow.html#id_76495
명령 표시 - IOS®
명령 |
목적 |
실행 중 표시-구성 openflow |
실행 중인 OpenFlow 컨피그레이션 정보를 표시합니다. |
show openflow switch number controller |
컨트롤러에 대한 OpenFlow 에이전트 연결에 대한 정보를 표시합니다. |
표시 openflow 스위치 번호 흐름 목록 |
설치된 OpenFlow 흐름에 대한 정보를 표시합니다. |
표시 openflow 스위치 번호 포트 |
OpenFlow 에이전트 포트 상태에 대한 정보를 표시합니다. |
표시 openflow 하드웨어 기능 |
테이블 수, 테이블 크기, 지원되는 일치/작업/누락 등의 하드웨어 기능을 표시합니다. |
표시 openflow 스위치 번호 그룹 |
Openflow 그룹에 대한 정보를 표시합니다. |
표시 openflow 스위치 번호 통계 |
OpenFlow 인터페이스(rx/tx) 통계, OpenFlow 테이블 통계(테이블당 최대 플로우, 테이블당 활성 플로우, 조회 및 일치 수)를 표시합니다. |
표시 openflow 스위치 번호 컨트롤러 통계 |
openflow 컨트롤러 통계 정보를 표시합니다. |
명령 표시 - 하드웨어:
명령 |
목적 |
show platform software fed switch active openflow 상태 |
설치/성공/삭제된 메시지 수에 대한 통계를 표시합니다. |
show platform software fed switch active openflow 흐름 ID |
특정 플로우의 정보를 표시합니다. |
show platform software fed switch active openflow 그룹 |
플로우 그룹에 대한 하드웨어 정보를 표시합니다. |
show platform hardware fed switch active fwd-asic 자원 트캠 사용률 |
TCAM 사용에 대한 하드웨어 정보를 표시합니다. |
show platform software fed <switch> active openflow error [brief | 이벤트 | 세부 정보] |
기록된 경우 모든 OpenFlow 오류를 나열합니다. |
show platform software fed <switch> active openflow table [<table-id> | 매핑]
|
이 명령은 기능/일치 기능 및 테이블의 크기에 대한 테이블 ID를 제공할 수 있습니다. |
show platform software fed switch active openflow 이벤트
|
플로우(추가, 삭제, 업데이트)와 관련된 작업에 소요된 시간과 함께 각 테이블의 이벤트 목록을 표시합니다. |