소개
이 문서에서는 SDN(Software Defined Networking)을 네트워킹에 대한 새로운 접근 방식으로 설명하면서 기존 네트워크 아키텍처를 보완합니다. SDN의 원래 정의는 OpenFlow와 연결되어 있습니다.
OpenFlow SDN의 목표
다음은 OpenFlow SDN의 주요 목표입니다.
- 네트워크 확장성 향상.
- 네트워크 복잡성 감소.
- 더 우수한 애플리케이션 제어 허용
- 기능 독립성을 활성화합니다.
- 컨트롤 플레인과 데이터 플레인을 분리하고 데이터 플레인을 표준화함으로써 달성할 수 있습니다. 컨트롤 플레인은 고성능 멀티코어 서버에서 실행되는 전지현저하고 정교한 분산형 소프트웨어로 구현됩니다.
- OpenFlow는 ONF(Open Networking Foundation)의 사양으로서 플로우 기반 포워딩 인프라(스위치 모델)와 표준화된 애플리케이션 프로그래밍 인터페이스(프로토콜 정의)를 정의합니다.
- OpenFlow를 사용하면 컨트롤러가 보안 채널을 통해 스위치의 포워딩 기능을 지시할 수 있습니다. 로컬 디바이스 컨피그레이션이 OpenFlow 프로토콜의 범위를 벗어납니다.
기능 요약
다음은 수도꼭지 OpenFlow 컨트롤러입니다.
- OpenFlow 1.3 스위치(TFM- Table Feature Message 포함)
- 레이어 2 스위칭, VLAN, ACL, 레이어 3 IPv4 및 IPv6 라우팅, 고정 및 BGP 경유
- 추가 SDN 기반 기능을 지원하기 위해 네트워크에서 L2/L3 스위치의 드롭인 대체 제품으로 구축됩니다.
- OpenFlow는 완전히 다른 포워딩 패러다임이며 동일한 Catalyst 9000 하드웨어 및 소프트웨어를 사용합니다.
- 모드는 OPENFLOW와 NORMAL 간에 전환될 수 있으며, 재부팅이 필요합니다.
OpenFlow는 컨트롤러(컨트롤 플레인)와 이더넷 스위치(데이터 플레인) 간의 프로토콜입니다. 스위치에는 파이프라인에 배치된 플로우 테이블이 있으며, 이러한 플로우는 패킷을 검토하는 규칙입니다.
흐름은 다음을 지정합니다.
- 일치 기준
- 우선순위
- 패킷에 대해 수행할 작업
- 시간 초과
샘플 파이프라인:
참고: 기능 종속성은 없지만 OpenFlow 모드에서 스위치를 부팅해야 합니다. OpenFlow 모드의 사용 가능한 플랫폼, Catalyst 9000 series 스위치 - 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 security none |
보안이 설정되지 않은 컨트롤러 |
컨트롤러 ipv4 10.104.99.42 포트 6633 vrf Mgmt-vrf 보안 tls |
tls가 포함된 컨트롤러에서 전역 tls 신뢰 지점 컨피그레이션 사용 |
컨트롤러 ipv4 10.104.99.42 포트 6637 vrf Mgmt-vrf 보안 tls local-trustpoint tp-blue |
tls가 있는 컨트롤러는 로컬 tlstrustpoint 컨피그레이션을 사용하지만 전역 tlstrustpoint에서는 원격으로 이루어집니다 |
max-backoff 10 |
컨트롤러 연결이 중단될 때 OpenFlow 연결을 재시도하는 최대 시간. 기본값은 8초입니다. |
프로브 간격 10 |
OpenFlow 연결을 프로브하는 시간 간격은 유휴 상태가 되며 기본값은 5초입니다. |
속도 제한 packet_in 2000 버스트 3000 |
컨트롤러에 대한 패킷 속도 제한, 기본값은 0 |
통계 수집 간격 6 |
플로우 통계 수집 빈도, 기본값은 5sec |
datapath-id 0x1 |
구성되지 않은 기본값이 ((1<<48)인 경우 switch datapath unique-id | system-mac-addr) |
기본 누락 컨트롤러 |
어떤 흐름과도 일치하지 않는 패킷은 컨트롤러로 보낼 수 있습니다. 기본값은 drop입니다 |
로깅 흐름 수정 |
flow-mod 정보를 기본적으로 활성화되지 않은 show logging의 로그로 덤프합니다 |
tls 신뢰 지점 로컬 tp-로컬 원격 tp-remote |
보안 컨트롤러 연결에 대한 전역 tls 신뢰 지점 번호 |
문제 해결/디버깅
컨트롤러측 디버깅은 이 문서의 범위를 벗어납니다.
일반적인 플랫폼 CLI가 모두 Openflow 스위치에서 지원되는 것은 아닙니다. 디버깅 시나리오에 허용된 CLI만 선택하여 사용합니다.
기타 명령 및 참조는 이 컨피그레이션 가이드를 참조하십시오. https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/174/b_174_programmability_cg/openflow.html#id_76495
Show 명령 - IOS®
명령을 사용합니다 |
목적 |
실행 중 표시-설정 오픈플로 |
OpenFlow 실행 컨피그레이션 정보를 표시합니다. |
show openflow switch number controller |
컨트롤러에 대한 OpenFlow 에이전트 연결에 대한 정보를 표시합니다. |
쇼 오픈플로 스위치 수 플로우 목록 |
설치된 OpenFlow 흐름에 대한 정보를 표시합니다. |
쇼 오픈플로 스위치 수 포트 |
OpenFlow 에이전트 포트 상태에 대한 정보를 표시합니다. |
쇼 오픈플로 하드웨어 기능 |
테이블 수, 테이블 크기, 지원되는 일치/작업/누락과 같은 하드웨어 기능을 표시합니다. |
쇼 오픈플로 스위치 수 그룹 |
Openflow 그룹에 대한 정보를 표시합니다. |
쇼 오픈플로 스위치 수 통계 |
OpenFlow 인터페이스(rx/tx) 통계, OpenFlow 테이블 통계(테이블당 최대 플로우, 테이블당 활성 플로우, 조회 및 일치 수)를 표시합니다. |
쇼 오픈플로 스위치 수 컨트롤러 통계 |
openflow 컨트롤러 통계 정보를 표시합니다. |
Show 명령 - 하드웨어:
명령을 사용합니다 |
목적 |
show platform software fed switch active 오픈플로 상태 |
설치/성공/삭제된 메시지 수에 대한 통계를 표시합니다. |
show platform software fed switch active 오픈플로 흐름 ID |
특정 플로우의 정보를 표시합니다. |
show platform software fed switch active 오픈플로 그룹 |
플로우 그룹에 대한 하드웨어 정보를 표시합니다. |
show platform hardware fed switch active fwd 기본 자원 TCAM 이용률 |
TCAM 사용에 대한 하드웨어 정보를 표시합니다. |
show platform software fed <switch> active openflow 오류 [요약 | 이벤트 | 세부 정보] |
기록된 모든 OpenFlow 오류를 나열합니다. |
show platform software fed <switch> active openflow table [<table-id> | 매핑]
|
이 명령은 기능/일치 기능 및 테이블의 크기에 대한 테이블 id를 제공할 수 있습니다. |
show platform software fed switch active openflow 이벤트
|
각 테이블의 이벤트 목록을 플로우와 관련된 작업(추가, 삭제, 업데이트)에 대해 수행한 시간을 표시합니다. |