본문 바로가기
💻 개발/인프라

IT 인프라(2)

by 컴쏘 2023. 5. 27.

Network 기초 익히기

네트워크란 무엇이며 왜 필요할까?

네트워킹

어원적으로 Net(그물) + Work(일) : 그물을 짜는 행위 → 그물망 처럼 서로와 서로를 연결할 수 있도록 도와주는 것

인터넷으로 연결되는 세상을 가능하게 하는 것 → 다른 사람들과 정보와 자원을 공유할 수 있음

  • 네트워크를 통해 장비들은 서로 통신할 수 있게 되며, 이를 통해 우리는 정보와 자원을 공유함

OSI 7 Layer

네트워크를 이해하기 위한 가장 중요하고 기반이 되는 것

  • OSI 7 계층은 국제 표준화 기구 (ISO)가 발표한 모델
  • 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것
  • 신뢰성 있고, 원활한 통신을 수행하기 위해 모든 장비들이 지켜야하는 통신 규약
    • OSI 7 계층이 없던 시절에는 네트워크 장비 업체들이 참조할 모델이 없어서 각자 자신들이 생각하는 방식대로 장비를 만들고 구성
      • 자사 장비간의 연결만 지원 → 타사 장비와의 호환성은 지원하지 않음
  • 모든 컴퓨터 및 네트워크 장치는 OSI 참조 모델을 참고하여 만들어짐

  • HW 계층(레벨 1~3)
    • 1 (Physical 계층) : 통신을 위한 전기적 신호, Cable
    • 2 (Data Link 계층) : MAC 주소를 기반으로 통신
      • MAC 주소 : HW의 고유의 주소
      • frame : 2계층에서 Data를 부르는 명칭
    • 3 (Network 계층) : packet을 어디로 보낼지 routing 하는 작업
      • packet : 3 계층에서 Data를 부르는 명칭 (오고가는 Data)
      • routing : packet을 어디를 통해 보내야 하는지 그 길을 찾아가는 것
      • 일반적으로 같은 공간안에 있는 Network는 통신이 쉽다. 다른 공간에 있다면 통신할 수 있는 길을 찾아가야함 → 이 단계를 3단계 Router, L3 스위치를 통해 도와줌
  • SW 계층(레벨 4~7)
    • 4 (Transport 계층) : Data를 전송하는 것을 잘 조율하는 작업이 이루어 지는 단계
      • 보내고자 하는 Data의 용량, 속도, 목적지 등을 처리
      • 가장 중요한 것은 4 계층에서 송신지, 수신지의 port 번호를 인지할 수 있다는 것
        • port 번호를 인지할 수 있다 : 서비스를 구분할 수 있다
          • ex. 80 port : apache, 21 port : ftp …
        • 4 계층에 해당하는 장비L4 스위치에서는 서비스별로 그룹을 만들어 부하를 분산시키는 loadbalancing 작업을 수행할 수도 있음
    • 5 (Session 계층) : 다른 컴퓨터와 통신을 하기 위한 Session을 만드는 단계
      • Session을 통해 Application 간의 연결이 가능하게 함
      • Session의 품질 확인
      • ex. ssh 프로토콜
    • 6 (Presentation 계층) : Network와 Application 간의 Data 변환 (encoding 같은 작업이 이루어지거나 Data를 압축하고 암복호화 작업)
    • 7 (Application 계층) : 가장 위에 있는 계층으로, 사용자와 직접 상호작용하는 어플리케이션 단위
      • Internet을 접속하기 위해 사용하는 browser
      • 메신저 application

LAN과 Cable 알아보기

독립적인 네트워크 공간 - LAN(= 근거리 통신망 Local Area Network)

회사 사무실 같은 경우 내부 장비간에 통신이 되면서, 동시에 외부에서는 접근이 불가능해야 함

  • LAN : 특정 공간, 범위 내에서의 독립된 네트워크 공간
    • LAN을 구축하는데에는 여러가지 방법이 있지만, 이더넷(Ethernet protocol)이 표준 규격으로 사용됨
    • 회사나 한 건물 혹은 특정 지역에서만 제공되는 근거리 통신망을 의미

물리적으로 통신을 잇다 - Cable

