Computer Science 기본 지식/컴퓨터 네트워크

[네트워크] 네트워크 계층 (4) SDN 개념 / OpenFlow

로파이 2021. 1. 7. 20:44

Software Defined Network (SDN)

  • 고전적 라우팅 방식: 라우팅 알고리즘에 따라 결정된 라우팅 테이블
  • 프로그램 가능한 라우터: 중앙형 통제, 원격으로 라우터 간 전송을 제어

SDN 구조

1) 일반화된 "flow-based" 포워딩

2) control plane과 data plane의 분리

3) data plane switch를 위한 기능: 라우팅, 접근 제한, 부하 제어 등등

4) 응용 계층에서 제어 기능 구현 가능

 

OpenFlow (SDN 기반 제어)

  • OpenFlow Controller <-> Switches 제어 메세지를 위한 프로토콜
  • TCP/TLS 기반 메세지

- OpenFlow Switch 구성요소

  • flowtable: 포워딩 테이블과 비슷함. 데이터 그램을 어디로 전송할 것이냐
  • secure channel: OpenFlow는 TLS/SSL 방식으로 보안화
  • OpenFlow protocol

- controller to switch

  • configuration: 스위치 정보를 설정하거나 요청
  • read-state: flowtable 정보 혹은 전송관련 통계 정보를 요청
  • modify-state: flowtable에 대한 add, delete, modify
  • send-packet: 특정 패킷을 특정 스위치를 통해 전송하라는 명령

- switch to controller

  • flow-removed: flowtable에서 삭제된 정보
  • port status: 특정 포트에 대한 오류, 변화를 알림
  • packet-in: 패킷의 정의된 목적지가 없어 controller에게 정의를 요청

OpenFlow Table Entries

1) Rule

  • Switch 포트
  • MAC src/dst 주소
  • Eth 타입
  • VLAN id, priority
  • IP src/dst 주소, 프로토콜
  • TCP src/dst port

2) Action

  • 포트로 포워딩
  • 제어기로 포워딩
  • 패킷 드랍
  • 정상적인 전송
  • 필드값 변경 (NAT에서 IP 주소 변경)

3) Statistics

packet + byte counters

 

Match-plus-Action

장치마다 다른 일치에 따른 동작 방식 정의

  Match Action
Router longest matching with destination IP prefix forward packet out of link
Switch destination MAC address forward or flood
Firewall IP address, Port number permit or deny
NAT IP address, Port number rewrite address and port