학교
[컴퓨터 네트워크] Chapter 5. Network Layer: Control Plane (Part 2) - (2)
일자: 15주차 1차시 (1)
[6-1] 소프트웨어 정의 네트워킹(SDN)

일반화된 "흐름 기반" 전달 (예: OpenFlow)
제어 평면과 데이터 평면의 분리
데이터 평면 외부에 위치한 제어 평면 기능
프로그래밍 가능한 제어 애플리케이션을 통한 라우팅 및 액세스 제어
[6-2] 소프트웨어 정의 네트워킹(SDN)
1) 데이터 평면 스위치

하드웨어에서 일반화된 데이터 평면 전달(섹션 4.4)을 구현하는 빠르고 단순한 범용 스위치
흐름(전달) 테이블은 컨트롤러의 감독하에 계산 및 설치테이블 기반 스위치 제어를 위한 API(예:
OpenFlow프로토콜)제어 가능한 것과 불가능한 것을 정의
컨트롤러와 통신하기 위한 프로토콜(예: OpenFlow)
2) SDN 컨트롤러(네트워크 OS)

네트워크 상태 정보를 유지북쪽 API를 통해 "상위"네트워크 제어 애플리케이션과 상호작용남쪽 API를 통해 "하위"네트워크 스위치와 상호작용성능, 확장성, 장애 허용성, 견고성을 위해
분산 시스템으로 구현
SDN 컨트롤러의 문제점
: 해커가 어택하면 움직이지 않는 문제가 발생할 수 있다. 이를 예뱅하기 위해 백업 SDN 컨트롤러(분산 시스템)를 사용해야 한다.
3) 네트워크 제어 애플리케이션

제어의 "두뇌" 역할: SDN 컨트롤러가 제공하는 하위 서비스와 API를 사용하여제어 기능 구현분리형 구조: 3자 제공 가능(라우팅 벤더 또는 SDN 컨트롤러와 독립적)
4) 비유
"네트워크는 지도자(SDN 컨트롤러)가 지침을 내려주고, 일꾼(데이터 평면 스위치)이 지침에 따라 움직이며, 전략가(네트워크 제어 애플리케이션)가 방향을 결정하는 체계적인 조직과 같다."
[7] OpenFlow 프로토콜

컨트롤러와 스위치 간 작동
TCP를 사용하여 메시지 교환
선택적 암호화 지원
OpenFlow 메시지의 세 가지 클래스:
컨트롤러-스위치
비동기식(스위치-컨트롤러)
대칭식(기타)
OpenFlow API와는 구분됨
API는 일반화된 전달 동작을 지정
[8] SDN: 제어/데이터 평면 상호작용 예시

S1이
링크 오류를 경험하면OpenFlow 포트 상태 메시지를 사용해컨트롤러에 알림SDN 컨트롤러가 OpenFlow 메시지를 받아
링크 상태 정보를 업데이트이전에 링크 상태 변경 시 호출되도록 등록된
다익스트라 라우팅 알고리즘 애플리케이션 호출다익스트라 알고리즘이 네트워크 그래프 및 링크 상태 정보를 참조하여새로운 경로를 계산

링크 상태 라우팅 애플리케이션이 SDN 컨트롤러의
흐름 테이블 계산 구성 요소와 상호작용하며필요한 새로운 흐름 테이블 계산컨트롤러가 OpenFlow를 사용하여
스위치에 새 테이블 설치
1) 키워드로 요약하는 전체 과정
링크 오류 감지: S1, 링크 오류, OpenFlow 포트 상태 메시지, 컨트롤러 알림상태 정보 업데이트: SDN 컨트롤러, OpenFlow 메시지, 링크 상태 정보 업데이트라우팅 알고리즘 호출: 이전 링크 상태 변경, 등록, 다익스트라 라우팅 알고리즘 애플리케이션경로 계산: 다익스트라 알고리즘, 네트워크 그래프, 링크 상태 정보, 새로운 경로 계산흐름 테이블 계산: 링크 상태 라우팅 애플리케이션, SDN 컨트롤러, 흐름 테이블 계산테이블 설치: 컨트롤러, OpenFlow, 스위치, 새 테이블 설치
[9] 이슈 (2021.10.25.KT)

6. 인터넷 제어 메시지 프로토콜
[1] ICMP: 인터넷 제어 메시지 프로토콜

호스트와 라우터가 네트워크 수준 정보를 통신할 때 사용오류 보고: 도달 불가능한 호스트, 네트워크, 포트, 프로토콜에코 요청/응답(ping 사용)Type 0, Type 8사용
IP 계층 "위"의
네트워크 계층:IP 데이터그램에 포함된 ICMP 메시지: ICMP(인터넷 제어 메시지 프로토콜) 메시지가 IP 데이터그램에 포함되어 전송된다
ICMP 메시지: 유형, 코드, 오류를 일으킨IP 데이터그램의 첫 8바이트 포함유형 (Type): ICMP 메시지의 종류를 정의하며, 예를 들어 에코 요청 또는 응답을 나타내는 코드.
코드 (Code): 특정 유형에 대한 추가 정보를 제공하며, 예를 들어 도달할 수 없는 호스트의 종류.
오류를 일으킨 IP 데이터그램의 첫 8바이트: 이 부분에는 오류 발생의 원인을 추적하기 위한 정보가 포함된다.
[2] Traceroute와 ICMP

