brunch

You can make anything
by writing

C.S.Lewis

by Younggi Seo Aug 13. 2019

Internet Structuring

인터넷 개괄

필자가 처음으로 인터넷에 대한 이론을 맞이한 것은 초등학교 시절에 한창 컴퓨터 판매점으로 유명했었던 세진컴퓨터 랜드에서 본 외국 저자가 쓴 책을 통해서였다. 그 당시 대한민국은 나우누리, 하이텔, 천리안, 그리고 한국통신(KT)에서 처음 시작한 KONET 등 PC통신 시대의 막이 열렸었다. 책에서 본 인터넷의 개념은 'WEB'이라는 어원에서 비롯한 용어의 설명을 서두로 시작했다. 거미줄과 같은 웹망을 통해 네트워크가 전 세계로 이어진다는 내용이었는데, 몇 페이지 넘기다가 프로토콜이나 넷스케이프 등의 클라이언트 서버에 대한 설명이 나올 때쯤 너무 생소한 나머지 덮었다. 하물면 MS의 창업자 빌 게이츠조차 인터넷의 서막이 태동할 때, 인터넷의 시대가 급부상할 것을 예견하지 못해 뒤늦게야 인터넷 익스플로러를 만들어 윈도에 끼워 넣어 독점 판매를 시작했다고 했겠는가?


하지만 이제 네트워크에서 보안이 주요 화두로 태동한 시대에 살고 있는데 사이버 보안 산업은 앞으로 더욱더 '계륵' 이음동의어와 같게  것이다. 필자가 감히 예견  해도 그렇게  수밖에 없는 세상이다. 그리하여 필자가 이제  번째로 몸담게  직장에서 기본기를 다시 환기할 , 인터넷을 개괄해(추려내)보려고 한다.


한 가지의 화두는 "개발자들은 어떤 'TCP 상태 머신'을 사용하는지 모른다."이며, 파이썬을 활용해 네트워크의 효율적 관리를 위한 자동화와 DevOps와 SDN 가이드까지 사이드 프로젝트로 완성해보려는 목적이다.


먼저 일반인이 인터넷을 사용하는데 가장 큰 공을 하는 곳이 인터넷 서비스 제공자(Internet Service Provider, ISP)인데, ISP는 엣지 노드를 사용해 트래픽을 코어 네트워크로 모은다. 즉 이 코어를 통해 하위의 작은 네트워크를 거미줄처럼 서로 연결해주는 역할을 갖는다. 특정 엣지 노드에 대해 ISP는 다른 ISP로 신호를 전달해 원하는 목적지까지 트래픽이 갈 수 있도록 한다. '트래픽'이란 흔히들 차가 막힐 때, 차들의 교통상태를 뜻하는 용어로 트래픽의 단위는 bps(bit per second, 대역폭), 즉 초당 비트수이다. 전기학에서 암페어가 높다고 전기가 셀 거라고 생각할 수도 있는데 도로가 넓다고 트래픽이 좋은 게 아니라, 그 넓은 도로에 지나다니는 차들(전압)이 많음과 동시에 원활히 흐를 때 전기량이 센 것이다. 같은 개념으로 네트워크에서도 트래픽량,  초당 얼마나 많은 데이터가 전송할  있느냐에 따라 통신의 원활함(가용성) 보장할 수 있다.


사설이 길었는데, 책에서는 목적했던 곳에서 신호가 반환할 때, 트래픽이 컴퓨터, 태블릿, 스마트폰 등으로 전달되는 경로는 반드시 같을 필요는 없다고 한다. 이것은 네트워크 계층 특성상 경로(route)의 최적화(optimization)를 위한 길이 그때마다 다를 수 있다는 뜻이다.


노드(Node)란, 경로마다 거치는 구간을 일컫는 말이며,


1) 호스트 : 네트워크의 끝에 위치한 노드로 다른 노드들과 통신한다. 현재 시점에서 호스트는 전통적인 사용자 PC가 될 수도 있고, 스마트폰이나 태블릿, TV 가 될 수 도 있음. 사물인터넷(Internet of Things, IoT)이 등장한 이후에는 IP 카메라, 셋톱 박스, 농업이나 자동차 등에 활용하는 센서, 그리고 드론에 장착한 카메라나 센서까지 호스트에 속함.

->이 말은 곧, 해커들의 공격 대상이 될 수 있다는 말임. 그래서 인터넷에 연결하는 호스트의 수가 증가하는 추세에서 이 모든 것에 주소를 부여하고, 라우팅 하고, 관리할 필요성이 그 어느 때보다 중요해지고 있음.(2018, 에릭 추)


2) 서버 : 우리가 인터넷에서 보내는 대부분의 시간은 서비스를 요청하는 데 쓰이며, 여기서 '서비스'란 웹 페이지일 수도 있고 이메일 수신일 수도, 파일 전송일 수도 있다. 이 서비스들을 제공하는 주체를 '서버'라고 정의함.

