Software-Defined Networking (SDN) Note
소프트웨어 정의 네트워킹은 개별 기능을 뜻하는 것이 아니라, 효율적인 네트워킹을 위해 새롭게 구현되는 전체적인 ‘틀(Framework)’를 뜻한다.
SDN의 특징
API를 활용하여 네트워크 구성 요소를 프로그래밍을 통해 관리가 가능하고, 제어계층(control plane)과 데이터계층(data plane)을 분리하며, 일반적인 구매가 가능한 범용 하드웨어에 적용하여, 전체적인 네트워크 경로 및 구성을 사용자가 원하는 대로 구성하도록 하는 하나의 커다란 틀을 의미한다.
1. Data Plane (Forwarding Plan)
패킷 송수신 (수백만~수억 패킷/초), 전용 하드웨어 ASIC
주요기능
- L2 Switching
- L3 Switching (IPv4, IPv6)
- MPLS Forwarding
- VRF Forwarding
- QoS Marking/Classification/Policing
- Netflow (수집)
- Security Access Control Lists
2. Control Plane
패킷 경로 설정, 관리 및 제어기능 (수천 패킷/초), CPU, S/W
주요기능
- Routing Protocol
- Spanning Tree
- Netflow Data Export
3. Management Plane
동작 상태 및 성능 관리, CPU, S/W
주요기능
- Syslog
- AAA
- CLI
- SNMP
현재 네크워크의 문제점
- 성능적 측면
- 관리적 측면
- 확장적 측면
- 데이터 센터
- 시장 환경 변화
- 통신 환경 변화
- 하드웨어 환경 변화
Questions?
- 라우팅 없이 통신할 수는 없을까?
- 스패팅트리의 차단 없이 모든 회선을 사용할 수는 없을까?
- 보안 검사는 단 한번만 할수는 없을까?
- 트래픽 종류별로 경로를 달리할 수는 없을까?
- 새로운 기능을 바로 적용할 수는 없을까?
- 새로운 네트워크를 즉시 생성할 수는 없을까?
- 하드웨어 교체없이 기능을 추가할 수는 없을까?
- 기능 테스트를 실제 네트워크에서 해볼수 없을까?
- 운영체제 버그를 바로 고칠순 없을까?
- 내가 원하는 기능만 쓸 수는 없을까?
- 시스코 IOS를 주니퍼 장비에서 쓸 수 없을까?
- 내 맘대로 할 수 있는 건 없을까?
ONOS Service APIs
“SouthBound”
- Device
- Link
- Host
- Statistics
- Flow Rule
- Packet
- Resource
- Providers
“Core”
- Core
- Application
- Cluster
- Communication
- Event Delivery
- Storage
- Leadership
- Mastership
“Northbound”
- Topology
- Path
- Intent
Intent Framework
- Programming
- Abstraction
- IntentsCompilers
- Installers
- Execution Framework
- Intent Service
- Intent Store
Intents
- Provide high-level interface that focuses on what should be done rather than how it is specifically programmed
- Abstract network complexity from applications
- Extend easily to produce more complex functionality through combinations of other intents
Sharding and Replication
- 데이터를 분산하는 형식에는 샤딩과 복제 두 가지가 있다.
- 샤딩은 여러 서버에 데이터를 나눠 분산한다. 각 서버는 전체 데이터의 부분 집합을 저장하며 같은 데이터는 한 서버에서만 찾을 수 있다.
- 복제는 여러 서버에 데이터를 복사하므로, 같은 데이터를 여러 곳에서 찾을 수 있다.
- 두 기법 중 하나를 사용할 수도, 두가지 모두 사용할 수도 있다.
- 복제는 두 가지 형태가 있다.
- 마스터-슬레이브 복제에서 마스터는 데이터의 원본 출처가 되어 쓰기를 처리하고 슬레이브는 마스터와 데이터를 동기화하고 읽기를 처리한다.
- 피어-투-피어 복제는 모든 노드에 쓰기를 허용한다. 노드는 데이터 복사를 동기화하기 위해 조율한다.
- 마스터-슬레이브 복제는 업데이트 충돌 발생을 줄인다. 피어-투-피어 복제는 한 노드에 모든 쓰기 부담을 지우지 않도록 단일 실패 지점(single point of failure)이 생기지 않도록 한다.