SDN

2021. 11. 1. 23:30·Network
반응형

 

2023. 02.03 17:00 복습 시작

SDN

SDN은 Software defined Network의 약어다.

SDN은 개방형 API(오픈플로우)를 통해 네트워크의 트래픽 전달 동작을 소프트웨어 기반 컨트롤러에서 제어/관리하는 접근방식이다.

트래픽 경로를 지정하는 컨트롤 평면과 트래픽 전송을 수행하는 데이터 평면이 분리되어 있다.
따라서 네트워크의 세부 구성정보에 얽매이지 않고 요구사항에 따라 네트워크를 관리할 수 있다.

SDN

SDN 구조의 4가지 특징

  • 플로우 기반 포워딩: 패킷 포워딩 규칙은 스위치의 플로우 테이블에 기록되며, SDN에서는 모든 네트워크 스위치들의 플로우 테이블 항목들을 계산하고 관리, 설치하는 일들이 모두 SDN 제어 평면의 임무다.
  • 데이터 평면과 제어 평면의 분리: 데이터 평면은 네트워크 스위치들로 구성되며, 자신들의 플로우 테이블 내용을 기반으로 '비교와 실행'을 수행한다. 제어 평면은 서버와 스위치들의 플로우 테이블을 결정, 관리하는 소프트웨어로 이루어진다.
  • 네트워크 제어 기능이 데이터 평면 스위치 외부에 존재: 전통적인 라우터들과는 달리, 이 소프트웨어가 네트워크 스위치로부터 멀리 떨어진 별도의 서버에서 수행된다. 
  • 프로그램이 가능한 네트워크: 제어 평면에서 수행중인 네트워크 제어 응용을 통해 네트워크를 프로그래밍할 수 있다.

SDN 데이터 평면

  • 스위치 흐름 테이블 계산, 컨트롤러에 의해 설치된다. 테이블 기반 스위치 제어를 위한 API(예: OpenFlow)
  • 컨트롤러와 통신하기 위한 프로토콜(예: OpenFlow)

SDN 제어 평면

SDN 제어 평면은 SDN 컨트롤러와 SDN 네트워크 제어 응용 계층이라는 두 가지 구성요소로 나뉜다.

SDN 컨트롤러

  • 통신 계층: SDN 컨트롤러와 제어받는 네트워크 장치들 사이의 통신 역할을 맡는다.
  • 네트워크 전역 상태 관리 계층: 종단간 포워딩, 부하 균형,  특별한 방화벽 기능을 구현하기 위해서 모든 스위치의 플로우 테이블을 설정하는 일 같은 네트워크 전역 상태를 관리한다.
  • 네트워크 제어 응용 계층과의 인터페이스: 컨트롤러는 '노스바운드' 인터페이스를 통해서 네트워크 제어 응용들과 상호작용한다.

SDN 네트워크 제어 응용 계층 역할

  • 제어의 중심 : SND 컨트롤러에서 제공하는 API인 하위 서비스를 사용하여 제어 기능을 구현한다.
  • Unbundled: 라우팅 벤더 또는 SDN 컨트롤러와 다른 타사에서 제공할 수 있다.

Openflow

오픈플로우 프로토콜은 SDN 컨트롤러와 SDN으로 제어되는 스위치 또는 오픈플로우 API를 구현하는 다른 장치와의 사이에서 동작한다.

컨트롤러에서 제어되는 스위치로 전달되는 중요한 메시지들

  • 설정: 이 메시지는 컨트롤러가 스위치의 설정 파라미터들을 문의하거나 설정할 수 있도록 한다.
  • 상태 수정: 이 메시지는 컨트롤러가 스위치 플로우 테이블의 엔트리를 추갇/제거 또는 수정하거나 스위치 포트의 특성을 설정하기 위해 사용된다.
  • 상태 읽기: 이 메시지는 컨트롤러가 스위치 플로우 테이블과 포트로부터 통계 정보와 카운터 값을 얻기 위해 사용된다.
  • 패킷 전송: 이 메시지는 컨트롤러가 제어하는 스위치의 지정된 포트에서 특정 패킷을 내보내기 위해 사용된다. 이 메시지 자체는 페이로드 부분에 보낼 패킷을 포함한다.

SDN으로 제어되는 스위치에서 컨트롤러로 전달되는 중요한 메시지들

  • 플로우 제거: 이 메시지는 컨트롤러에게 어떤 플로우 엔트리가 시간이 만료되었거나 상태 수정 메시지를 수신한 결과로 삭제되었음을 알린다.
  • 포트 상태: 이 메시지는 스위치가 컨트롤러에게 포트의 상태 변화를 알리기 위해 사용된다.
  • 패킷 전달: 스위치 포트에 도착한 패킷 중에서 플로우 테이블의 어떤 엔트리와도 일치하지 않는 패킷은 처리를 위해 컨트롤러에게 전달된다. 어떤 엔트리와 일치한 패킷 중에서도 일부는 그에 대한 작업을 수행하기 위해 컨트롤러에게 보내지기도 한다. 이 메시지는 그러한 패킷을 컨트롤러에게 보내기 위해 사용한다.

 

 

2023. 02.03 19:00 정리

 

참고자료

컴퓨터 네트워킹 하향식 접근 제 7판

반응형
'Network' 카테고리의 다른 글
  • TCP
  • Transport Layer
  • IP, NAT
  • 네트워크 레이어
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    spring boot
    test
    스프링
    SQL
    mysql
    JPA
    docker
    container
    트랜잭션
    Java
    프록시
    토비의 스프링
    AWS
    코딩 #개발자 #노마드북클럽 #노개북
    객체지향
    자바
    스프링 부트
    도커
    innodb
    컨테이너
    spring
    데이터베이스
    운영체제
    인덱스
    ORM
    redis
    AOP
    리눅스
    객체
    spring mvc
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
SDN
상단으로

티스토리툴바