네트워크_SDN

[SDN]

1. 정의

SDN은 네트워크 장비(라우터, 스위치 등)의 제어(Control Plane)를 장비 자체에서 분리하여, 중앙 집중화된 컨트롤러(Controller)에서 관리하고, 네트워크 장비는 단순히 데이터 전달(Data Plane)만 수행하게 하는 구조입니다.


2. 특징

  • 제어와 데이터의 분리: 기존 장비는 제어 + 데이터 처리를 동시에 했지만, SDN은 이 둘을 분리함.
  • 중앙 집중형 제어: 네트워크 전체를 통제하는 중앙 컨트롤러 존재.
  • 프로그래머블 네트워크: 네트워크 정책을 소프트웨어로 쉽게 수정 가능.
  • 표준 인터페이스 사용: OpenFlow 등의 프로토콜로 장비 제어.

3. 장점

  • 유연성: 네트워크 구조나 경로 변경이 쉬움.
  • 중앙 관리: 여러 장비를 한 곳에서 통합 관리 가능.
  • 자동화 가능: 소프트웨어로 정책 변경 및 자동화 구현 용이.
  • 빠른 장애 대응: 중앙에서 네트워크 상황 실시간 파악 및 대처.

4. 단점

  • 중앙 장애 시 리스크: 컨트롤러 고장 시 전체 네트워크 영향을 줄 수 있음.
  • 보안 위협 집중: 중앙화된 컨트롤러는 공격 타겟이 될 수 있음.
  • 복잡한 초기 구축: 기존 장비와 연동 시 기술적 난이도 있음.

5. 동작 원리

  1. 컨트롤러(Control Plane): 네트워크 정책, 라우팅 경로 등을 결정.
  2. 스위치/라우터(Data Plane): 컨트롤러 지시에 따라 패킷 전달.
  3. OpenFlow 같은 프로토콜로 컨트롤러가 장비에 명령을 전달함.
  4. 컨트롤러는 네트워크 상황을 실시간으로 수집하고 최적의 경로를 계산하여, 각 장비의 Flow Table에 반영.

[OpenFlow protocol]

1. 정의

OpenFlow는 SDN 구조에서 컨트롤러가 스위치의 데이터 플레인을 직접 제어할 수 있도록 설계된 프로토콜이다. 즉, 컨트롤러는 OpenFlow를 통해 스위치의 흐름 테이블(Flow Table)을 읽고 수정하며, 패킷이 어떤 경로로 전달될지를 결정한다.


2. 구성 요소

  • Controller: 중앙의 지능적인 제어 시스템
  • OpenFlow Switch: Flow Table 기반으로 동작하는 장비
  • Secure Channel: 컨트롤러와 스위치를 연결하는 통신 경로 (TLS 등으로 암호화)
  • OpenFlow Protocol: 컨트롤러가 스위치에게 Flow Table을 설정하거나 상태를 조회하는 데 사용하는 프로토콜

3. Flow Table 항목

각 스위치는 내부에 Flow Table을 가지고 있으며, 다음 정보로 구성됩니다:

  • Match 필드: 어떤 패킷에 적용할지 결정 (예: IP, TCP 포트 등)
  • Action: 해당 패킷에 어떤 동작을 수행할지 정의 (예: drop, forward, modify 등)
  • Counter: 해당 규칙에 일치한 패킷 수 등 통계 정보

4. 동작 원리

  1. 패킷이 스위치에 도착하면, Flow Table에서 해당 패킷에 맞는 룰이 있는지 확인한다.
  2. 룰이 있으면, 지정된 동작(Action)을 수행한다.
  3. 룰이 없으면 패킷을 컨트롤러에게 전송(Packet-In), 컨트롤러가 분석 후 새로운 룰을 스위치에 전송(Packet-Out 또는 Flow-Mod).
  4. 스위치는 해당 룰을 저장하고 이후 유사한 패킷에 대해 자율적으로 처리.

5. 특징

  • 표준화된 프로토콜 (Open Networking Foundation에서 개발)
  • 중앙 집중형 제어 실현
  • 유연한 트래픽 제어 및 최적화 가능
  • 패킷 단위 또는 흐름 단위로 세밀한 제어 가능

[OpenDaylight (ODL)]

1. 정의

OpenDaylight(ODL)는 리눅스 재단(Linux Foundation)이 주도하는 모듈형, 확장형 SDN/NFV 컨트롤러로, OpenFlow를 포함한 여러 프로토콜을 지원하여 멀티벤더 네트워크 장비를 중앙에서 제어할 수 있도록 설계된 플랫폼이다.


2. 특징

  • 오픈소스 기반: 누구나 자유롭게 사용, 수정, 확장 가능
  • 모듈 구조: 기능별로 번들화되어 필요한 기능만 선택 가능
  • 플러그인 방식: 다양한 프로토콜(OpenFlow, NETCONF, BGP, PCEP 등) 지원
  • REST API 제공: 네트워크를 쉽게 자동화하고 외부 애플리케이션과 연동 가능
  • 서비스 추상화: 네트워크 장비에 종속되지 않도록 추상화된 서비스 인터페이스 제공

3. 장점

  • 다양한 네트워크 환경과 호환 (OpenFlow, NETCONF, SNMP 등)
  • 유연한 확장성: Java 기반 OSGi 프레임워크로 개발되어 기능 추가 용이
  • 강력한 커뮤니티와 지원: OpenStack, Cisco, Huawei 등 기업과 협업
  • 표준 API 제공: northbound API로 상위 애플리케이션 개발 가능

4. 단점

  • 설정이 복잡함: 초기 구축 및 모듈 선택이 어렵고 설정량이 많음
  • 리소스 소비 큼: Java 기반으로 무겁고 메모리 소모가 많음
  • 학습 곡선 존재: 다양한 모듈과 설정 파일 구조로 인해 초심자에겐 진입 장벽 있음

5. 동작 원리

  1. ODL은 OpenFlow, NETCONF 등의 프로토콜을 통해 스위치나 라우터와 통신함.
  2. Controller Core가 네트워크 상태를 유지하고, 흐름 제어를 관리함.
  3. Northbound API를 통해 네트워크 애플리케이션(예: 방화벽, 경로 제어)이 ODL을 통해 네트워크를 제어함.
  4. 사용자는 REST API 또는 GUI를 통해 Flow Rule 설정, 통계 조회 등을 수행함.

Read more

Socket_1

Socket_1: 문자열을 아스키코드로 변환하는 소켓 프로그래밍 프로그램 설명 이 프로그램은 TCP 소켓을 이용하여 클라이언트가 전송한 문자열을 서버가 받아, 해당 문자열을 아스키코드 리스트로 변환한 뒤, 다시 클라이언트에게 전송하는 방식으로 작동한다. 양방향 통신은 문자열 기반이며, 서버는 수신한 문자열을 각 문자마다 ord()를 통해 아스키 코드로 바꾼다. * 통신 방식: TCP * 인코딩 방식:

By Youn

네트워크_Mobility

Mobility란? Mobility(이동성)은 네트워크에서 기기가 네트워크 위치(IP 주소 등)가 바뀌더라도 지속적으로 연결을 유지할 수 있는 능력을 말합니다. Mobility를 처리하는 두 가지 접근 방식 1. Routing이 Mobility를 처리하게 한다 (Network-based mobility) * 개념: 이동하는 호스트의 현재 위치를 네트워크가 추적하고, 그에 따라 패킷 경로를 동적으로 수정함 * 예시: Mobile IP * 홈

By Youn