0227

학교

[컴퓨터 네트워크] Chapter 5. Network Layer: Control Plane (Part 2) - (2)

일자: 15주차 1차시 (1)

[6-1] 소프트웨어 정의 네트워킹(SDN)

  1. 일반화된 "흐름 기반" 전달 (예: OpenFlow)

  2. 제어 평면과 데이터 평면의 분리

  3. 데이터 평면 외부에 위치한 제어 평면 기능

  4. 프로그래밍 가능한 제어 애플리케이션을 통한 라우팅 및 액세스 제어

[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: 제어/데이터 평면 상호작용 예시

  1. S1이 링크 오류를 경험하면 OpenFlow 포트 상태 메시지를 사용컨트롤러에 알림

  2. SDN 컨트롤러가 OpenFlow 메시지를 받아 링크 상태 정보를 업데이트

  3. 이전에 링크 상태 변경 시 호출되도록 등록된 다익스트라 라우팅 알고리즘 애플리케이션 호출

  4. 다익스트라 알고리즘네트워크 그래프 및 링크 상태 정보를 참조하여 새로운 경로를 계산

  1. 링크 상태 라우팅 애플리케이션이 SDN 컨트롤러의 흐름 테이블 계산 구성 요소와 상호작용하며 필요한 새로운 흐름 테이블 계산

  2. 컨트롤러가 OpenFlow를 사용하여 스위치에 새 테이블 설치

1) 키워드로 요약하는 전체 과정

  1. 링크 오류 감지: S1, 링크 오류, OpenFlow 포트 상태 메시지, 컨트롤러 알림

  2. 상태 정보 업데이트: SDN 컨트롤러, OpenFlow 메시지, 링크 상태 정보 업데이트

  3. 라우팅 알고리즘 호출: 이전 링크 상태 변경, 등록, 다익스트라 라우팅 알고리즘 애플리케이션

  4. 경로 계산: 다익스트라 알고리즘, 네트워크 그래프, 링크 상태 정보, 새로운 경로 계산

  5. 흐름 테이블 계산: 링크 상태 라우팅 애플리케이션, SDN 컨트롤러, 흐름 테이블 계산

  6. 테이블 설치: 컨트롤러, 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) 요약

  1. Traceroute

    • 목적: 네트워크 경로를 추적하여 소스와 목적지 간의 통신 경로를 파악하고, 지연 시간을 측정하는 도구이다.

    • 작동 원리:

      • 소스에서 UDP 세그먼트를 TTL 값을 증가시키며 전송. 각 세그먼트는 네트워크의 각 라우터를 거치게 된다.

      • TTL이 만료되면 라우터가 데이터그램을 폐기하고 ICMP 메시지(type 11)를 소스에게 전송. 이 메시지에는 라우터 정보가 포함된다.

      • 소스는 ICMP 메시지를 수신할 때 RTT(왕복 시간)를 기록한다.

  2. 종료 조건

    • 종료 조건:

      1. UDP 세그먼트가 목적지에 도달할 때.

      2. 목적지가 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 메시지 예시

HTML
<?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)

  • 네트워크 관리

[2] 다음 단계: 링크 계층!

목차