Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3rd week] 11월 17일 jinychoi #3

Closed
kanamycine opened this issue Nov 19, 2021 · 3 comments
Closed

[3rd week] 11월 17일 jinychoi #3

kanamycine opened this issue Nov 19, 2021 · 3 comments

Comments

@kanamycine
Copy link
Member

네트워크의 전체상을 이해하자.

본 블로그 포스트는 "그림으로 배우는 네트워크 원리(GENE 저)"를 읽고 정리하고, 궁금했던 부분을 더하여 작성하였습니다. 총 7 챕터로 이루어져 있고, 중간 중간 쪼개어 포스팅을 진행할 예정입니다. 저는 네트워크에 대해 지식이 전무하며, 처음으로 공부하는 것입니다. 때문에 부족한 점이 많겠지만 열심히 블로깅해보도록 하겠습니다!

1. 무엇을 위해서 네트워크를 이용하나 ?

도대체 네트워크가 무엇일까 ?

네트워크란 그물처럼 구성된 시스템을 나타내는 말입니다. 이 책에서는 그중에서도 컴퓨터끼리 데이터를 주고 받는 시스템인 컴퓨터 네트워크를 설명합니다. 이전에는 일부 대기업에서만 컴퓨터 네트워크를 이용했지만, 현재는 대부분의 기업이나 일반인도 이용하고 있습니다. 컴퓨터 네트워크는 PC나 스마트폰과 같은 정보 단말 기기를 서로 연결해서 만들어 집니다. 컴퓨터 네트워크 덕분에 다른 사람과 데이터를 주고 받을 수 있게 됩니다.

네트워크를 이용하는 목적

데이터를 주고 받는 행위 자체는 네트워크를 이용하는 목적이 아닌 수단입니다.

  • 정보를 수집한다.
  • 문서 파일등을 공유한다.
  • 효율적으로 커뮤니케이션 한다.
  • 출장 신청이나 정산 등의 업무를 처리한다.
  • 그 밖에도 일상 생활, 업무 등 다양한 목적으로 네트워크가 이용됩니다.

2. 누가 이용할 수 있는 네트워크인가 ?

네트워크의 분류

네트워크는 이용하는 기술 등을 바탕으로 다양하게 분류할 수 있습니다. 그중에서도 '이용하는 사람'에 따른 관점에서 볼 때, 크게 다음 2가지로 분류하면 이해하기가 쉬워집니다.

  • 사용자를 제한하는 사설 네트워크
  • 누구나 이용할 수 있는 인터넷

사내 네트워크나 가정 네트워크처럼 접속할 수 있는 사용자를 제한하는 사설 네트워크가 있고, 반면에 접속할 사용자를 제한하지 않고, 누구든 이용할 수 있는 네트워크인 인터넷이 있습니다. 인터넷을 사용하면 다른 사용자와 자유롭게 데이터를 주고 받을 수 있습니다.

사실 네트워크만으로는

사용자가 제한된 사설 네트워크는 사용자끼리만 정보를 공유할 수 있어서, 장점이 그다지 많지 않습니다. 일반적으로 접속할 수 있는 사용자가 많아질 수록 네트워크의 가치가 높아집니다. 그래서 네트워크의 이용 가치를 높이고, 사욪아가 더 많은 장점을 누릴 수 있도록 사설 네트워크를 인터넷에 연결하는 경우가 대부분입니다.

3. 사내 네트워크 구성

LAN과 WAN

LAN(Local area Network)과 WAN(Wide Area Network)는 네트워크 관련 용어로 자주 등장합니다. 이 둘은 구성된 기업의 사내 네트워크로 생각하면, 차이를 쉽게 알 수 있습니다.

예를 들어 , 규모가 큰 기업은 복수의 거점을 구축합니다. 이때 각 거점의 네트워크가 LAN입니다. LAN을 구축함으로 거점 내의 PC나 서버의 통신이 가능해집니다.또한 개인 사용자의 가정내 네트워크도 LAN입니다.

복수의 거점에서 파일을 공유하거나, 메일을 주고받으려면 거점 간의 통신도 필요하게 되는데 거점의 LAN끼리 연결한 것을 WAN이라고 합니다.

다시말해, 거점 내 네트워크 LAN이고, LAN끼리 연결한 것이 WAN 입니다.

LAN과 WAN의 정리

  • LAN - 스위치 또는 공유기를 기준으로 형성된 네트워크, 간단하게 집에 있는 공유기를 통해 접속한 기기

  • WAN - LAN과 LAN을 합쳐 광범위하게 구성된 네트워크, 다른 네트워크에 접속하려면 인터넷을 사용해야 하는데, 이런 LAN들이 모여 하나의 WAN을 이루게 됨.