실제 데이터센터에 존재하는 장비들은 cable을 통해 통신함

  • LAN 카드에 꽂혀서 실제 서버가 Network 장비와 연결될 수 있도록 함
  • 자주 사용되는 cable로는 크게 UTP cable과 광 cable이 있음
    • UTP cable : 근거리 통신을 필요로 하는 상황에서 1G bps 이하의 Network 전송 속도를 필요로할 때 보편적으로 많이 사용되는 cable
      • UTP 기반으로 구축하면 비용이 저렴하다.
      • 아직은 많은 데이터 센터에 있는 스위치 장비들이 UTP 기반이 많음
      • 서버를 처음 구매하면 딸려서 오는 1G port도 대부분 UTP 용도
    • 광 cable : 원거리의 고속 통신을 안정적으로 필요로 할 때 많이 선택하는 타입
      • UTP 대비 비용이 비싸다는 단점
      • latency와 error 율도 낮아서 성능적으로도 더 좋음
      • Hybrid Cloud를 구축할 때 고객의 data center와 클라우드 제공 업체의 data center를 광케이블을 통해 연결 → 사설 대역으로 서로 통신할 수 있음 (좀 더 안정적인 Network 환경 제공 가능)
      • data center에서 근무를 필요로 하거나 system 혹은 network 엔지니어라면 꼭 알아야 하는 것
        • 광케이블 꽂는 방법 : 송신과 수신을 담당하는 모듈이 각각 존재하기 때문에 미리 포설된 광케이블을 손으로 가려 어둡게 한 후
          • 불빛이 보이는 곳 : 송신
          • 불빛이 안보이는 곳 : 수신
        • 연결할 때는 불빛이 보이는 곳을 불빛이 안보이는 곳과, 불빛이 안보이는 곳은 불빛이 보이는 곳과 연결해야 함 → 그래야 연결이 잘된 것
  • cable은 각 타입에 맞는 NIC 혹은 Gbic에 연결시킬 수 있음
  • cable 카테고리에 따라 cable의 전송 속도와 대역폭이 다름 → 원하는 전송속도에 맞춰 cable 카테고리 설정

IP와 MAC 알아보기

통신을 위한 요소 - IP와 MAC 주소

장비 간 데이터를 전송하기 위해서 통신하기 위한 주소

IP 주소 : 네트워크 연결을 위해 제공되는 논리적 주소

  • IP : 호스트에서 호스트끼리의 통신을 하기 위한 주소
    • 인터넷에서 통신을 위해 TCP / IP 프로토콜을 사용
    • 이 프로토콜을 사용하는 장비를 구분하기 위한 요소가 IP 주소
    • IP 주소 부족하지 않을까?

  • 공인 IP : 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP에서 제공하는 전세계적인 고유의 주소
    • 공인 IP 주소는 개수가 유한, 돈을 주고 구매하는 유료자원
  • 사설 IP : 집이나 사무실 등 한정된 공간 안에서 통신하기 위한 특정 구역 내의 고유의 주소
    • 가상 IP로 외부와의 통신 불가
    • private network 안에서 사용 가능
    • 외부와의 통신을 원할 때는 반드시 라우터가 가진 공인 IP로 통신

어떻게 외부와 통신을 하는가?

  • 내부 IP 관리자가 배포한 사설 IP 할당 받음 → PC가 외부와 통신을 할 때는 Public IP를 할당 받아 외부와 접속

회사의 경우에는 몇백대의 IP를 할당하기 어려움 → NAT를 이용

어떻게 여러 PC가 하나의 공인 IP로 외부와 통신이 가능한가?

  • 각 PC 마다 사용하는 공인 IP의 port를 달리하여 구분

NAT table을 보면 각기 다른 사설 IP 가진 PC 들이 port 번호만 변경하여 하나의 동일한 공인 IP로 외부에 있는 PC와 통신을 할 수가 있게 됨

  • NAT는 일반적으로 외부망에서 내부망으로 들어올 수 없는 구조 → 보안 위협으로부터 보다 안전한 환경을 구축할 수 있음
  • MAC 주소 : 전 세계에서 유일한 하드웨어(NIC) 물리적 주소, 제조업체에서 장비를 제작 시 할당되며, 불가변적 → Network 통신을 위해 존재하는 LAN 카드의 port 마다 별도로 가지고 있음
    • global하게 유일하기 때문에 통신 장비의 identity를 제대로 표시할 수 있음
    • MAC 주소 왜 필요한가?
      • 일반적으로 우리는 IP 주소만으로 목적지를 찾아낼 수 없음 (IP 주소가 가변적이기 때문)
      • IP 주소는 IP를 관리하는 주체자에 의해 변경될 수 있음
        • IP 주소가 변경되었다고 해서 컴퓨터의 identity가 변경된 것은 아님
        • 기기 간 내부 통신을 진행할 때 IP 주소를 통해 목적지에 진짜 정체성인 MAC 주소를 알아내는 과정을 꼭 한번 거쳐야 함 → ARP
          • ARP : IP(3계층) → MAC(2계층)으로 바꿔주는 주소 해석 protocol
          • 이런 과정을 거치면 ARP table에 기록을 해서 다음번에도 동일한 IP가 들어왔을 때 MAC 주소로 변환해줌

