데블스캠프2018/썩을_더럽게_느리네 (rev. 1.3)
OSI 7 Layer ¶
- Application : 사용자에게 유용한 데이터
- Presentation : 데이터 포맷, 압축, 암호화
- Session : 인증 권한, 세션 복원
- Transport : host 사이(end-to-end)의 통신
- Network : Addressing, Routing
- Data Link : 리크로 연결된 노드 사이
- Physical : 물리적인 신호
구현 위치 ¶
- Application(process) : Application, Presentation, Session
- Operating System : Transport, Network
- Network Adapter : Data Link, Physical
- 실제로는 5단계로 많이 구현 : Presentation, Session 을 빼고 나머지 계층
- Router 에서는 3계층까지만 필요함
Router ¶
- 네트워크는 다수의 router들로 구성되어있음
- 패킷을 받은 라우터는 적절하게 다음 라우터를 선택
- Router가 하는 일
- Control Plane : 경로 설정, 관리, 제어
- Management Plane : 동작 상태, 성능 관리
- Data Plane : 패킷 송수신 관련
SDN ¶
- Software Defined Network
- 흔히 사용되는 분산 구조와는 다른 구조로 접근
- 소프트웨어 영역인 Control Plane 을 네트워크 기기로부터 분리
- 각 네트워크 노드들은 controller와 연동하기 위한 API만 가짐
- Contoller가 가지는 API를 통해 다양한 application 제공 가능
- 장점
- 직접 프로그래밍이 가능하다
- 중앙 관리가 쉽다
- vendor neutral
- 경쟁 발전
- NFV 가용성
SDN Layers ¶
- Software Defined == API enabled
- Application Layer
- 사용자가 정의할 수 있는 다양한 네트워크 부가기능을 구현하는 layer
- network services(FW, LB, Security)
- virtual network overlay
- traffic engineering
- application-aware packet computation
- 필요에 따라 추가
- Control Layer
- SDN controller 가 위치한 layer
- 고성능 범용 서버에 controller를 설치 빠르 네트워크 연산을 지원하게 함
- data plane resource management
- common services and libraries
- topology
- state abstraction
- Infrastructure Layer
- 다수의 실제 또는 가상 네트워크 장비들
- packet forwarding
- packet manipulation
OpenFlow ¶
- 최초의 Controller- Data Plane 인터페이스
- OpenFlow를 사용하기 위해서는 HW에서 지원 해야함
- OpenFlow 를 지원하는 network device는 flow table을 가짐
- packet 처리시, 해당 packet에 대한 제어 정보를 flow 를 처리, 제어 정보가 존재하지 않으면 openflow를 통해서 요청
SDN, 어디에 써먹을까? ¶
- 데이터 센터에 흔하게 나타나는 East-West 트래픽에 대한 처리
- Flat Network : 네트워크 홉 최소화
- Fat Tree : 대규모 서버 Access 환경 및 최적 경로
- Fast Switching : 낮은 네트워크 대기 시간
- Simplicity : 구성, 운영, 관리 용이성
- 사용 예시
- google 내부 데이터 서버
- NTT 의 IaaS Platform 내의 network virtualization 을 SDN 으로 구성
NFV : Network Function Virtualization ¶
- 기존 네트워크 서비스들은 특정 하드웨어에서 구현, 제품으로 제공 됨
- NFV 에서는 기존 하드웨어 장비들을 가상화하고 소프트웨어 형태로 구현하여, 특정 하드웨어 대신 범용 서버에서 작동할 수 있도록 함
- 물리적 자원 최소화, 효율성 증가, 시스템 복잡성 감소