본문 바로가기

Network/현대 네트워크 기초

6주차 정리

728x90
반응형

SDN 접근 방식

 

요구 사항)

적응력 - 네트워크는 조건에 따라 동적으로 조절 및 반응

자동화 - 관련 설정을 자동으로 변경 필요

유지보수성 - 기능 추가 시 영향 최소화 하고 매끄럽게 진행

모델 관리 - 네트워크를 모델 수준으로 관리 필요

이동성 - 모바일 기기나 가상 서버에 대한 이동성을 지원

통합된 보안 - 보안 기능은 핵심 서비스 형태로 통합

주문형 확장 - 네트워크의 규모, 처리량을 높이거나 줄일 수 있어야 한다.

 

SDN 구조)

 

네트워킹 기술 진화 과정 -> 개방형 접근 방식으로 진화

x86 서버와 동일한 수준으로 네트워크 장비 제어 

 

데이터 평면 - 패킷 전달에 집중(물리 스위치, 가상 스위치)

제어 평면 - 경로 설정, QoS와 QoE에 맞게 라우터 정책 파라미터와 우선순위 지정, 변화하는 트래픽에 대한 지능적 동작(오픈 플로우)

오픈 인터페이스 - 스위칭 하드웨어 내부 구현에 세부사항과 관계없이 일정한 인터페이스 제공

 

사우스 바운드 API: 대표적으로 오픈 플로우가 있다.

노스 바운드 API: 대표적으로 REST API가 있다.

이스트/웨스트 바운드: 고가용성을 지원을 위해 여러 컨트롤러가 협업하는 수평 API

SDN 어플리케이션: 컨트롤러에 의한  네트워크에 대한 추상화된 뷰를 활용, 의사 결정 수행(에너지 효율 네트워킹, 보안 모니터링, 접근 제어, 네트워크 관리)

 

SDN & NFV 표준)

표준화 기구: ISOC, ITU-T, ETSI

산업체 컨소시엄: ONF, ODCA, ATIS

오픈소스 프로젝트: ODL, OPNFV, 오픈스택(뉴트론)

 

SDN의 데이터 평면)

1. 네트워크 포워딩 장치가 SDN 제어 평면 (Control Plane)에서 지정한 기준에 따라 데이터 전송 및 처리

2. 인프라스트럭처 계층 or 리소스 계층, 별도의 SW 없이 단순히 포워딩 기능만 수행

3. 제어 지원 기능: 리소스 제어 인터페이스, 스위치는 오픈플로우 프로토콜을 통해서 한다.

4. 데이터 포워딩:

- 제어 평면에서 오픈플로우를 사용해서 제어 규칙을 포워딩 테이블에 정의한다.

- 데이터 플로우를 받아 정의한 룰에 따라 결정된 경로로 포워딩한다.

- 포워딩 룰은 포워딩 테이블에 저장되고 포워딩된다.

- 포워딩 전에 헤더를 변경(TTL)하고 패킷을 버릴 수 도 있다.

- 패킷이 들어오면 입력큐에 저장, 포워딩 처리 후 출력큐에서 전송 대기

- 한 개 이상의 SDN 컨트롤러와 연결 가능, 패킷 플로우 처리를 위해 두 개 이상의 I/O 포트 사용

 

 

네트워크 장치는 특정한 프로토콜을 지원한다.

데이터 패킷 플로우는 IP 패킷에 대한 스트림으로 구성

포워딩 테이블은 TCP, UDP 뿐만 아니라, 다른 전송 계층 및 응용 계층 프로토콜에 대한 헤더 필드를 기반으로 엔트리를 구성한다.

 

SDN 개념 구현을 위한 두 가지 요구 사항)

논리적 아키텍처: SDN 컨트롤러로 관리하는 모든 네트워크 장치에 대해서 공통된 논리적 아키텍처 정의 -> 구현 방식이나 벤더에 영향 X

표준 보안 프로토콜: SDN 컨트롤러와 네트워크 장치가 통신하는데 필요한 보안이 제공되는 표준 프로토콜 필요

 

따라서 오픈플로우가 등장

오픈플로우)

구성: SDN 컨트롤러와 네트워크 장치의 통신을 위한 프로토콜 부분 + 네트워크 스위치 기능의 논리적 구조 규격

오픈플로우 SW는 SDN 컨트롤러에 포함되어 있다.

 

 

주요 구성 요소)

SDN 컨트롤러: TLS로 연결된 채널에서(=보안이 제공되는), 오픈 플로우 프로토콜을 통해, 오픈플로우 호환 스위치와 통신

 