요약하자면, IP는 통신을 필요로 하는 각종 장비에 연결되어 네트워킹을 도와주는 요소이지만, 장비에 붙는 IP는 언제든지 변할 수 있다. 따라서 절대로 변하지 않는 고유주소인 MAC 주소를 필요로 하며 통신시 IP를 통해 통신하고자 하는 대상의 MAC 주소를 알아내는 작업을 거친다. 이러한 MAC 주소를 알아내는 작업을 ARP라고 하며, IP와 MAC 주소를 매핑하여 임시로 저장해두는 곳이 ARP table이다.

다양한 통신 방법 (유니캐스트, 브로드캐스트, 멀티캐스트)

다수에게 통신을 할 지, 특정된 곳과 통신을 할 지에 따라 통신 방법이 달라짐

  • 유니 캐스트(Unicast)

어떤 특정 목적지로만 frame을 전달할 때 사용하는 방식 (1:1 통신 방식)

예시 그림을 보면 수신측이 Unicast 방식으로 같은 네트워크안에 있는 모든 서버에 frame을 전달

  • frame에는 전달받아야하는 목적지의 MAC 주소가 있음
    • 각 서버들은 frame을 전달 받은 이후 자신의 MAC 주소frame에 적힌 MAC 주소가 일치하는지의 여부를 확인
      • 일치 안함 : frame 버리기
      • 일치 함 : 일치하는 서버로 CPU로 frame을 전달
    • 전달받아야하는 특정 목적지에서만 CPU로 frame을 전달 → 다른 서버들은 부하가 생기지 않음 → 다른 장비의 성능을 저하시키지 않음
  • 브로드 캐스트(Broadcast)

**같은 네트워크 대역(브로드 캐스트 도메인)**의 모든 장비에 보내는 통신 → 타겟 주소와 수신자의 주소가 일치하지 않아도 packet을 받아야 함

  • 모든 장비는 packet을 받아 CPU로 전송 → 이로 인해 모든 장비의 CPU에는 Interrupt가 발생
    • Interrupt : CPU가 아닌 다른 장치의 요청에 의해서 예외 사항이 발생하여 처리를 요청하는 곳
      • 처리를 받아서 해야하다보니 성능이 떨어질 수 밖에 없음 → 성능이 떨어지는데 왜 브로드 캐스트를 써야 하는가?
        • ARP request가 브로드 캐스트를 통해 전송이 됨 → 내가 찾고자하는 PC를 찾기 위해 모두에게 보냄
        • router 끼리의 정보 교환
        • 다른 router를 찾을 때
        • 서버들이 어떤 서비스를 할 것인지에 대한 정보를 Client에게 알릴 때
        • 주로 일회적이 아닌 주기적으로 일어나게 된다.
  • 멀티 캐스트(Multicast)

한 번의 송신으로 여러 장비에게 메세지를 보냄 → 송신지와 수신지 사이에 존재하는 switch, router같은 네트워크 장비가 packet의 복사본을 전송해야하는 만큼 복사를 해서 대신 전송해주기 때문

  • 메세지를 보내고자 하는 대상에게만 packet을 보냄 → 수신그룹이 아닌 다른 장비에는 interrupt를 발생시키지 않는다는 장점이 있음

같은 네트워크? 다른 네트워크?

같은 / 다른 네트워크의 기준은 서브넷(Subnet)이 같은지에 따라 구분

  • 같은 네트워크 대역 안에서는 일반적으로 장비들 끼리의 통신 허용
    • 같은 네트워크 안이라면 별도의 장비 없이 통신 가능
  • 다른 네트워크 대역에 존재하는 장비와는 특별히 세팅을 따로 하지 않은 이상 통신 불가
    • 서버끼리의 길을 모르기 때문에 장비(router)를 가지고 통신해야 함

Subnetting : 하나의 네트워크를 여러 대역으로 분할하는 것

  • IP 대역을 효율적으로 나누어서 사용함으로써 IP 낭비를 줄일 수 있음
  • 네트워크를 용도 별로 분리하여 보안을 한층 더 강화할 수 있음

Subnetting 어떻게 하는 걸까?

파란색 24개가 같은 네트워크 안임을 의미 (Network 부분) → router를 거치지 않고 통신 가능

앞의 네트워크 대역에 속하는 각각의 PC나 서버 혹은 다른 장비 (host 부분) → 대역을 쪼개기를 원할 경우 비트 추가해서 네트워크 분리 가능

 

Summary

네트워크 장비 (스위치, 라우터)

스위치

여러 장치를 연결하여 하나의 네트워크를 구성하며, 네트워크 계층에 따라 다양한 역할을 수행

  • 주소 학습 기능 (Learning)
    • switch와 연결된 장비가 통신을 위해 frame을 내보낼 때, 해당 장비의 MAC address를 MAC address table에 저장
    • 나중에 어떤 장비가 누군가와 통신하고자 할 때, MAC address table 정보를 참고하여 data를 보낼 수 있음
  • 프레임 전달 (Flooding)
    • Learning 전 MAC 주소를 얻기 위해 broadcast를 뿌리기
  • 목적지로 전달 (Forwarding)
    • Learning을 통해 목적지 port의 MAC 주소를 알고있을 경우 해당되는 곳으로만 frame을 뿌리는 기능
  • 프레임 전달 차단 (Filtering)
    • 목적지가 아닌 다른 곳으로 frame이 전달되는 것을 방지해주는 기능 → forwarding이 가능한 이유는 filtering이 되기 때문

라우터 (L3 Switch)

router : 서로 다른 네트워크 간 통신을 가능하게 해줌

  • 경로 결정 (Path Determination)
    • routing 알고리즘을 이용해 전달하고자 하는 packet을 가장 최적의 경로로 보낼 수 있도록 길을 찾아내고 이것을 routing table에 저장
  • 스위칭 (Switching)
    • packet 경로를 지정한 후 보내는 작업

네트워크 가상화

클라우드 환경에서는 사용자들이 원할 시 동적으로 독립적인 가상 네트워크 공간을 제공

user가 늘어남에 따라 환경을 구축하는 것은 비용적으로나 공간적으로 어려움이 많을 수 있음

  • 단순한 네트워크 환경 뿐만 아니라 로드 밸런싱, 라우팅, 방화벽 역할도 함께 제공
  • 이는 모두 네트워크 가상화 기술을 바탕으로 제공
    • Switch, Router, Firewall 등 네트워크 장비를 가상화하여 하드웨어적으로만 구축이 가능했던 네트워크 기술을 소프트웨어를 통해 구축이 가능하도록 함
      • 기존에는 하나의 물리 인터페이스에 하나의 링크를 사용하던 방식 대비, 자원을 낭비하지 않을 수 있음
    • **VLAN 기술(네트워크 대역을 분리하여 사용할 수 있게 도와주는 기술)**을 통해 하나의 인터페이스에 여러 링크를 생성할 수 있음 → VLAN도 네트워크 가상화 기술
    • 동적으로 가상 스위치를 구축하고 삭제할 수 있음
    • 물리적 라우터의 자원을 분리하여 N개의 가상 라우터를 생성할 수 있음

VLAN

VLAN : 스위치를 가상화 하는 기술 중 예전부터 많이 사용되오던 기술

  • 가상 LAN 과 같은 기술로, 한 대의 스위치를 분리된 여러 대의 스위치처럼 분리할 수 있게 도와줌
  • 이 분리된 스위치는 사실상 동일한 물리 port를 통해 전송됨

예시 그림을 본다면

  • VLAN이 없다면 각 사무실마다 3개의 네트워크 망을 제공하기 위해 3대의 스위치를 각기 다르게 구축하고 연결해야 함
  • VLAN으로 하나의 스위치에서 가상의 LAN을 여러개 만들 수 있다면 어떨까?
    • VLAN 기술이 지원되는 스위치와 라우터를 사용하면 하나의 링크만으로 여러개의 네트워크 정보를 같이 실어내보낼 수 있음
    • Switch에서는 이런 여러 broadcast 영역을 나눠서 서비스할 수 있음

