네트워크 기초 TCP/IP: 파트 1

안녕하세요, 이번 시간에는 컴퓨터와 인터넷의 발전으로 우리의 일상은 디지털 세상으로 빠르게 변화하고 있습니다. 이에 따라 사이버 보안의 중요성도 더욱 커지고 있습니다. 사이버 보안 분야에서 성공하려면 필수적으로 알아야 할 지식 중 하나가 ‘네트워크’입니다. 그 중에서도 ‘TCP/IP’는 매우 중요한 개념으로, 이 글에서는 네트워크 기초의 첫 번째 파트로서 ‘네트워크 기초 (TCP/IP) 파트 1’에 대해 알아보겠습니다.

1. IP 주소

IP 주소는 인터넷 프로토콜 주소의 약자로, 디지털 기기 간의 통신을 위해 사용되는 주소 시스템입니다. 이는 우리가 이메일을 보내거나 스카이프와 같은 응용 프로그램을 사용하며 웹을 탐색하는 데 필수적인 요소입니다. IP 주소를 생각해보면, 세계가 돌아가는 것만큼이나 중요한 역할을 한다고 볼 수 있습니다.

각 디지털 기기는 IP 주소를 통해 식별되며, 이 주소를 통해 통신하고 연결할 수 있습니다. 이는 마치 우리의 집 주소와 비슷한 역할을 합니다. 집 주소 없이는 우편물을 받을 수 없듯이, IP 주소 없이는 다른 기기와 통신할 수 없습니다.

현재 사용되는 IP 주소 시스템은 IP 버전 4 또는 IPv4입니다. 이는 32비트로 구성되어 있으며, 네 개의 옥텟 또는 8비트 그룹으로 분할됩니다. 각 옥텟은 0부터 255까지의 값으로 표현됩니다. 예를 들어, 192.168.1.101과 같은 형식입니다. 이때 각각의 숫자는 8비트의 10진수 값과 매핑되며, 컴퓨터가 사용하는 8비트의 2진수 값을 인간이 이해하기 쉬운 10진수 값으로 변환합니다. 옥텟은 0부터 255까지의 숫자를 나타낼 수 있으며, 이는 2의 8제곱으로 나타낼 수 있는 범위입니다.

IP 주소는 디지털 통신의 핵심이며, 네트워크 기반의 서비스와 응용 프로그램이 원활하게 작동하기 위한 필수적인 구성 요소입니다. IP 주소의 이해는 인터넷 기술과 네트워크 관리에 있어서 중요한 첫걸음입니다.

2. IP 주소의 클래스

ip address

IP 주소는 클래스로 나뉘어지며, 각 클래스는 네트워크의 크기와 범위를 지정합니다. IP 주소의 클래스는 주소 첫 번째 옥텟의 값에 의해 결정됩니다. 다음은 IP 주소의 클래스별 특징과 사용 예시입니다:

  1. 클래스 A:
    • 첫 번째 옥텟의 범위: 0 ~ 127
    • 네트워크 식별에 사용됨
    • 대규모 네트워크에 사용됨
    • 예시: 10.0.0.0, 55.10.20.0
  2. 클래스 B:
    • 첫 번째 옥텟의 범위: 128 ~ 191
    • 네트워크와 호스트 식별에 사용됨
    • 중간 규모 네트워크에 사용됨
    • 예시: 172.16.0.0, 192.168.1.0
  3. 클래스 C:
    • 첫 번째 옥텟의 범위: 192 ~ 223
    • 네트워크, 서브넷, 호스트 식별에 사용됨
    • 소규모 네트워크에 사용됨
    • 예시: 192.0.2.0, 203.0.113.0
  4. 클래스 D:
    • 첫 번째 옥텟의 범위: 224 ~ 239
    • 멀티캐스트 주소에 사용됨
    • 예시: 224.0.0.1, 239.255.255.255
  5. 클래스 E:
    • 첫 번째 옥텟의 범위: 240 ~ 255
    • 실험적 주소에 사용됨
    • 일반적인 네트워크에서는 사용하지 않음

각 클래스는 네트워크의 크기와 요구 사항에 따라 선택됩니다. 예를 들어, 클래스 A는 대규모 네트워크를 위해 사용되며, 클래스 C는 소규모 네트워크에 적합합니다. IP 주소의 클래스를 올바르게 선택하는 것은 네트워크를 효율적으로 구성하고 관리하는 데 중요한 역할을 합니다.

3. 공개 IP 주소 vs. 사설 IP 주소

공개 IP 주소

공개 IP 주소는 인터넷을 통해 전 세계에서 접근 가능한 주소입니다. 이 주소는 인터넷 서비스 제공자(ISP)에 의해 할당되며, 각 기기가 전 세계적으로 고유한 주소를 가지도록 합니다. 공개 IP 주소는 웹 서핑, 이메일, 온라인 서비스 등에서 사용됩니다.

공개 IP 주소의 한계는 주소의 한정성입니다. IPv4에서 사용되는 공개 IP 주소의 수는 제한적이며, 이로 인해 IP 주소 고갈 문제가 발생합니다. 이러한 문제를 해결하기 위해 사설 IP 주소가 도입되었습니다.

사설 IP 주소

사설 IP 주소는 내부 네트워크에서 사용되며, 인터넷을 통해 직접 접근할 수 없습니다. 이 주소는 라우터나 네트워크 주소 변환(NAT) 장치를 통해 인터넷과 연결될 때 공개 IP 주소로 변환되어 통신합니다. 사설 IP 주소는 주로 가정이나 회사의 내부 네트워크에서 사용됩니다.

IPv4에서 사용 가능한 공개 IP 주소의 수가 제한적이기 때문에, 사설 IP 주소를 사용하여 내부 네트워크의 기기들을 식별하고 관리함으로써 주소 부족 문제를 해결하고 IP 주소를 효율적으로 사용할 수 있게 되었습니다.

주요 차이점

  • 접근성: 공개 IP 주소는 인터넷을 통해 접근 가능하며, 사설 IP 주소는 내부 네트워크에서만 접근 가능합니다.
  • 고유성: 공개 IP 주소는 전 세계에서 고유한 주소를 가집니다. 사설 IP 주소는 내부 네트워크에서 중복 사용될 수 있습니다.
  • 사용 목적: 공개 IP 주소는 인터넷 통신에 사용되며, 사설 IP 주소는 내부 네트워크의 기기 식별에 사용됩니다.
  • 주소 고갈 문제: 공개 IP 주소는 한정된 수의 주소로 인해 고갈 문제가 발생할 수 있습니다. 사설 IP 주소는 내부 네트워크에서 사용되므로 주소 부족 문제가 크게 발생하지 않습니다.

공개 IP 주소와 사설 IP 주소는 네트워크 구성과 관리의 중요한 측면을 형성하며, 주소 할당의 효율성과 네트워크 보안을 고려하여 적절하게 사용되어야 합니다.

4. 동적 호스트 구성 프로토콜 (DHCP)

동적 호스트 구성 프로토콜(DHCP)은 IP 주소를 동적으로 할당하는 프로토콜로, 항상 같은 IP 주소를 사용하지 않고 필요할 때마다 IP 주소를 할당합니다. 주로 로컬 영역 네트워크에서 사용되며, 이를 통해 사설 IP 주소를 효율적으로 관리하고 네트워크에서 기기들이 원활하게 통신할 수 있도록 합니다.

DHCP의 작동 방식은 다음과 같습니다:

  1. IP 주소 요청: 기기가 로컬 영역 네트워크에 연결되면 자동적으로 DHCP 서버에 IP 주소 요청을 보냅니다.
  2. IP 주소 할당: DHCP 서버는 사용 가능한 IP 주소 풀에서 IP 주소를 선택하고 해당 기기에 할당합니다.
  3. 임대 기간 설정: 할당된 IP 주소는 일정 기간(임대 기간) 동안 사용 가능합니다. 임대 기간이 지나면 해당 IP 주소는 반환되어 다른 기기에 할당될 수 있습니다.
  4. IP 주소 갱신: 임대 기간 중에도 기기는 주기적으로 DHCP 서버에 IP 주소 갱신을 요청합니다. 이를 통해 IP 주소를 계속 사용할 수 있습니다.
  5. IP 주소 해제: 기기가 네트워크에서 분리되거나 연결 해제될 때, 해당 IP 주소는 반환되어 IP 주소 풀에 다시 할당 가능한 상태가 됩니다.

DHCP를 통해 기기들은 필요할 때마다 IP 주소를 효율적으로 얻을 수 있습니다. 이는 네트워크 관리자가 수동으로 IP 주소를 할당할 필요 없이 자동화된 방식으로 네트워크를 운영할 수 있게 해줍니다. 로컬 영역 네트워크 내에서는 사설 IP 주소를 사용하며, DHCP를 통해 이를 동적으로 관리함으로써 IP 주소 할당 및 관리의 효율성을 높일 수 있습니다.

5. 네트워크 주소 변환 (NAT)

nat image

네트워크 주소 변환(NAT)은 내부 사설 IP 주소를 외부 공개 IP 주소로 변환하는 프로토콜입니다. 이는 로컬 영역 네트워크(LAN) 내에서 사용되는 사설 IP 주소를 인터넷에서 접근 가능한 공개 IP 주소로 변환하여 통신을 가능하게 합니다. NAT는 네트워크 보안, IP 주소 부족 문제, 네트워크 관리의 편의성을 제공하기 위해 사용됩니다.

NAT의 동작 방식은 다음과 같습니다:

  1. 요청 수락: 내부 네트워크에 속한 기기가 외부 인터넷으로 통신하려는 요청을 보냅니다.
  2. IP 주소 기록: NAT 장치는 해당 기기의 사설 IP 주소와 포트 번호를 기록합니다. 이 정보는 테이블에 저장됩니다.
  3. IP 주소 변환: NAT 장치는 테이블에 저장된 사설 IP 주소와 포트 번호를 사용하여 해당 기기의 요청을 외부 공개 IP 주소와 연결시킵니다. 이로써 외부 인터넷과의 통신이 가능해집니다.
  4. 응답 전달: 외부 인터넷에서 받은 응답 패킷이 도착하면, NAT 장치는 테이블을 참조하여 해당 기기의 사설 IP 주소와 포트 번호로 패킷을 전달합니다.

이러한 과정을 통해 LAN 내의 기기들은 내부 네트워크에서 사설 IP 주소를 사용하면서도 외부 인터넷과 통신할 수 있게 됩니다. NAT는 보안 측면에서도 중요한 역할을 합니다. 외부에서 내부 네트워크의 사설 IP 주소를 직접 알 수 없기 때문에 네트워크 보안을 강화할 수 있습니다.

예를 들어, NAT를 사용하는 시나리오를 생각해봅시다. LAN 내의 여러 기기들이 인터넷에 접속할 때, 모두 같은 외부 공개 IP 주소를 사용하지만, 내부에서는 각각의 사설 IP 주소를 사용합니다. 이로써 기기들 간의 통신이 가능하면서도 외부 인터넷과의 통신은 공개 IP 주소를 통해 이루어집니다.

6. 포트

포트는 IP 주소의 하위 주소로, 네트워크 통신에서 서비스를 식별하는 역할을 합니다. IP 주소는 기본적인 주소이며, 포트는 해당 IP 주소로 들어오는 데이터가 어떤 서비스나 프로세스로 전달되어야 하는지를 나타냅니다. 이를 비유하면 IP 주소는 건물의 주소로 생각하고, 포트는 건물 내의 특정 아파트 번호로 생각할 수 있습니다. 즉, IP 주소는 목적지까지 가는 길을 찾는 데 도움이 되며, 포트는 해당 목적지 내에서 정확한 위치를 찾는 데 도움을 줍니다.

전체적으로 65,536개의 포트가 있으며, 이를 16비트 숫자로 표현합니다. 처음 1,024개의 포트는 “공통 포트”로 불리며, 특정 서비스에 자주 할당되어 사용됩니다. 사람들이 모든 포트를 외우는 것은 어렵기 때문에, 특정 포트 중 일부는 보안 엔지니어나 네트워크 관리자, 해커들에게 중요한 정보가 됩니다.

예를 들어, 몇 가지 중요한 포트와 해당하는 서비스는 다음과 같습니다:

  • 포트 20 및 21: FTP (파일 전송 프로토콜)
  • 포트 22: SSH (보안 쉘)
  • 포트 23: Telnet (원격 로그인 서비스)
  • 포트 25: SMTP (이메일 전송 프로토콜)
  • 포트 53: DNS (도메인 이름 시스템)
  • 포트 80: HTTP (하이퍼텍스트 전송 프로토콜)
  • 포트 443: HTTPS (HTTP의 보안 버전)
  • 포트 3389: RDP (원격 데스크톱 프로토콜)

이외에도 다양한 포트가 있으며, 각 포트는 특정 서비스나 프로토콜과 연관되어 있습니다. 네트워크 엔지니어나 보안 전문가는 주요 포트에 대한 이해와 해당 포트가 열려 있는지 여부를 확인하는 능력을 가져야 합니다. 이를 위해 nmap과 같은 도구를 사용하여 시스템에서 열려 있는 포트와 실행 중인 서비스를 확인할 수 있습니다. 이를 통해 네트워크의 상태를 파악하고 보안에 필요한 조치를 취할 수 있습니다.

감사합니다.

[Reference]
1. What is NAT (manageengine.com)
2. IP Address Classes – Networkel

[관련글] 모의해킹 | Tech Hyeonker

댓글 남기기