네트워크 (3) - IP 주소와 프로토콜

2ㅣ2ㅣ·2024년 10월 18일

CS

목록 보기
10/13
post-thumbnail

IP 주소

  • TCP/IP 4Layer 중 2계층(인터넷 계층)에 속하는 주소, OSI 7Layer 에서는 3계층(network)에 속함
  • IP(Internet Protocol) = 인터넷에서 데이터를 주고 받기 위한 통신 규약

→ IP Address = (통신 규약을 준수한) 약속된 네트워크 상의 주소

2.4.1 ARP(Address Resolution Protocol)

2.4.1. ARP

  • IP → MAC 매칭/대응 시켜주는 프로토콜
    • IP 주소와 MAC 주소는 각각 무엇이고 그걸 왜 연결해줘야 할까?
      • IP주소는 인터넷에서 사용하는 논리적 주소이고, MAC주소는 실제 컴퓨터의 물리적 주소이다.
      • 즉, MAC주소-MAC주소 통신을 통해 실질적으로 데이터를 주고 받는다.
      • IP 주소는 ARP을 통해 MAC주소를 찾아 MAC 주소에 데이터를 보냄
  • 통신하고자 하는 목적지와 연결되기 위한 MAC주소를 찾는 동작

  • 같은 네트워크(서브넷) 내에 있을 때 : 직결되는 MAC 주소를 찾음
    • ARP 요청 브로드캐스트 : 호스트는 목적지 IP의 MAC 주소를 모르기 때문에, ARP 요청(ARP Request) 패킷을 네트워크 상에 브로드캐스트함. 스위치에게 목적지의 MAC 주소를 보냄
    • ARP 응답 유니캐스트 : 해당 IP 주소를 가진 장비가 ARP 요청을 받고, 자신의 MAC 주소를 ARP 응답(ARP Reply)으로 보냄. 단, 응답은 유니캐스트 방식을 사용함
    • MAC 주소 캐싱 : 호스트는 해당 MAC 주소를 자신의 ARP 테이블에 저장하여, 이후 같은 IP 주소로의 통신 시 재사용

💡
스위치 : 같은 네티워크 안 장비를 연결해주는 하드웨어.
브로드캐스트 : 네트워크의 모든 장비에게 데이터를 보내는 방식.
유니캐스트 : 특정한 한 장비에게만 데이터를 보내는 방식.

  • 다른 네트워크에 있을 때 : 목적지가 속한 서브넷의 라우터 MAC 주소를 찾음
    • 기본 게이트웨이 확인 : 호스트는 목적지 IP가 다른 네트워크에 있다는 것을 IP 주소와 서브넷 마스크를 통해 인지 → 기본 게이트웨이(라우터)의 MAC 주소가 필요하다고 판단
    • 기본 게이트웨이에 대한 ARP 요청 : 호스트는 라우터의 IP 주소에 대한 ARP 요청 패킷브로드캐스트하여 라우터의 MAC 주소를 알아냄
    • 라우터로 데이터 전송 : ARP 응답을 통해 라우터의 MAC 주소를 얻으면, 해당 MAC 주소를 통해 패킷을 라우터로 보냄. 이후 라우터는 라우팅 테이블을 참조하여 패킷을 목적지 네트워크로 전달함

💡

  • 라우팅 테이블 : 라우터에 들어가 있는 목적지 정보들그 목적지로 가기 위한 방법이 들어있는 리스트
  • 게이트웨이 : 한 네트워크에서 다른 네트워크로 넘어가는 출입구

    - 이는 netstat -r 명령어로 라우팅 테이블을 확인하여 게이트웨이를 확인할 수 있음

2.4.2. RARP

  • MAC → IP 매칭시켜 주는 프로토콜
  • RARP 요청: MAC정보를 담고있는 RARP 정보를 브로드 캐스트로 전송한다.
  • RARP 응답: 요청자의 IP 주소를 담은 RARP 응답을 유니캐스트로 전송한다.
  • 서브넷 범위에 관계없이 동일하게 동작

2.4.2 홉바이홉 통신

  • IP 주소를 통해 통신하는 과정

  • hop(건너뛰다) : 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현
  • 통신 장치에 있는 라우팅 테이블의 IP를 통해 다음 IP로 계속해서 이동하는 라우팅 과정을 거쳐 패킷최종 목적지까지 도달하는 통신
  • 이러한 구조 덕분에 IP는 대규모 네트워크 환경에서도 효율적으로 작동할 수 있음

💡

  • 라우팅 테이블 : 라우터에 들어가 있는 목적지 정보들그 목적지로 가기 위한 방법이 들어있는 리스트

2.4.3 IP 주소 체계

IP 주소는 크게 2가지로 나뉨 : IPv4 IPv6

  • IPv4
    • 32bit로 구성된 주소 체계
    • A.B.C.D 형식의 4개의 옥텟(octet)으로 표현됨
  • IPv6
    • 주소 고갈 문제를 해결하기 위한 128bit 주소 체계
    • 콜론(:)으로 구분된 8개의 필드로 이루어지며, 더 많은 기기들이 인터넷에 연결될 수 있음

2.4.3.1 클래스 기반 할당 방식

IP 주소는 초기에 네트워크 크기에 따라 A, B, C, D, E 5개의 클래스로 나뉘어 할당됨. 이를 클래스 기반 할당(Classful Addressing)이라 한. 각 클래스는 네트워크호스트 구분을 위해 고정된 비트 수를 사용하여 크기를 결정함.

  • 클래스 A: 0.0.0.0 ~ 127.255.255.255 (대규모 네트워크)
  • 클래스 B: 128.0.0.0 ~ 191.255.255.255 (중규모 네트워크)
  • 클래스 C: 192.0.0.0 ~ 223.255.255.255 (소규모 네트워크)
  • D(멀티캐스트 통신용),E(예비용)는 잘 사용되지 않아서 생략.

클래스 할당 방식 상세 내역

  • 구분비트 : 맨 왼쪽에 있는 비트를
    • e.g.) A 클래스의 구분 비트 : 0, B 클래스의 구분 비트 : 10
  • 클래스에서 가질 수 있는 IP범위 : 구분비트를 뺀 만큼의 범위
    • e.g.) A 클래스 : 00000000.00000000.00000000.00000000 ~ 01111111.11111111.11111111.11111111
    • 십진수로 표현하면 0.0.0.0 ~ 127.255.255.255

네트워크 주소와 브로드캐스트용 주소

  • 첫 번째 주소 : 네트워크 주소(사용 불가)
  • 두번째 주소 : 사용 가능한 주소
  • 세번째 주소 : 브로드 캐스트용 주소 → 네트워크에 속한 모든 컴퓨터에 데이터 보낼 때 사용(사용 불가)

A 클래스로 12.0.0.0 네트워크를 부여받았다면,

  • 12.0.0.0 은 네트워크를 구분할 때 사용되고
  • 12.0.0.1 ~ 12.0.0.254 는 실제 할당 가능한 IP주소 범위고
  • 12.0.0.255는 ( 12.0.0.0 의 )브로드 캐스트용 주소가 된다.

이 방식은 비효율적인 할당 문제가 있었음. 대규모 네트워크에 실제로 필요한 것보다 많은 IP가 할당되거나, 소규모 네트워크에 필요한 IP가 부족한 상황이 발생함.

예를 들어, 네트워크 장비가 약 260개인 중간 규모 회사에서는 클래스 B를 할당받으면 너무 많은 주소가 남게 되고, 클래스 C를 할당받으면 부족함. 한마디로 사용하는 주소보다 버리는 주소가 더 많아지는거임.

이를 개선하기 위해 서브넷팅 방식이 등장함. 하지만 이러한 방식들은 주소를 수동으로 설정하기 때문에 기업이나 가정용 네트워크에서 수십, 수백 대의 여러 기기가 연결되는 환경에서는 여전히 불편했음.

정리하자면 IPv4에는 다음과 같음 문제점들이 있음

  1. 주소를 수동으로 설정해야함 → DHCP 도입
  2. 인터넷 사용자가 많아짐에 따라 주소 할당에 한계가 있음 → 사설 IP와 공인 IP로 구분

2.4.3.2 DHCP(Dynamic Host Configuration Protocol)

  • 네트워크 장치가 자동으로 IP 주소를 할당받을 수 있도록 해주는 프로토콜
  • 네트워크에 연결된 장치가 자동으로 IP 주소, 서브넷 마스크, 게이트웨이 등을 할당받음
  • DHCP는 네트워크 관리자의 부담을 줄이며, IP 주소 충돌을 방지하는 역할을 함.
    • 이는 특히 네트워크 장치가 자주 연결되거나 해제되는 환경에서 매우 유용함.
    • 예를 들어, 사무실, 카페, 가정용 네트워크 등 다양한 곳

DHCP는 내부 네트워크의 IP 주소 할당을 용이하게 하지만, DHCP로 할당한 사설 IP주소는 외부 네트워크과 통신할 수 없었음. 외부 네트워크와 통신하기 위해서는 공인 IP를 사용해야 함. 이런 경우, 많은 장치가 하나의 공인 IP로 통신할 수 있게 해주는 기술이 NAT이다.

💡
공인 IP : 외부 네트워크와 통신할 수 있는 IP

2.4.3.3 NAT(Network Address Translation)

  • 사설 IP 주소 → 공인 IP로 변환/매핑하는 기술
  • 내부 네트워크의 장치들이 공인 IP 주소 하나를 공유하여 외부와 통신할 수 있도록 함
  • 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑
    • e.g.) 공유기(←여기에 NAT가 탑재되어 있어서 가능)

NAT를 이용한 보안

  • 사설 IP 주소를 외부에 노출시키지 않음 → 내부 네트워크의 장치들이 외부 공격에 노출될 위험을 줄인다.
  • 외부에서 내부 네트워크의 사설 IP에 직접 접근할 수 없기 때문에, 기본적인 방화벽 역할을 할 수 있다.

NAT의 단점

하지만 NAT도 직접적인 P2P 통신을 어렵게 하며, 대규모 사용자가 동시 접속하는 애플리케이션(예: 온라인 게임, VoIP 등)에서 속도가 느려질 수 있음

💡정리
IP 주소의 CIDR(클래스 기반 할당 방식)의 비효율성과 인터넷 유저 증가로
IP주소를 사설 IP와 공인 IP로 분류하고 자동화 할당 방식을 도입했다.
1. 자동화된 IP 할당 방식 : DHCP (사설 IP)
2. 공인IP(외부 네트워크): NAT도 등장했다.

0개의 댓글