대역마다 고유의 VLAN number가 있음 (각 port마다 설정)

  • 한대의 switch에 모두 연결하고 VLAN setting만 해주면 여러 대역을 함께 쓸 수 있다.
    • Trunk : 여러개의 VLAN을 하나의 링크로 이용할 수 있게 도와주는 기술
      • 보통 private cloud에서 사용하는 host 서버 같은 것을 구축할 때존재하는 여러 내부망을 하나의 Network 선을 통해서도 이용할 수 있도록 네트워크를 trunk 모드로 할 수 있음

네트워크 Overlay 기술 - VXLAN

VXLAN : VLAN에 eXensible의 X를 더한 것으로, VLAN에 확장성과 유연성이 더해진 기술

public cloud는 다양한 사람들이 사용하기 때문에 대규모 Network provisioning은 물론이고, 사용자 한 명 한 명이 분리된 Network와 별도의 보안 환경을 구축할 수 있어야 함

물리적 환경에 있어서도 제약이 없어야 하고, 여러 데이터 센터 간의 통신도 가능해야 함

일반적으로 Network 대역이 다른 장비는 서로 통신을 할 수 없음 → VXLAN은 이런 제약 없이 가능함 (다른 data center에 위치한 다른 subnet으로도 얼마든지 frame을 보낼 수 있음)

Software Define Network(SDN) 에도 VXLAN 기술이 들어있음 → SW적으로 Network 정의 가능

Cloud Service에도 VXLAN 기술이 들어가 있음

  • VXLANencapsulation protocol로 Multicast 통신을 기반으로 Flood & Learn 방식으로 동작
  • VNI(Segment ID)를 통해 Layer 2의 subnet을 관리
  • VTEP는 VXLAN Tunneling End Point의 약어
    • 실제 패킷의 encapsulation 및 decapsulation이 진행되는 곳
    • End Point(서버 등)에서는 위에서 VXLAN으로의 통신 여부 등은 전혀 모름

네이버 클라우드 플랫폼 네트워크 상품

VPC와 Subnet

  • VPC (Virtual Private Cloud) : 가상화된 private cloud 환경을 구축하기 위한 가장 첫번째 필수 요소이자 필수 단계
  • Subnet을 통해 IP 대역을 세분화하여 사용 가능

그림에 나온 것 설명

  • NACL : Subnet 방화벽
    • NACL과 연결된 Subnet에 들어오는 traffic에 대해 검수를 하게 된다.
    • Subnet에 대해 특정 IP 대역이 특정 port로 접근하는 것을 허용 혹은 허용 안함 → 네트워크의 보안적인 요소
  • ACG : 해당 NIC으로 들어오는 traffic에 대해 방화벽 역할을 함

Load Balancer

부하를 여러 서버로 분산시켜주는 역할

데이터 센터에서는 보통 L4 스위치, L7 스위치가 해줄 수 있는 기능을 Cloud에서 Load Balancer가 제공해줌

  • 사용 용도에 따라 Application, Network Proxy, Network Load Balancer를 제공

VPN 기술이란?

Public Network위에서 외부에서 접근할 수 없는 Private Network 즉, 사설망에 마치 전용선과 같이 연결하여 사용할 수 있게 해주는 사설 통신 기술

  • Virtual : Public Network 위에서 가상으로 전용선과 같이
  • Private : 외부에서 접근할 수 없는 Private Network에 연결하여 사용할 수 있게 도와주는 사설 통신
  • Network : Network 기술

IPsec VPN

사설망과의 통신을 위한 가상 터널을 IPsec으로 암호화하여 보호

네트워크 망과 망을 연결할 때 사용되는 기술

ex. 회사의 Network 망과 Cloud platform 안의 개인 망을 연결

SSL VPN(*Security 상품군)

SSL 암호화로 보호

인가 받은 Client들이 특정 대역에 접근을 하려고 할 때 사용하는 기술

SSL VPN Client에 정상적으로 로그인 후 인증을 하면, 개인 PC에는 특정 네트워크에 접근할 수 있는 IP 부여


본 글은 "누구나 쉽게 이해하는 IT 인프라 정복하기 #2편" 을 공부하고 정리한 글입니다.
[영상 링크] : https://www.youtube.com/watch?v=EQzTDfrib5Y

'💻 개발 > 인프라' 카테고리의 다른 글

ubuntu EC2에 docker 설치하기  (0) 2023.06.03
클라우드 서비스(AWS 서버 구축)  (0) 2023.06.01
모던 서버 기술 관련 배경 지식 이해  (0) 2023.06.01
IT 인프라 (3)  (0) 2023.05.28
IT 인프라 (1)  (0) 2023.05.27