네트워크 플로우 관리 시 서로 다른 운영체제, 명령어 인터페이스, 그리고 구성 루틴을 갖는 여러 업체의 스위치와 라우터로 구성된 네트워크를 프로그래밍을 할 수 있는가? 오픈플로우(OpenFlow) 프로젝트는 그러한 것을 가능하게 하는 것이 목표이다.
오픈플로우는 스탠포드 대학과 캘리포니아 대학 버클리 캠퍼스가 지난 6년 간 협력해 탄생한 오픈소스 프로젝트이다. 오픈플로우는 SDN(Software Defined Network)를 가능하게 하는 프로그램 인터페이스와 프로토콜을 제공하고, 사용자들이 플로우를 정의할 수 있고, 기반 하드웨어에 관계 없이 소프트웨어를 통해 플로우가 어떤 경로의 네트워크를 선택할 것인가를 결정할 수 있도록 해준다는 것을 의미한다.
오픈플로우는 인프라(스위치와 라우터)와는 관계없이 네트워크 소유주, 개별 사용자 또는 개별 애플리케이션이 트래픽 플로우가 흐르는 방향을 통제할 수 있도록 해준다. 그리고 이런 기능을 통해 사용자들은 가용 대역폭, 낮은 지연, 혹은 혼잡도, 그리고 낮은 홉수의 경로를 찾는 정책을 개발할 수 있다.
오픈 네트워킹 재단에 참여 중인 여러 대형 업체들은 오픈플로우를 통해 가능해진 SDN에 대해 호평을 쏟아내고 있다. 이들 업체와 다른 참여 업체들은 기기와 가상머신들로 인해 네트워크 토폴로지가 복잡하고 확대된 데이터센터, 프라이빗 클라우드, 그리고 캠퍼스 LAN 등의 로드밸런싱, 플로우 제어, 가상 네트워킹에 오픈 플로우가 특히 유용하다고 주장한다.
그리고 몇몇 업체들은 다양한 비호환 라우터와 스위치로 구성된 경우에도 네트워크 제어를 통합할 수 있다는 점에서 오픈플로우는 네트워크를 위한 하이퍼바이저와 같다고 말하기도 한다.
그러나 오픈플로우에 회의적인 입장을 보이는 사람들도 있다. 그들은 오픈플로우가 해결해야 할 것이 여전히 많다고 주장한다. 오픈플로우는 매우 커다란 네트워크에 적용되기 위한 규모의 문제, 폴트 톨러런스, 표준 라우팅 프로토콜에 대한 지원이 부족하다는 사람들도 있고, 오픈플로우가 제공하는 프로그램 상의 장점과 흐름 제어는 이미 확장 가능 스위치와 수용적인 API를 갖는 라우터 운영체제에서 이미 제공되고 있다고 주장하는 사람들도 있다.
그리고 수 년 전부터 시장에서 이용되고 있는 프로그래머블 ASIC과 네트워크 프로세서도 오픈플로우와 동일한 기능을 잠재적으로 제공할 수 있다고 주장하는 사람들도 있다. 여러 업체의 여러 스위치가 가지고 있는 포워딩 테이블을 공개함으로써 보안의 문제도 또한 발생할 수 있다.
하지만 네트워크 ASIC 제조업체들은 오픈플로우에 대해 우려하기 보다는 오히려 오픈플로우를 수용하고 자세를 취하고 있다.