소스가 목적지로 UDP 세그먼트를 전송
첫 번째 세트: TTL=1, 두 번째 세트: TTL=2, ...
n번째 라우터에 데이터그램 도착:
라우터가 데이터그램을 폐기하고 소스에 ICMP 메시지(type 11, code 0) 전송
ICMP 메시지에 라우터 이름과 IP 주소 포함 가능
소스에 ICMP 메시지 도착 시 RTT 기록
1) 종료 조건:
UDP 세그먼트가 결국 목적지에 도달
목적지가 ICMP "포트 도달 불가능" 메시지(type 3, code 3) 반환
소스가 중지
2) 요약
Traceroute
목적: 네트워크 경로를 추적하여 소스와 목적지 간의 통신 경로를 파악하고, 지연 시간을 측정하는 도구이다.
작동 원리:
소스에서 UDP 세그먼트를 TTL 값을 증가시키며 전송. 각 세그먼트는 네트워크의 각 라우터를 거치게 된다.
TTL이 만료되면 라우터가 데이터그램을 폐기하고 ICMP 메시지(type 11)를 소스에게 전송. 이 메시지에는 라우터 정보가 포함된다.
소스는 ICMP 메시지를 수신할 때 RTT(왕복 시간)를 기록한다.
종료 조건
종료 조건:
UDP 세그먼트가 목적지에 도달할 때.
목적지가 ICMP "포트 도달 불가능" 메시지(type 3, code 3)를 반환할 때.

(아래의 내용은 범위에 추가되지 않는다.)
7. 네트워크 관리와 구성 (SKIP)
SNMP
NETCONF/YANG
[1] 네트워크 관리란?
자율 시스템(일명 “네트워크”): 수천 개의 상호작용하는 하드웨어/소프트웨어 구성 요소로 구성
모니터링, 구성, 제어가 필요한 기타 복잡한 시스템
제트기, 원자력 발전소 등
"네트워크 관리는 네트워크 및 요소 자원을 실시간 운영 성능과 품질(QoS) 요구를 합리적인 비용으로 충족하기 위해 하드웨어, 소프트웨어, 인적 요소를 배치, 통합, 조정하여 모니터링, 테스트, 설문, 구성, 분석, 평가 및 제어하는 작업이다."
[2] 네트워크 관리 구성 요소

관리 서버: 일반적으로 네트워크 관리자(인간)이 포함된 애플리케이션
네트워크 관리 프로토콜: 관리 서버가 장치를 질의, 구성, 관리하는 데 사용. 장치는 데이터를 관리 서버에 알리고 이벤트를 전달
관리 장치: 관리 가능한 하드웨어와 소프트웨어 구성 요소를 가진 장비
데이터: 장치 “상태” 구성 데이터, 운영 데이터, 장치 통계
[3] 네트워크 운영자의 관리 접근법

CLI (명령줄 인터페이스)
운영자가 개별 장치에 직접 명령(타이핑, 스크립트)을 입력 (예: ssh 사용)
SNMP/MIB
운영자가 SNMP(Simple Network Management Protocol)를 사용하여 장치 데이터(MIB)를 질의/설정
NETCONF/YANG
더 추상적이고, 네트워크 전반에 걸쳐 통합적 접근
다중 장치 구성 관리에 초점
YANG: 데이터 모델링 언어
NETCONF: YANG 호환 작업/데이터를 원격 장치와 교환
[4] NETCONF RPC 메시지 예시
<?xml version="1.0" encoding="UTF-8"?>
<rpc message-id="101" note message id>
<xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config>
<top xmlns="http://example.com/schema/1.2/config">
<interface>
<name>Ethernet0/0</name>
<mtu>1500</mtu>
</interface>
</top>
</config>
</edit-config>
</rpc>메시지 ID를 명시
설정 변경
실행 중인 설정을 변경
Ethernet0/0 인터페이스의 MTU를 1500으로 변경
[5] YANG

NETCONF 네트워크 관리 데이터의 구조, 구문, 의미를 정의하기 위해 사용되는 데이터 모델링 언어
SMI와 유사한 내장 데이터 유형 제공
YANG 설명에서 생성된 XML 문서를 통해 장치 및 기능을 설명 가능
데이터 간 제약 조건을 표현 가능. NETCONF 설정에서 이를 준수해야 함
NETCONF 설정이 올바름 및 일관성을 충족하도록 보장
[6] 네트워크 계층: 요약
[1] 우리가 배운 것:
네트워크 제어 평면 접근법
라우터별 제어(전통적 방식)
논리적으로 중앙 집중화된 제어(소프트웨어 정의 네트워킹)
전통적인 라우팅 알고리즘
인터넷 구현: OSPF, BGP
SDN 컨트롤러
실무 구현: ODL, ONOS
인터넷 제어 메시지 프로토콜(ICMP)
네트워크 관리