4. 네트워크의 네트워크

인터넷의 구성 요소

누구나 이용할 수 있는 인터넷은 전 세계의 다양한 조직이 관리하는 네트워크가 연결 된것입니다. 그 조직의 네트워크를 AS (Autonomous System)라고 부릅니다. AS의 구체적인 예는 인터넷 접속 서비스를 제공하는 SKT, KT와 같은 인터넷 서비스 프로바이더(ISP)입니다. Google, Amazon등 인터넷 상에서 서비스를 제공하는 기업 네트워크도 AS입니다.

ISP의 상위 그룹을 Tier1이라고 부릅니다 .Tier1 이외의 ISP는 최종적으로 Tier1에 연결되어 자신이 관리하지 않는 네트워크의 정보도 입수합니다. 결국, 인터넷 상의 모든 ISP는 Tier1을 경유해서 연결 되는 것입니다.

인터넷 서비스의 개요

ISP와 계약하고 가정이나 사내 네트워크의 라우터를 ISP의 라우터 (라우터관한 내용은 chp6 에서 자세히 다룰 예정입니다.)와 연결하면, 인터넷을 이용할 수 있게 됩니다.

5. 클라우드 서버

애플리케이션이 제대로 동작하려면 서버가 항상 가동하고 있어야 합니다. 중요한 데이터를 다루는 서버에서는 서버의 상태를 항상 감시하고 있으며, 뭔가 문제가 발생하면 바로 대처합니다. 데이터 백업도 항상 해두어야 합니다. 필요에 따라서는 처리능력을 확장할 필요가 있습니다. 보안 대책도 중요하고, 이처럼 서버 운용 관리에는 시간과 비용이 많이 들어갑니다.

서버를 인터넷 저편으로

서버를 직접 관리 운용하지 않고, 인터넷을 통해 서버의 기능만 이용할 수 있게 한 것이 클라우드 서비스 입니다. 덧붙여, 직접 서버를 운용하는 관리하는 기존 서버 운영 방법을 On-Premise라고 합니다.

클라우드 서비스는 매우 편리하지만, 보안이나 가용성에 주의가 필요합니다. 자신의 관리가 미치지 않는 범위에서 데이터가 유지되는 점과 서비스를 이용할 수 없게 될 가능성도 있다는 점을 꼭 인식하고 사용해야 합니다.

클라우드 서비스는 네트워크를 경유해 서버의 어느 부분을 사용자가 이용할 수 있게 하느냐에 따라 다음 세 가지로 분류할 수 있습니다.

  • IaaS
  • PaaS
  • SaaS

- IaaS(Infrastructure as a Service)

서버를 운영하기 위한 IT 인프라 서비스를 제공합니다.

여기에는 스토리지, 네트워킹 등이 있으며 이런 IaaS를 사용함으로써 기존 On-premise 방식보다 확장성이 좋으며 가상화 기술을 사용하여 탄력적으로 리소스를 관리함으로써 리소스 낭비를 줄여 비용적인 측면에서 효율성을 만들어 낼 수 있습니다.

- PaaS(Platform as a Service)

애플리케이션을 개발, 실행, 테스트, 관리 등을 할 수 있도록 서비스를 제공해 줍니다.

기존에는 위의 것들을 하기위한 플랫폼을 구축했어야 했다면 PaaS를 사용함으로써 개발자들은 Infra 영역의 수고를 덜어 오직 개발에만 집중할 수가 있습니다.

또한, IaaS가 제공하는 이점 또한 가지기 때문에 만약 개발한 애플리케이션의 사용자가 급증하여서 리소스가 추가로 필요해지면 이를 자동으로 늘리고, 다시 사용자가 감소하면 다시 그의 맞는 리소스로 되돌려서 비용을 절감할 수 있습니다.

- SaaS(Software as a Service)

모든 서비스를 공급 업체가 제공하며 관리해 줍니다. 이는 즉, 어느 기능/서비스를 제공하는 하나의 프로그램같은 것으로 보면 됩니다.

예를 들면 Microsoft의 M365를 말할 수 있습니다. M365는 클라우드(인터넷) 상에서 워드, 엑셀 등을 사용할 수 있는 것으로 이런 프로그램들은 공급 업체 쪽에서 개발 및 운영을 함으로써 고객 입장에서는 제품이 제공하는 기능 문서 작성과 같이 서비스를 이용만하면 됩니다.

6. 마치며,

