책 소개
요약
소프트웨어 정의 네트워크(Software Defined Networking)라는 새로운 네트워크 제어 기술에 대한 실무 중심의 소개를 제공한다. 클라우드 환경을 포함한 다양한 네트워크 환경에서의 SDN 적용 실습을 통해 소프트웨어 정의 네트워크의 실체를 직접 확인해 볼 수 있는 여러 가지 가이드를 제공하여, SDN을 통해 기존 네트워크 인프라가 어떻게 변하는지 이해하도록 도와준다. 이를 통해 독자들이 SDN을 실무에 쉽게 적용할 수 있도록 도와주는 것을 목적으로 한다.
이 책에서 다루는 내용
■ 오픈플로우(OpenFlow)와 그 구성 요소의 핵심
■ Mininet, POX, OpenDaylight을 이용한 SDN 실험환경 구축 방법
■ 나만의 실험환경 구축방법과 네트워크 애플리케이션 개발 방법
■ 오픈플로우와 플로우바이저(Flowvisor)를 이용한 네트워크 가상화
■ 클라우드 컴퓨팅 환경의 네트워킹을 위한 오픈플로우 활용법
■ 새로운 형태의 오픈플로우를 경험할 수 있는 다양한 오픈 소스 툴
이 책의 대상 독자
이 책이 오픈플로우의 주요 구성 요소와 오픈플로우를 이용한 소프트웨어 정의 네트워킹을 다루긴 하지만, 프로토콜 레퍼런스 문서가 아니라 튜토리얼 가이드이다. 네트워크 엔지니어, 네트워크 관리자, 시스템 소프트웨어 개발자, 네트워크 애플리케이션 개발자 등 오픈플로우에 대해 관심이 있는 누구나 이 책의 독자가 될 수 있다.
이 책의 구성
1장, ‘오픈플로우 소개’ 오픈플로우와 SDN 생태계에서 오픈플로우의 역할과 컴퓨터 네트워크에서 오픈플로우가 어떻게 동작하는지 소개한다. 1장에서는 실험 환경을 실제로 구성하기에 앞서 필요한 지식을 살펴본다. 플로우의 개념, 플로우 포워딩, 오픈플로우 기능, 오픈플로우 테이블이 할 수 있는 일, 오픈플로우의 기능과 한계를 다룬다.
2장, ‘오픈플로우 스위치 구현’ 현재 제공되고 있는 오픈플로우 스위치 구현을 하드웨어와 소프트웨어 구현을 포함하여 다룬다.
3장, ‘오픈플로우 컨트롤러’ 오픈플로우 스위치의 제어 주체로서 오픈플로우 컨트롤러 역할과 오픈플로우 기반 네트워크 애플리케이션 개발을 위해 제공되는 API(즉, 노스바운드 인터페이스)에 대해서 다룬다.
4장, ‘환경 구성’ 오픈플로우 스위치와 컨트롤러의 옵션을 소개한다. 또한 네트워크 애플리케이션 개발 환경에 대해 다룬다. 4장에서는 5장에서 네트워크 애플리케이션 개발을 위해 이용되는 가상 장치와 도구(예, Mininet과 와이어샤크(Wireshark))의 설치에 대해 집중한다.
5장, ‘네트워크 애플리케이션 개발’ 오픈플로우가 어떻게 네트워크 애플리케이션 개발의 기반을 제공하는지 보여주기 위해 예제 네트워크 애플리케이션(예, 학습 스위치와 방화벽)의 개발을 다룬다.
6장, ‘네트워크 슬라이싱’ 오픈플로우와 플로우바이저를 이용한 네트워크 슬라이싱을 다룬다. 미리 계획된 구성을 위해 독자가 플로우바이저를 이용해 네트워크 슬라이스를 설정하고 이용하는 방법을 이해할 수 있다.
7장 ‘클라우드 컴퓨팅에서의 오픈플로우’ 클라우드 컴퓨팅에서의 오픈플로우의 역할에 집중하며, 특히 오픈스택 뉴트론(OpenStack Neutron)의 설치와 설정을 다룬다. 뉴트론은 오픈스택 프로젝트로 오픈스택 서비스에 의해 관리되는 인터페이스 장치들(예, 가상 네트워크 인터페이스 카드들) 사이의 네트워크 연결성을 서비스(NaaS)로 제공한다.
8장 ‘오픈 소스 프로젝트’ 네트워크 엔지니어나 관리자가 상용 환경에서 활용할 수 있는 중요한 오픈 소스 프로젝트를 설명하고, 이에 대한 접근 경로를 제공한다. 이 프로젝트에서는 오픈플로우 소프트 스위치에서부터 컨트롤러와 가상화 도구, 오케스트레이션 도구, 시뮬레이션 테스팅 도구까지 매우 다양한 내용을 다룬다.
목차
목차
- 1장 오픈플로우 소개
- SDN 이해하기 - 오픈플로우 관점
- SDN/OpenFlow와 관련된 활동들
- 구성 요소
- 오픈플로우 메시지
- 컨트롤러와 스위치
- 기능 요청
- 설정
- 상태 수정
- 상태 읽기
- 패킷 전송
- 배리어
- 동기 메시지
- 헬로우
- 에코
- 벤더
- 비동기 메시지
- 패킷-인
- 플로우 제거
- 포트 상태
- 에러
- 컨트롤러와 스위치
- 노스바운드 인터페이스
- 요약
- 2장 오픈플로우 스위치 구현
- 오픈플로우 참조 스위치
- 비동기 메시지
- 대칭 메시지
- 하드웨어 구현
- 소프트웨어 기반 스위치
- Mininet을 이용한 오픈플로우 실험
- Mininet 시작하기
- Mininet으로 실험하기
- 요약
- 오픈플로우 참조 스위치
- 3장 오픈플로우 컨트롤러
- SDN 컨트롤러
- 기존 구현
- NOX와 POX
- POX 애플리케이션 실행하기
- NodeFlow
- 플러드라이트
- OpenDaylight
- 특별한 컨트롤러
- 요약
- 4장 환경 구성
- 오픈플로우 실험 환경 이해하기
- 외부 컨트롤러
- 오픈플로우 실험환경 완성하기
- OpenDaylight
- ODL 컨트롤러
- ODL 기반 SDN 실험환경
- 요약
- 오픈플로우 실험 환경 이해하기
- 5장 네트워크 애플리케이션 개발
- 네트워크 애플리케이션 1 – 이더넷 학습 스위치
- 학습 스위치 구축하기
- 네트워크 애플리케이션 2 – 간단한 방화벽
- 네트워크 애플리케이션 3 – OpenDaylight에서의 간단한 포워딩
- 요약
- 네트워크 애플리케이션 1 – 이더넷 학습 스위치
- 6장 네트워크 슬라이싱
- 네트워크 가상화
- 플로우바이저
- 플로우바이저 API
- FLOW_MATCH 구조
- 슬라이스 액션 구조
- 플로우바이저 슬라이싱
- 요약
- 7장 클라우드 컴퓨팅에서의 오픈플로우
- 오픈스택과 뉴트론
- 오픈스택 네트워킹 구조
- 뉴트론 플러그인
- 요약
- 8장 오픈 소스 프로젝트
- 스위치
- Open vSwitch
- 판토우
- 인디고
- LINC
- XORPlus
- OF13SoftSwitch
- 컨트롤러
- 비콘
- 플러드라이트
- 마에스트로
- 트레마
- FlowER
- 류
- 기타
- 플로우바이저
- 에이비어
- 라우트플로우
- OFlops과 Cbench
- OSCARS
- 트위스터
- FortNOX
- Nettle
- Frenetic
- OESS
- 요약
- 스위치
- 찾아보기