loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 스터디
  • 인프런
  • 마틴 파울러
  • DDD 세레나데
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • fastcampus
  • 객체지향
  • JUnit
  • 오브젝트
  • 인프라공방
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 넥스트스탭
  • 테스트 주도 개발
  • 현실세상의 TDD
  • 스프링
  • nextstep
  • study
  • 장인정신
  • ATDD
  • 조영호
  • 이규원
  • Test Driven Development
  • 자바
  • 추상화
  • 백기선
  • 소프트웨어 장인
  • Patterns of Enterprise Application Architecture
  • TDD
  • java
  • 김영한

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

🌐망 분리하기
개발 & 방법론/인프라

🌐망 분리하기

2022. 6. 9. 20:59

네트워크(Network)와 통신망

네트워크는 노드(컴퓨터 등)를 통신망을 통해 서로 물리적으로 연결된 체계를 말한다.

통신망은 노드들과 이들 노드들을 연결하는 링크들로 구성된 하나의 시스템으로 줄여서 '망'이라고 부른다.

- 노드 : IP로 식별할 수 있는 대상

- 링크 : 물리적 회선

 

AWS에서의 망

- Region : 국지 / 지역

- Availability Zone : 데이터 센터(ap-northeast-2a, ap-northeast-2b)

- VPC : 하나의 Region에 종속, 다수의 AZ설정 가능, VPC IP 대역 내에서 망 구성

AWS의 하나의 Subnet을 하나의 망이라고 칭할 수 있다.


네트워크 장비

네트워크를 구성하는 기본적인 장비는 다음과 같다.

- HUB : 네트워크에서 여러 대의 컴퓨터, 네트워크 장비를 연결하는 장치다. 한대의 허브를 중심으로 별 모양으로 연결된다, 같은 허브로 연결된 컴퓨터와 네트워크 장비는 상호 간의 통신이 가능해진다.

 다만, 주고받는 데이터가 허브에 연결된 모든 컴퓨터에 전달되기 때문에 연결된 컴퓨터가 많아질수록 충돌(collision)이 발생한다.

- SWITCH : 허브의 문제점을 개선한 장비로 컴퓨터의 MAC 주소를 사용해서 원하는 컴퓨터와 데이터를 주고 받을 수 있다. 

- ROUTER : 서로 다른 네트워크 간에 데이터 패킷을 전송하는 네트워크 장비다.

 

L2 Switch

- Multiple Access를 위한 장비

- 서버에는 Network Interface Card가 있다.

- Network Interface Card에는 MAC 주소가 있다.

    - 3c:22:fb:78:4a:c0 (앞 6자리는 제조사, 뒤는 식별자) 

L2 Switch 통신방식

- MAC 테이블에 정보가 있을 때 : 해당 포트로 전달 (Forwarding)

- MAC 테이블에 정보가 없을 때 : 전체 포트에 전달 (Flooding)

    - 응답하는 장비가 있으면 그 포트에 장비가 있다고 인지하고 MAC 테이블에 등록

Flooding 모습.

 

Router

- 서로 다른 네트워크 간의 통신을 중계하는 장비

- MAC 테이블에 정보가 있을 때 : Forwarding

- MAC 테이블에 정보가 없을 때 : 해당 통신을 버린다 (Drop) 

- 라우팅 프로토콜을 활용하여, 어떤 대역으로 패킷을 보내는 것이 최적 경로인지 학습함.

인터넷 통신

- 외부 네트워크와 통신하기 위해서는 Public IP가 필요

- 라우터는 Private IP가 목적지일 경우 인터넷 구간으로 보내지 않음. 따라서, Private IP를 Public IP로 변환해주어야 함(NAT)

- 자신이 속한 subnet(172.16.0.0/24)의 서버는 가상 스위치를 통해 직접 통신

- 자신이 속하지 않은 subnet(172.16.1.0/24)은 가상 라우터를 통해 직접 통신

- 그 외의 0.0.0.0/0 (전체 대역)은 Internet Gateway로 통신을 보내도록 학습


VPC 생성

- Virtual Private Cloud는 사용자가 정의하는 가상의 네트워크

- 하나의 서비스를 위한 네트워크 단위(AWS, NHN Cloud 등에서 사용함)

- 서브넷과 라우팅 테이블, 인터넷 게이트웨이 등을 설정할 수 있다. 

    - 서브넷 : VPC에 설정한 네트워크 대역을 더 세부적으로 나눈 네트워크

    - 라우팅 테이블 : 서브넷이 다른 서브넷 혹은 외부막과 통신하기 위한 정보를 가짐

    - 인터넷 게이트웨이 : 외부망과의 연결을 담당

 

서브네팅

- 할당된 네트워크 주소를 작은 네트워크로 쪼깨는 것을 의미.

- VPC는 n개의 Subnet을 가질 수 있으며, VPC의 CIDR 내에서 구성 가능.


Defence in depth, 심층 방어

다양한 계층으로 방어

개인 정보를 다루는 DB 서버 등을 위한 내부망과 사용자가 접근하는 웹 서버를 위한 외부망을 구성한다.

- 여러 겹의 복잡한 방어를 통해 최적화되고 강력한 보안체계를 구축

- 보안 제어가 실패하거나 시스템 수명 주기 동안 직원, 절차, 기술, 보안 등의 취약성이 악용될 경우, 분리된 계층마다 보안 대책으로 최대한 지연시킨다.


참고

인프라공방

Defence in depth 심층방어

 

'개발 & 방법론 > 인프라' 카테고리의 다른 글

🚚 Cloud를 사용하는 이유  (0) 2022.05.30
    '개발 & 방법론/인프라' 카테고리의 다른 글
    • 🚚 Cloud를 사용하는 이유
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바