오늘은 그림으로 배우는 네트워크 원리를 읽고 중요하다고 생각되는 부분을 정리해 보았습니다. 책을 구입해두고 읽어야지하고 먼지만 쌓인 것 같은데, 적은 양이더라도 꾸준히 책을 읽고 정리해놓으면 다음에 잊더라도 복습도 쉽게 할 수 있을 것 같다는 생각에 포스팅을 시작하게 되었습니다. 꼭 책을 완독 할 수 있었으면 좋겠습니다. 화이팅 ! !

@kanamycine kanamycine changed the title COMPUTER NETWORK [chp1. 네트워크의 기본] [3rd week] 11월 17일 Nov 19, 2021
@kanamycine kanamycine changed the title [3rd week] 11월 17일 [3rd week] 11월 17일 jinychoi Nov 19, 2021
@kanamycine
Copy link
Member Author

❓ 민석님 질문

책읽는 공부는 정보를 집약적으로 얻어서 좋은데, 집약적으로얻어서 와닿는게 떨어지더라구요.
그래서 내가 지금담당하는 서비스에 접목가능한지를 생각하거나, 현실에서 그런이슈가 있는지 보는게 흥미유지에 도움이되는것같습니다.
그런의미로(?) 이번 kt사태에서, 근본원인은 라우팅 테이블 에러라고 했는데요. 블로그 이미지중 isp 관련이미지를 봐도, isp들이 거미망처럼 있어서 한 지점이 다운되더라도 우회경로를 찾아서 느리더라도 도착은 해야하는거 아닌가? 라는 의문이 들었습니다.
실제로 kt는 전면마비되었고, 다른 통신사도 영향을 받았었는데, 어떻게 그런일이 가능했는지 궁금합니다

❗️답변

우선 너무 좋은 질문을 해주셔서 감사드립니다. 저는 책으로 공부하는 방법이 익숙한데, 말씀해주신 방법으로 공부법으로 공부를 해봐야겠다는 생각이 들었습니다(지금까지의 해온 공부가 개판인 것 같아서요.....ㅎㅎ) 제가 네트워크에 매우매우 빈약한 지식 밖에는 없지만 나름 찾아본 결과, 라우팅 테이블 에러가 맞다고 합니다. 하지만 한 지점의 서버가 나간 것이 아니라 최적 경로를 찾아내는 라우팅 자체에 문제가 생기게 되어 먹통이 되어버렸습니다 ~~~

우선 KT는 외부 네트워크와의 연결에 BGP(Border Gate Protocol) 프로토콜을 사용합니다. BGP는 본 글에 나와있는 AS(자치 시스템) 간에 라우팅 정보를 전달하는 데 사용되는 대규모 라우팅 프로토콜입니다. BGP가 ISP에 가장 적합한 프로토콜이라고 합니다.
KT네트워크 내부 경로 구성에는 IS-IS 프로토콜을 사용합니다. 라우터는 BGP, IS-IS 프로토콜 등을 통해 교환한 정보를 종합하여 최종 경로를 설정하는데요, 이날 사고가 발생한 라우터 (라우터 신형 교체 작업 중)에 IS-IS 프로토콜 명령어를 입력하는 과정에서 작업자가 프로토콜의 종료 명령어 'exit'을 빠뜨리게 됩니다.

그 결과, BGP 프로토콜과 연결이 됐고, BGP 프로토콜에서 교환해야 할 경로 정보가 IS-IS 프로토콜로 몰려 평균 1만개 내외의 정보를 교환하는 ISIS프로토콜에서 수십만개의 BGP프로토콜이 몰리면서 경로 설정에 오류가 생기게 되었습니다. (코드 완성후 2번의 검증과정이 있었는데도 잡아내지 못했다고 합니다. ㅠㅠ )

그렇다면 IS-IS 프로토콜 내에 입력된 오류가 전국에 연쇄적으로 영향을 주게 되었나 ?
KT 네트워크에 있는 라우터들을 이어주는 ISIS프로토콜은 안전장치 없이 전국을 모두 하나로 연결하고 있었습니다. 원래 라우터들이 상호간의 정보 최신화를 위해서 자동으로 데이터를 주고 받게 되는데요, 라우터에 잘못된 라우팅 경로가 설정되면, 전국 지사의 KT라우터에도 잘못된 업데이트 정보가 전달된 것입니다. 이 과정이 겨우 30초밖에 안걸렸다고 합니다.

결국 한 개 라우터의 잘못된 라우팅 경로 업데이트가 전국의 라우터에 연쇄적으로 일어나서 장애가 전국적으로 확대된 것 입니다.

@hyukjin-lee
Copy link

오.. 좋은 질문과 답변 보고 배워갑니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants