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
      • 실무 이야기
  • 블로그 메뉴

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

    • 깃허브
  • 공지사항

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

  • 태그

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

  • 최근 글

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

티스토리툴바