5. Network Layer: Control Plane(3)

728x90
반응형

5.5 The SDN control plane

SDN은 21세기의 network control plane의 approach 기법이다.

기존까지는 per-router approach 즉, 모노리틱한 각 라우터가 알아서 해왔다는 것이다.

여기서 모노리틱이란 캡슐에 블랙박스처럼 싸여져 있다란 의미이다. 즉, 이 라우터가 동작하는 프로토콜 등을 특정 제작회사가 특허권을 통해 독점적으로 가져서 그 특정 회사의 라우터들끼리만 폐쇄적으로 동작하게 되는 특징을 말한다.

이렇게 폐쇄적이였던 시장을 오픈하자는 움직임을 통해 등장한 것이 SDN 즉, logically centralize한 control plane이다.

라우터의 misconfiguration을 피하거나 트래픽 플로우의 flexibility를 향상시키고 control plane의 오픈 할 수 있다는 장점이 있다.(그 때는 폐쇄되어있던 것을 오픈하는 것이 대세였다고 한다.)

SDN처럼 centralize한 방식의 장점은 per-routing 방법에 비해서 빠르고 효율적으로 포워딩 테이블을 만들 수 있다는 점이다.

SDN의 장점을 좀 더 자세히 알아보자.

네트워크 오퍼레이터가 라우터-u에서 라우터-z까지 패킷을 전송하는데 uvwz의 경로로 보내고 싶고, 라우터-x에서 라우터-z까지 전송하는데 xwyz의 경로로 보내고 싶다고 가정해보자.

기존의 라우팅 알고리즘 방식을 사용해서 구현하려면 링크 코스트들을 임의로 바꿔줘야 했다. 혹은 새로운 라우팅 알고리즘이 필요했다.

두번째는 네트워크 오퍼레이터가 트래픽을 uvwz와 uxyz로 분산시켜서 보내고 싶어한다고 해보자(flow control aggregation).

기존의 방식은 good path를 하나 찾아서 보내는 방식으로 진행했기 때문에 불가능하지만 SDN은 가능하다. 그렇기 때문에 로드 밸런싱 면에서 더 뛰어나다.

위 그림과 같이 파란색 루트로 가는 트래픽과 빨간색 루트로 가는 트래픽처럼 여러 트래픽이 하나의 라우터로 들어올 때, 이 라우터 w는 이 두개의 트래픽에 차별을 주고싶어한다. 기존의 방식은 불가능하다.

하지만 SDN을 사용하면 위에서 설명한 3가지가 모두 가능하다. logically centralized한 remote controller가 해당 요구조건을 모두 반영해서 포워딩 테이블을 만들어서 각 라우터에 재전송 해준다.

Data plane switch는 하드웨어로 구현되기 때문에 굉장히 빠르고 심플하다.

controller가 switch flow table을 계산해서 재전송해준다.

소프트웨어에 의해 control 되는 API가 존재하는데 이 API는 OpenFlow를 통해서 단일화되어, 어떤 것이 control 가능하고 어떤 것이 안되는지가 정의되어 있다.

그리고 data plane과 control plane의 중간에 SDN controller가 존재한다(정확히는 control plane에 속해있는데 밑단에 존재한다).

northbound API를 통해서 윗단의 application들과 통신하고 southbound API를 통해 밑단의 switch들과 통신을 해서 정보를 주고받는 중간자적 역할을 한다.

network control application은 brain의 역할을 한다고 볼 수 있다.

밑의 레벨 서비스들을 사용하는 control function(라우팅, access control, 로드 밸런싱 등등)들을 수행하는 역할을 한다.

unbundled되어 있다는 특징이 있다. 즉, 특정 시스템에 예속 되어있지 않다.

SDN control의 예를 통해서 어떻게 동작하는지 알아보자.

1. 먼저 밑의 S1 라우터가 특정 링크 status값이 바꼈다는 것을 감지한다.

2. SDN 컨트롤러에게 link status 값이 바꼈으니 forwarding table을 다시 계산해야 된다고 메시지를 보내서 알려준다.

3. 이전에 등록된 다익스트라 라우팅 알고리즘 어플리케이션이 호출된다.

4. 다익스트라 알고리즘이 소환이 되서 네트워크 그래프 정보, 링크 상태 정보를 받아서 새로운 경로를 계산한다.

5. flow table computation component들과 상호작용을 통해서 계산을 마친다.

6. 새로운 forwarding table을 받아서 업데이트 한다.

5.6 ICMP : Internet Control Message Protocol

ICMP는 네트워크 장치에서 에러 리포팅 같은 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜이다.

네트워크 계층에서 동작하는 프로토콜이라는 것 정도만 기억하고 넘어가자.

5.7 Network management and SNMP

네트워크 매니지먼트의 기본 개념은 각 디바이스가 가지고 있는 자신의 데이터들을 managing entity에 모아서 관리를 하고 이 때 사용되는 프로토콜이 네트워크 매니지먼트 프로토콜이다.

728x90
반응형

'Study > 네트워크' 카테고리의 다른 글

6. Link Layer and LANs (2)  (1) 2023.06.14
6. The Link Layer and LANs (1)  (1) 2023.06.14
5. Network Layer: Control Plane(2)  (0) 2023.06.14
5. Network Layer : Control Plane (1)  (2) 2023.06.14
4. Network Layer (Data Plane) (2)  (1) 2023.06.14