-> 이름에서 짐작할 수 있듯이 서버는 여러 노드에 서비스를 제공하며, 이 작업을 수행하기 위해 비교적 높은 수준의 하드웨어 스펙을 갖고 있음. 달리 말하면, 서버는 네트워크에서 다른 피어들에 추가 기능을 제공하는 특수한 종류의 노드라고 할 수 있음.


3) 네트워크 컴포넌트 : 서버와 호스트의 관계를 도시와 마을 정도로 비유한다면, 네트워크 컴포넌트는 그들을 연결하는 길과 고속도로로 비유할 수 있음. 이런 의미에서 빌 게이츠가 쓴 책의 제목인 '정보 고속도로'라는 말은 급격히 증가하고 있던 비트와 바이트를 전 세계로 전달하는 네트워크 컴포넌트를 묘사한다는 면에서 적절한 용어임. 이러한 네트워크 컴포넌트는 라우터와 스위치, 광케이블, 동축 케이블, 동선, DWDM 장비 등을 말함.


기본적인 네트워크 개념은 OSI 7 계층을 빼놓을 수 없으나, 앞으로 다룰 사이드 프로젝트는 클라우드 데이터센터를 가동하기 위해서 매우 필요한 네트워크 자동화이므로 상위의 상세한 개념은 앞서 필자가 게재한 글로벌 정보보안 매거진의 '가상 사설망(VPN)의 IPsec 인증' 편이나 악성코드 분석 및 데이터셋 구축 매거진에서 네트워크 보안과 관련된 챕터를 보길 바란다. 지금 참고하는 책의 저자는 전통적인 방법으로 터미널이나 커맨드 라인 인터페이스(CLI)로 클라우드 데이터센터의 네트워크 기기를 관리하면, 서비스를 제공하는 데 필요한 작업 시간이 기하급수적으로 증가할 밖에 없다고 말하며, 또한 인간이 같은 작업을 반복하는 것은 비효율적이고, 실수가 발생할 수 있으며, 재능 낭비라고 강조한다.


그래서 이 책의 저자, 에릭 추는 사용자로부터 데이터센터까지 거쳐 가는 네트워크 숫자를 하나라도 더 줄인다와 데이터센터로부터 멀리 떨어진 곳에 충분한 리소스를 배치해 놓는다는 두 가지의 대안을 제시한다.


예를 들어, 비디오 스트리밍 서비스(YOUTUBE)를 구축하고 싶다고 가정해보자. 사용자들이 원활한 스트리밍을 할 수 있도록 하기 위해서는 사용자와 가까운 곳에 비디오 서버를 설치하는 것이 가장 효율적이다. 예컨대 해당 도시의 ISP 내부나 바로 옆에 서버를 놓으면 좋을 것이다. 또한 비디오 서버의 업스트림을 ISP 한두 개가 아닌 거의 모든 곳에 연결함으로써 대역폭을 최대한 확보하는 방법도 있다. 이런 식으로 대형 ISP와 콘텐츠 제공자를 연결해주는 데이터센터가 '엣지 데이터센터'다. 클라우드 데이터센터만큼 많은 숫자의 네트워크 기기는 아니지만, 엣지 데이터센터에 네트워크 자동화를 적용하면 보안과 관리 면에서 갖는 이점이 크다.


자, 여기서부터 앞서 말한 이론은 다 필요 없더라도 이건만은 꼭 알아 넘어가야 한다고 생각하는 '클라이언트-서버 모델'이다.


인터넷 이전에도 DARPA-net 시대라고 미군용 목적으로 사용했던 인터넷 전신 개념이 있었다. 이때에도 다른 노드에게 콘텐츠를 제공하기 위한 워크스테이션(서버) 노드가 따로 존재했고, 이 워크스테이션은 더 높은 H/W 사양을 가졌으며, 엔지니어들이 좀 더 신경 써서 관리해야 했다. (필자가 두 번째로 하게 된 일도 이러한 계통의 IT 보안이며, 특히 공공기관에서 많이 사용하는 시스템 프로토콜을 엔지니어링 한다.) 다른 데에 리소스와 서비스를 제공해주는 노드를 일반적으로 서버라 부르고, 서버는 유휴 상태(idle)에 있으면서 클라이언트가 리소스를 위해 요청을 보내오기를 기다린다. 이렇게 클라이언트가 외부에 분산된 리소스를 요청해 받아오는 모델을 '클라이언트-서버 모델'이라고 한다.(2018, 에릭 추)


그런데 어떤 노드가 다른 노드에 요청을 보낼 때 그 시간, 속도, 출발지, 목적지를 어떻게 파악할 수 있을까? 여기서 네트워크 프로토콜이 등장한다.



Reference

에릭 추. 『파이썬 네트워킹 마스터』. 서울: 에이콘, 2018.






   

  

매거진의 이전글 INTRO: 블록체인과 비트코인
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari