welcome to sisi's space! ‎ε(*⌒▽⌒)੭*゚¨゚゚・*:..☆

Dev & Study

멋사 세미나 과제 5

Sisi_ 2024. 12. 5. 23:21

IP, DNS, 포트, VM

IP (Internet Protocol)

IP는 인터넷에서 데이터를 주고받을 때 사용하는 주소 체계이다. 모든 네트워크 장치는 IP 주소를 통해 서로를 식별하고 통신한다. IP는 현재 IPv4와 IPv6 두 가지 방식으로 나뉜다.

  • IPv4: 숫자 4개로 구성되며, 각 숫자는 0~255 사이의 값을 가진다. 예: 192.168.1.1
  • IPv6: 더 많은 주소를 제공하기 위해 16진수 8개로 확장된 형태다. 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

IPv4는 주소 부족 문제로 인해 현재 IPv6로 점차 대체되고 있다.

DNS (Domain Name System)

DNS는 사람이 기억하기 쉬운 도메인 이름(예: www.google.com)을 숫자로 된 IP 주소(예: 142.250.185.78)로 변환해주는 시스템이다. 인터넷 사용자가 IP 주소를 일일이 기억할 수 없으므로 DNS가 인터넷의 전화번호부 같은 역할을 해주는 것이다.

 

DNS의 작동 과정:

  1. 사용자가 브라우저에 도메인 이름(www.example.com)을 입력한다.
  2. DNS 서버가 이 도메인 이름에 해당하는 IP 주소를 찾아 반환한다.
  3. 브라우저는 반환된 IP 주소를 사용해 해당 서버에 접속한다.

DNS의 계층 구조:

  1. Root Name Server
    • DNS 계층의 최상단에 위치한다.
    • 도메인의 최상위 도메인(TLD, Top-Level Domain)을 관리하는 네임서버로 연결한다. 예: .com, .org, .kr
  2. TLD Name Server
    • .com, .net, .kr 등 각 TLD에 해당하는 네임서버를 관리한다.
    • 특정 TLD에 속하는 도메인의 네임서버를 알려준다.
  3. Authoritative Name Server
    • 특정 도메인의 최종 IP 주소 정보를 가진다.
    • 예를 들어, example.com 도메인의 IP 주소 정보를 제공한다.

 DNS Query:

  1. 재귀 질의 (Recursive Query)
    사용자가 입력한 도메인 이름을 처음 접수한 DNS 서버가 최종 IP 주소를 찾을 때까지 다른 DNS 서버를 순차적으로 요청한다.
    • 브라우저 → 로컬 DNS 서버 → 루트 네임서버 → TLD 네임서버 → 권한 있는 네임서버
  2. 반복 질의 (Iterative Query)
    DNS 서버는 필요한 정보를 알지 못할 경우, 다음으로 요청할 DNS 서버의 주소만 반환한다.
    • 예를 들어, 로컬 DNS 서버는 루트 네임서버의 주소만 알려주고, 이후 사용자가 직접 루트 네임서버에 요청하는 방식이다.

DNS는 단순히 도메인 이름을 IP 주소로 변환하는 것 외에도 다양한 기능을 제공한다.

  • 부하 분산 (Load Balancing): 하나의 도메인에 여러 개의 IP 주소를 설정해 트래픽을 분산시킬 수 있다.
  • 도메인 별칭 (CNAME, Canonical Name): 도메인 이름에 별칭을 부여해 다른 도메인으로 리다이렉트할 수 있다. 예: www.example.com → blog.example.com
  • 메일 서버 연결 (MX, Mail Exchange): 이메일 서버 정보를 설정해 이메일을 받을 수 있도록 한다.

대표적인 DNS 보안 문제:

  • DNS 스푸핑(Spoofing): 공격자가 DNS 응답을 위조해 사용자를 악성 사이트로 유도하는 공격.
  • DNS 증폭 공격: DNS 서버를 이용해 대량의 트래픽을 생성하고, 이를 목표 서버로 보내는 DDoS 공격.
  • DNSSEC(DNS Security Extensions): DNS 데이터를 암호화하고 디지털 서명을 추가해 이러한 위협을 방지하는 기술.

포트 (Port)