오픈플로우 스위치: 각 스위치는 다른 오픈 플로우 스위치와 연결, 출발지와 목적지에 해당하는 단말 장치에 연결

 

오픈플로우 채널: 스위치 입장에서 서로 연결하는 인터페이스 의미, 오픈플로우 포트를 통해 연결

 

오픈플로우 포트: 물리포트(스위치 하드웨어 인터페이스), 논리 포트(고수준 추상화 포트, Loopback Interface),

예약 포트(오픈플로우 규격: 컨트롤러와 패킷을 주고받거나 플러딩, 오픈플로우 규격 x -> 노멀 스위치 방식의 범용 포워딩)

 

테이블: 오픈플로우 스위치는 서로 연속적으로 연결된 여러 개의 테이블을 사용하여 패킷 플로우 처리

 

- 플로우 테이블: 스위치에 들어온 패킷이 특정한 플로우에 매칭될 때 어떤 동작 수행 할지 정의, 여러 개 테이블의 파이프라인, 플로우 테이블은 매칭된 패킷들(플로우)을 그룹 테이블로 보낼 수 있다.

 

- 그룹 테이블: 하나 이상의 플로우에 적용될 다양한 액션 수행

 

- 미터 테이블: 플로우 성능에 연관된 여러 액션을 수행

 

컨트롤러는 오픈플로우 프로토콜을 통해, 플로우 항목을 테이블에 추가/갱신/삭제 수행

1. 리엑티브: 패킷이 들어올 때마다 처리.

2. 프로액티브: 패킷이 들어오기 전에 미리 지정.

 

플로우:

일정한 헤더 필드(목적지 ip주소 or 발신지 ip주소가 같다거나 등등..) 값들을 공유하며 네트워크를 돌아다니는 일련의 패킷,

각각 스위치 관점은 플로우 테이블에서 특정한 엔트리와 일치하는 일련의 패킷을 의미.

경로에 대한 함수는 아니다.(스위치에서 지정된 플로우 엔트리를 조합해야 경로에 대한 플로우 정의 가능)

 

플로우 테이블)

- 논리적인 스위치 아키텍처에서 가장 기본적인 구성 요소

- 각각의 패킷은 스위치에 들어올 때 한 개 이상의 플로우 테이블을 통과

- 각 플로우 테이블은 여러 개의 행(엔트리, Entry)으로 구성

 

1. 매치 필드 - 필드에 나온 값과 일치하는 패킷을 선택 시 사용

2. 우선순위 - 테이블 엔트리에 대한 상대적 우선순위

3. 카운터 - 매칭되는 패킷 발견 시 갱신

4. 인스트럭션 -매칭되는 패킷 발견 시 수행되는 명령

5. 타임아웃 - 플로우 엔트리가 스위치에서 만료될 때까지 기다리는 시간

6. 쿠키 - 컨트롤러가 지정하는 64비트 값, 플로우 수정/삭제 시 컨트롤러가 사용 

7. 플래그 - 생략

 

매치필드 - 필수 필드:

입력포트(Ingress 포트), 출력포트(egress 포트), IP, ip의 출발지 목적지, TCP or UDP 출발지와 목적지 포트, 와일드카드 지정, 테이블 미스 플로우 엔트리

 

인스트럭션 구성요소:

엔트리에 패킷이 매치될 때 실행할 명령어들의 집합

 

Action:

output: 특정 포트로 패킷을 포워딩

Set Queue: 큐 ID 지정, 기반으로 포워딩 수행된다.

Group: 지정화된 그룹에서 패킷을 처리

Push Tag/Pop Tag: 패킷에 태그 필드 push/pop

Set-Field: 패킷 헤더에 대하여 지정한 필드에 해당하는 헤더 값을 수정

Change-TTL: TTL값(헤더에 존재) 수정

Drop: 패킷을 버리는 액션

 

Action Set:

패킷을 쌓아두고 수행할 액션으로 구성된 리스트, 패킷이 파이프라인을 벗어날 때 실행됨.

 

오픈 플로우의 4종류 인스트럭션:

1. 패킷을 파이프라인으로 보내는 인스트럭션

2. 패킷에 대해 액션을 수행하는 인스트럭션

3. 액션 셋을 수정하는 인스트럭션

4. 메타데이터를 수정하는 인스트럭션

728x90
반응형

'Network > 현대 네트워크 기초' 카테고리의 다른 글

9주차 정리(5장)  (0) 2023.05.29
8주차 정리(4장)  (0) 2023.05.27
5주차 정리  (0) 2023.04.09
4주차 정리  (0) 2023.04.01
3주차 정리  (1) 2023.03.28