- toc {:toc}
Notice
Computer Networks 글은 경희대학교 소프트웨어융합대학 이성원 교수님의 [컴퓨터 네트워크 CSE302] 수업을 기반으로 정리한 내용입니다.
Softwarization
- 네트워크가 게임, 인터넷 등 개인 사용자가 늘어나면서 비즈니스 성이 높아졌다.
- 회사가 본인의 서버를 하나로 통합(클라우드 컴퓨팅) → 네트워크 필요
- 인터넷을 사용한 서비스가 돈이 되기 시작하면서 통신사들은 수익을 극대화하고 싶어하고, 기업들은 기업들은 클라우드 컴퓨팅을 위한 네트워크 기술을 필요로 했다.
- 2010년 클라우드 컴퓨팅, 도커, 쿠버네티스, 에자일, 데이터 기반 인공지능 출현
[Fig1]
-
리눅스 재단에서 제작한 새로운 네트워킹 계층
-
Disaggregated Hardware - 어떤 os나 소프트웨어가 없는 것. 필요하면 직접 os, software 넣는 것
- 장치만 가지고 원하면 라우터 장치로 만들 수도 있다.
-
IO Abstraction & Data Path - 길 보내기, 입력 출력 추상화
-
Operation Systems
-
Network Control - 네트워크를 인간이 컨트롤한다. 유튜브, 게임 잘 오고 가도록 사용자(일반적으로 기업 등)가 알아서 자신의 네트워크를 컨트롤 하는 것.
-
Cloud & virtual management : 가상화 기능
-
Orchestration, Management, Policy - 여러 가지들을 제대로 잘 돌아가도록 모니터링, 관리, 제어
-
IP 프로토콜의 핵심 : 2010년 이전에는 통제자가 없었다.
-
하지만 2010년 이후 직접 네트워킹을 하면서 관리하는 통제자를 필요로 한다.
-
Virtual Circuit과 같이 중앙집중으로 제어하는 컨트롤 타워가 다시 부활했다.
-
기업의 입장에서는 회사의 서비스를 이해하고 개발할 줄 아는 사람이 필요하다.
- 스크래치에서 만들어서 필요한 네트워크 소프트웨어를 동작시키면 되기 때문이다.
- 에릭슨(통신장치 기업 최고봉) 연 판매
- 2004년 하드웨어의 판매 비율이 더 많았으나, 2014년 하드웨어 비율이 줄고 소프트웨어가 증가했다.
- 에릭슨이 2010년에 발표한 기사
- 우리는 하드웨어 비중을 줄이고 소프트웨어의 비중을 늘린다.
- 2015년에 하드웨어 3개로 줄이고 위에 소프트웨어를 다르게 하여 출시
- 하드웨어가 많을 필요 없이, 하나의 하드웨어를 놓고 원하는 기능을 소프트웨어를 탑재해 사용하는 형식으로 변화했다.
- 사실상 인텔 cpu와 리눅스를 사용한다. 하드웨어 공용화, 소프트웨어의 중요성 증가
과거와 현재의 차이
- 과거
- NE(Network Element) oriented
- 네트워크 장치 위주로 표준에 따라 통신했다.
- standard - 라우터 A사 B사 대화를 나누기 위해 표준이 중요하다.
- Uncontrollable Network
- 현재
- Function oriented
- Software APIs - 내가 네트워킹을 할 수 있도록 만들어서 사용할 것이기 때문에 표준이 중요치 않다. 소프트웨어를 호출하기 위한 API가 중요해졌다.
- Controllable Network → Controllable = Programmable
SDN(Software Defined Network(ing))
- Router
-
Data Plane : 포트들을 연결하는 회로
-
들어온 패킷을 저장했다가 컨트롤러를 통해 포워딩 테이블을 확인하고 해당 포트로 내보낸다.
-
Router의 문제점 - 기존에는 라우터끼리 라우팅하는 역할
- 새로운 통신 프로토콜의 출현
- 사용자 전용 Customized 라우팅
- 패킷 레벨 전송 경로 제어
- 서비스 인식 기반 전송/패킷 처리 기술
- Cross Layer 서비스 지원
- 다음과 같은 여러 기술에 대한 지원에 대한 문제점이 발생했다.
-
SDN : 길을 정리했다.
- 새로운 네트워크를 만들었을 때 소유자의 마음대로 움직이고 서비스를 다룰 수 있는 네트워크를 위해 만들어졌다.
- Data Plane에 포워딩, 흐름제어 테이블은 유지된다.
- Switch : 패킷이 들어오면 나가는 기능만 수행한다.
- Control Plane에 SDN/OpenFlow Controller가 위치해 있다.
- SDN/OpenFlow Controller
- 외부 컴퓨터에서 소프트웨어를 동작시킨다.
- 포워딩 결정을 한다.
- 라우터(포워딩) 테이블을 라우터 안에서 만드는 것이 아니라 외부에서 만든다.
- 내가 원하는 방식대로 만든 네트워크이므로 네트워크에 대해 모든 것을 알고 있다.
- 내가 원하는 방식대로 라우터 테이블을 만들어주면 라우터는 동작만 한다.
- 컨트롤러가 죽으면 네트워크도 함께 죽는다.(외부 컨트롤러가 모든 명령을 내리기 때문)
-
OpenFlow : Rule, Action, Stats 3가지 정보를 컨트롤러에서 스위치로 전달하는 프로토콜이다.
-
Rule : OSI 1, 2, 3, 4 계층의 정보를 모두 가지고 있어 라우터와 같이 규정할 수 있다.
-
Action : 규칙에 의거해 정해진 행동을 한다.
- 특정 포트에서 들어온 패킷을 포워딩 테이블을 보고 내보낸다.
- 특정 패킷이 들어오면 캡슐화하여 컨트롤러로 보낸다.(DHCP 요청 - 컨트롤러에서 처리한다)
- 지정된 패킷을 버린다.(방화벽으로 했던 일을 규칙을 줌으로써 처리한다.)
- 일반적인 처리 과정을 거치고 전송한다.(NAT/PAT 처리 필요한 경우 프로세스 거치고 전송)
-
Stats : 수행한 행동에 대한 통계 정보를 저장한다. 패킷과 바이트의 수를 센다.
-
과거에는 IP 주소가 같은 경우 같은 일을 하기만 할 뿐이었다.
-
현재는 IP 주소가 같더라도 규칙과 행동을 통해서 빨리 처리해야 한다면 빠르게, 패킷을 버리거나 일련의 처리 과정을 거치고 전송하는 등 다른 행동을 할 수 있다.
Network Function Virtualization
- Network Function Virtualization
-
과거 전형적인 네트워크 장치는 필요한 장치에 맞는 하드웨어, 소프트웨어를 구성하는 형식이다.
-
현재 NFV는 CPU, 디스크, 이더넷 스위치를 통해 기본 하드웨어를 구성하고, 내가 필요한 소프트웨어 기능을 올려 작동시키는 형식이다.
-
NFV와 SDN의 관계
-
SDN : 장치들을 연결하는 줄에 초점. 유연한 트래픽 포워딩
-
NFV는 장치 안에서 소프트웨어를 작동시키는 것에 초점, 가상화된 네트워크 함수의 유연한 배치
-
SDN와 NFV는 네트워크의 프로그램화를 이루기 위한 상호보완적인 도구들이다.
-
모바일 네트워크의 SDN 배포
SDN/NFV into 5G
- 5G Functional Architecture / Function Pool : Virtual Network Function으로 실행할 이미지. 장치들에 대해 필요한 기능을 내린다.
- 필요할 때 필요한 소프트웨어를 배포해 사용한다.
- 5G의 네트워크는 SDN, NFV. 필요한 곳에 CPU, 디스크, 네트워크를 물리적으로 설치하고 실제로 운용하는 사람은 NFV 구조에 따라 Virtual Network Function을 띄우고 SDN으로 통제한다.
- 요구사항이 전부 다르기 때문에 각각의 요구사항에 대해 맞춰 소프트웨어를 내려 서비스를 제공할 수 있다.