포트는 하나의 IP 주소에서 여러 서비스나 애플리케이션을 구분하기 위한 번호이다.

  • 기본 포트 번호: 특정 프로토콜은 고유의 포트를 사용한다. 예를 들어, 웹 브라우저는 HTTP(80번)와 HTTPS(443번)를 사용하고, 이메일 서버는 SMTP(25번)나 IMAP(143번)을 사용한다.
  • 포트의 역할: 같은 네트워크에 여러 프로그램이 있을 경우, 포트 번호로 각각의 데이터를 적절히 전달한다. 예를 들어, 한 서버에서 웹 서버와 파일 전송 서버(FTP)가 동시에 작동할 경우, 각각 다른 포트를 통해 데이터가 전송된다.

VM (Virtual Machine)

VM이란 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경이다.

물리적 컴퓨터에서 동작하는 것처럼 보이지만, 사실은 소프트웨어로 구현된 가상 컴퓨터이다.

  • 장점: 가상화를 통해 하나의 물리적 컴퓨터에서 여러 대의 가상 컴퓨터를 실행할 수 있다. 이에 따라 테스트 환경 구성, 자원 분리, 비용 절감 등의 이점을 갖는다. 위험한 작업을 해야 할 때 호스트 OS에서 직접 작업하다가 문제가 생길 경우, 전체 시스템에 장애가 발생하거나 이전 환경으로 되돌릴 수 없는 상황이 생길 수 있다. 이런 상황에서 VM을 유용하게 사용할 수 있다. VM은 격리된 환경을 제공하므로, VM 내에서 어떤 대상이 실행되든 다른 시스템을 방해하지 않는다. 단일 서버에서 다양한 OS를 사용할 수 있기 때문에 하나의 VM에서는 Windows 환경을, 다른 VM에서는 Linux 환경을 동시에 실행하는 등 테스트를 진행할 수 있다. 유지/관리 및 자원 활용률 측면에서도 장점을 갖는다.
  • 단점: VM이 많을수록 성능의 안정성이 떨어지고 실행 속도가 느려진다. 모든 VM이 각각의 OS를 갖고 있으면 용량 때문에 부담이 될 수도 있다. 

On Premise, IaaS, PaaS, SaaS

서비스 제공범위에 따른 IT 인프라의 종류를 살펴보자.

On Premise

On Premise는 전통적인 IT 인프라 방식으로, 기업이 모든 IT 자원을 직접 관리한다.

  • 특징: 서버, 스토리지, 네트워크 등을 직접 구매하고 설치하며, 유지보수와 보안을 모두 책임진다.
  • 장점: 데이터가 물리적으로 기업 내에 있기 때문에 보안과 맞춤화가 뛰어나다.
  • 단점: 초기 투자 비용이 높고, 운영과 관리에 대한 전문 인력이 필요하다. 예를 들어, 금융 기관이나 정부 기관은 민감한 데이터를 관리하기 위해 On Premise 방식을 선호하는 경우가 많다.

IaaS (Infrastructure as a Service)

IaaS는 서버, 네트워크, 스토리지 같은 IT 인프라를 가상화된 형태로 제공하는 서비스다.

  • 특징: 물리적인 하드웨어를 구매하지 않고, 클라우드 제공자의 인프라를 사용한다.
  • 장점: 필요에 따라 자원을 유동적으로 확장하거나 축소할 수 있다. 초기 비용이 낮고, 사용한 만큼만 요금을 지불한다.
  • 예시: AWS EC2, Google Compute Engine, Microsoft Azure의 가상 머신 서비스 등이 있다.

PaaS (Platform as a Service)

PaaS는 애플리케이션 개발 환경을 제공하는 서비스다.

  • 특징: 서버 관리, 운영 체제 설정 등 인프라 관리를 클라우드 제공자가 대신한다. 사용자는 개발과 배포에만 집중할 수 있다.
  • 장점: 개발 시간을 단축하고, 배포 과정을 간소화한다. 팀 협업이 용이하며, 애플리케이션의 확장성과 안정성이 보장된다.
  • 예시: Google App Engine, Heroku, Microsoft Azure App Service 등이 대표적이다.

SaaS (Software as a Service)

SaaS는 최종 사용자에게 소프트웨어를 서비스 형태로 제공한다.

  • 특징: 별도의 설치 없이 인터넷을 통해 소프트웨어에 접근할 수 있다.
  • 장점: 유지보수나 업데이트가 필요 없고, 최신 기능이 자동으로 제공된다. 비용도 월간 또는 연간 구독 형태로 저렴하다.
  • 예시: Gmail, Slack, Salesforce, Dropbox 등이 있다.