SDN 제어 평면은 네트워크 장치의 패킷 전달 로직을 중앙에서 제어하고, 이 장치들의 설정과 관리를 담당한다.
이는 기존의 라우터 기반 네트워크 모델과는 크게 구분된다.
SDN의 주요 특징
1. Flow-Based Forwarding:
• SDN에서는 네트워크 장치(스위치)가 패킷 헤더 필드에 기반하여 포워딩을 수행한다.
• OpenFlow 1.0 기준으로, 총 11개의 패킷 헤더 필드(예: IP 주소, 포트 번호 등)를 기반으로 포워딩 규칙을 정의할 수 있다.
• 이는 전통적인 라우터가 목적지 IP 주소만을 기반으로 포워딩했던 것과는 차별화된다.
2. 데이터 평면과 제어 평면의 분리:
• SDN은 **데이터 평면(Data Plane)**과 **제어 평면(Control Plane)**을 분리한다.
• 데이터 평면: 스위치와 같은 네트워크 장치가 실제 패킷 전달을 수행.
• 제어 평면: SDN 컨트롤러가 네트워크의 전반적인 제어와 관리 역할을 수행.
3. 외부 제어 기능:
• 제어 평면의 역할은 네트워크 스위치에서 분리되어 소프트웨어로 구현된다.
• 제어는 SDN 컨트롤러에서 이루어지며, 네트워크 상태를 종합적으로 관리.
4. 프로그래머블 네트워크:
• 네트워크는 SDN 제어 애플리케이션(예: 라우팅, 로드 밸런싱)을 통해 프로그래밍 가능.
• 예: SDN 컨트롤러는 링크 상태 정보를 사용해 Dijkstra 알고리즘을 실행하여 최적 경로를 계산하거나, 특정 패킷을 차단하는 방화벽 규칙을 적용.
SDN의 아키텍처 (Figure 5.14 설명)
SDN 구조는 세 가지 주요 계층으로 나뉜다:
1. 데이터 평면:
• 스위치가 위치하며, 패킷 전달 작업을 수행한다.
• SDN 컨트롤러의 명령에 따라 동작하며, 포워딩 테이블에 정의된 규칙을 실행.
2. 제어 평면:
• SDN 컨트롤러가 위치하며, 네트워크 상태를 종합적으로 관리.
• 제어 평면은 Southbound API를 통해 데이터 평면과, Northbound API를 통해 네트워크 애플리케이션과 통신.
3. 네트워크 제어 애플리케이션:
• 라우팅, 액세스 제어, 로드 밸런싱 등의 애플리케이션이 동작.
• 이들은 SDN 컨트롤러의 인터페이스를 사용하여 네트워크 동작을 제어.
SDN 컨트롤러의 구성 요소
SDN 컨트롤러는 다음과 같은 세 가지 주요 계층으로 구성된다 (Figure 5.15 참조):
1. 통신 계층:
• SDN 컨트롤러와 네트워크 장치 간의 데이터를 교환.
• 예: OpenFlow와 같은 Southbound 프로토콜을 사용.
2. 네트워크 상태 관리 계층:
• 네트워크의 전체 상태를 저장 및 관리.
• 예: 호스트 정보, 링크 상태, 스위치 상태 등.
3. 네트워크 제어 애플리케이션과의 인터페이스 계층:
• RESTful API와 같은 Northbound 인터페이스를 통해 SDN 애플리케이션과 통신.
• 이를 통해 네트워크 상태를 조회하거나 업데이트 가능.
OpenFlow 프로토콜
OpenFlow는 SDN 컨트롤러와 스위치 간의 통신을 위해 사용되는 주요 프로토콜이다.
• 주요 메시지:
1. Configuration: 스위치의 설정 정보 요청 및 수정.
2. Modify-State: 포워딩 테이블을 업데이트.
3. Read-State: 통계 정보와 카운터 값 수집.
4. Send-Packet: 특정 포트를 통해 패킷 전송.
SDN 제어 평면(Data and Control Plane Interaction)에 대한 예제 설명
이는 Figure 5.16과 관련된 내용으로, SDN 컨트롤러가 네트워크 이벤트(예: 링크 장애)에 어떻게 반응하는지를 보여준다.
SDN 제어 평면의 동작 과정
시나리오 설명
• 가정: 스위치 s1 과 s2 사이의 링크가 장애로 인해 끊어진 상황.
• 목표: SDN 컨트롤러가 이를 감지하고, 네트워크의 포워딩 규칙을 업데이트하여 트래픽 흐름을 복구.
작동 단계
1. 스위치 s1 의 이벤트 발생:
• s1 은 OpenFlow의 port-status 메시지를 통해 SDN 컨트롤러에 링크 장애를 알린다.
2. 컨트롤러의 링크 상태 업데이트:
• 컨트롤러는 OpenFlow 메시지를 수신하고, 링크 상태 매니저(Link-State Manager)를 통해 네트워크의 상태 정보를 업데이트한다.
3. Dijkstra 알고리즘 실행:
• 링크 상태 라우팅 애플리케이션이 링크 상태 변화를 감지한다.
• Dijkstra 알고리즘을 사용하여 새로운 최단 경로를 계산한다.
4. 포워딩 테이블 업데이트:
• 새롭게 계산된 경로에 따라 포워딩 테이블이 업데이트된다.
• 이 과정은 OpenFlow 프로토콜을 통해 스위치에 전달된다.
5. 네트워크 복구:
• s1, s3, s4 의 포워딩 테이블이 변경되어, 트래픽이 s1 -> s4 -> s2 경로로 전달되도록 설정된다.
전통적인 라우팅과 SDN의 차이점
• 기존의 전통적인 라우팅에서는 모든 라우터가 각각 독립적으로 링크 상태를 교환하고 최단 경로를 계산했다.
• SDN에서는 이러한 기능이 중앙 컨트롤러로 집약되어, 더 빠르고 효율적인 네트워크 업데이트가 가능하다.
SDN의 과거와 미래
과거
• SDN의 아이디어는 2000년대 초반부터 등장했으며, 데이터 평면과 제어 평면의 분리를 목표로 발전.
• 초기 프로젝트로는 **Ethane 프로젝트(2007)**와 이를 기반으로 한 OpenFlow가 있다.
미래
• SDN은 전통적인 라우터 및 스위치를 대체하는 방향으로 발전하고 있다.
• NFV(Network Functions Virtualization)와 결합되어 네트워크 기능을 소프트웨어로 구현.
• Inter-AS 라우팅 등 더 복잡한 네트워크 상황에도 적용 가능성을 연구 중이다.
OpenDaylight 및 ONOS 컨트롤러
OpenDaylight Controller (Figure 5.17)
• 구성:
• REST API, NETCONF를 통해 네트워크 장치를 제어.
• 네트워크 상태 정보(토폴로지, 통계, 호스트 정보)를 관리.
• 특징:
• 초기에는 단순한 기능을 제공하였으나, 현재는 고급 서비스(예: 트래픽 엔지니어링, 방화벽 설정)까지 포함.
ONOS Controller (Figure 5.18)
• 구성:
• 분산 코어 구조를 통해 대규모 네트워크를 지원.
• REST API와 INTENT 프레임워크를 통해 고수준 서비스 요청 처리.
• 특징:
• 분산된 서버 아키텍처로 높은 성능과 확장성을 제공.
'Book > COMPUTER NETWORKING A TOP-DOWN-APPROACH' 카테고리의 다른 글
5.7 Network Management and SNMP,NETCONF/YANG (0) | 2024.12.03 |
---|---|
5.6 ICMP: The Internet Control Message Protocol (0) | 2024.12.03 |
5.4 Routing Among the ISPs: BGP (1) | 2024.12.03 |
5.3 Intra-AS Routing in the Internet:OSPF (0) | 2024.12.03 |
5.2 Routing Algorithms (0) | 2024.12.03 |