IP addressing & DHCP

이태곤·2023년 11월 6일
0

컴퓨터망

목록 보기
20/32
post-thumbnail

1. IP addressing

  • 컴퓨터 네트워크에서 호스트의 인터페이스를 식별하기 위한 고유한 32비트 식별자
    → 컴퓨터에 여러 개의 랜카드(네트워크 인터페이스 카드)를 장착하면 여러개의 IP 주소를 가질 수 있다.

  • Classful IP Addressing: IP 주소를 클래스(Class)에 따라 할당하는 방식으로, IP 주소 공간을 A, B, C 분류하여 각 클래스에 대해 네트워크 부분과 호스트 부분의 비트 수를 고정된 방식으로 결정

  • 클래스 A ~ E까지 존재하며, 주로 다루게 될 클래스는 A, B, C
  • 클래스 A ~ E까지 존재하며, 주로 다루게 될 클래스는 A, B, C
    • Class A: 0 (일대일 통신)
    • Class B: 10 (일대일 통신)
    • Class C: 110 (일대일 통신)
    • Class D: 멀티캐스트 통신
    • Class E: 예비용
  1. Class A

    • 첫 번째 옥텟을 네트워크 주소로 사용하고, 나머지 옥텟을 호스트 주소로 사용
    • 각 네트워크당 2^24 (약 1,600만) - 2 개의 호스트 주소를 가진다.
      • 1.0.0.0 = 1.255.255.255 [같은 네트워크]
    • 네트워크 주소 범위: 1.0.0.0 ~ 126.0.0.0
      • 0.0.0.0: 알 수 없는 대상에 대한 임시 주소로 사용
      • 127.x.x.x (루프백 주소): 본인의 IP 주소 또는 로컬호스트 환경 주소로 사용
  2. Class B

    • 첫 번째 두 옥텟을 네트워크 주소로 사용하고, 나머지 두 옥텟을 호스트 주소로 사용
    • 각 네트워크당 2^16 (약 65,000) - 2 개의 호스트 주소를 가진다.
      • 1.0.0.0 != 1.3.0.0 [다른 네트워크]
    • 네트워크 주소 범위: 128.0.0.0 ~ 191.0.0.0
  3. Class C

    • 마지막 옥텟을 호스트 주소로 사용하고, 나머지 세 옥텟을 네트워크 주소로 사용
    • 각 네트워크당 2^8 (256) - 2 개의 호스트 주소를 가진다.
      • 192.0.0.1 != 192.0.1.1 [다른 네트워크]
    • 네트워크 주소 범위: 192.0.0.0 ~ 223.0.0.0
  • -2 하는 이유
    • 네트워크 주소: 각 클래스의 첫 번째 주소는 해당 네트워크를 식별하기 위한 네트워크 주소
    • 브로드캐스트 주소: 각 클래스의 마지막 주소는 브로드캐스트 메시지를 전달하는 데 사용되는 주소
    • 예를 들어 Class C에서 192.0.0 이 네트워크 주소일 때, 192.0.0.0은 통신할 때 연결될 시작 IP 주소로 사용하고, 192.0.0.255는 브로드캐스팅을 위한 주소로 사용된다.
  • Classful IP Addressing 문제점
    • 클래스가 할당할 수 있는 네트워크 주소에 비해 작은 네트워크이면 IP 주소 낭비
    • 클래스가 할당할 수 있는 네트워크 주소에 비해 큰 네트워크이면 주소 구별, 할당 및 관리 비용이 증가
  • IP 주소의 클래스에 따라 수용 가능한 호스트 수가 다르며, 각 클래스는 주로 특정 규모의 네트워크에 사용된다.
    • Class A는 대규모 네트워크에 사용되며, Class B와 Class C는 중간 규모와 소규모 네트워크에 주로 사용된다.
    • 예를 들어, 주어진 IP 주소 155.230.90.15는 첫 번째 옥텟이 155로 시작하므로 Class B 주소에 속한다.
      따라서 155.230이 네트워크 부분이 되고, 90.15가 호스트 부분이며, IP 주소의 클래스와 네트워크 및 호스트 부분을 식별할 수 있다.

2. Subnet

  • 하나의 IP 네트워크를 더 작은 네트워크로 분할하는 것으로 호스트 IP 부분을 활용하여 내부적으로 네트워크를 더 세밀하게 나눌 수 있다.

  • 탄생배경

    • 초기의 IP 주소 체계는 클래스 A, B, C와 같은 클래스로 네트워크를 분류했으며, 각 클래스는 고정된 크기의 네트워크와 호스트 주소 공간을 가짐으로써 IP 주소가 낭비되는 문제가 발생
    • 더 작은 규모의 네트워크를 관리하거나 라우팅하기 위해 더 작은 네트워크 부분을 필요로 하는 경우 발생
  • 장점

    1. IP 주소의 효율성: 클래스 개념만을 사용하면 호스트 주소가 낭비될 수 있지만, 서브넷을 사용하여 필요한 규모에 맞게 사용함으로써 IP 주소의 낭비를 줄이고 IP 주소를 더 효율적으로 관리할 수 있다.
    2. 라우팅 테이블 크기 감소: 서브넷을 사용하면 네트워크 내의 호스트 그룹을 서로 다른 서브넷으로 나눌 수 있으므로 라우팅 테이블의 크기 감소
  • Subnet mask: IP 주소를 네트워크 및 호스트 주소와 분리하는 역할을 가지며, IP 주소의 어디까지가 네트워크 주소인지를 명시적으로 지정
    • 표현방법 1: 슬래시(/)와 숫자로 표시
      → /24: 서브넷 마스크는 상위 24비트가 네트워크 주소를 나타내고, 나머지 비트가 호스트 주소
    • 표현방법 2: 네트워크 부분은 "1"로, 호스트 부분은 "0"으로 표시
      → /24: 11111111.11111111.11111111.00000000 (상위 24비트는 "1"로, 하위 8비트는 "0"으로 표시)

3. CIDR (Classless InterDomain Routing)

  • 클래스에 구애받지 않고 IP 주소를 효율적으로 관리하고 라우팅하기 위한 방법을 제공하는 IP 주소 할당 체계

    • 서브넷 마스크와 함께 사용되어 네트워크를 효율적으로 관리하고 IP 주소를 효율적으로 할당
    • IP 주소의 서브넷 부분을 임의의 길이로 나타냄
  • 예시: C 클래스의 기본 서브넷 마스크는 /24이며, 이는 2^8=256개의 호스트 주소를 가질 수 있는 네트워크

    • 만약 해당 IP 주소 범위를 두 개의 서브넷으로 나누고 싶다면, 한 비트를 서브넷 부분으로 옮길 수 있다.
      • 각 서브넷은 2^7=128개의 호스트 주소를 가진다.
      • 서브넷 마스크: /25

4. DHCP (Dynamic Host Configuration Protocol)

  • hard-coded: 호스트가 자신의 IP 주소를 할당받아 사용하는 방식
    → 호스트가 네트워크를 사용하지 않을 때에도 해당 IP 주소를 가지고 있어 낭비 될 수 있기 때문에 비효율적

  • DHCP: 네트워크에서 호스트에게 IP 주소 및 기타 네트워크 설정을 동적으로 할당하는 프로토콜

    • IP주소를 동적으로 할당받을 때 다음과 같은 정보를 포함할 수 있다.
      • IP 주소: 호스트 컴퓨터에게 유효한 IP 주소를 동적으로 할당
      • Network Mask: 호스트의 IP 주소가 속한 네트워크 정보를 제공
      • DNS Server: DNS 서버의 주소를 호스트에게 제공
      • Address of First-Hop Router: 호스트가 다른 네트워크로 통신할 때 사용되는 첫 번째 라우터의 주소
  • DHCP를 사용하면 호스트가 네트워크를 떠나거나 일시적으로 IP 주소를 사용하지 않을 때 해당 IP 주소를 자동으로 반환하고, 이를 다른 장치에 할당할 수 있다.
    → 재사용성을 활용하여 IP 주소 부족 문제를 완화하고 네트워크에서 효율적으로 자원을 활용

  • DHCP 동작과정

    1. 호스트가 네트워크에 접속하면 DHCP 서버를 찾기 위해 "DHCP Discover" 메시지를 브로드캐스트로 전송
      • 호스트가 네트워크에 접속하면 DHCP 서버를 찾기 위해 "DHCP Discover" 메시지를 브로드캐스트 방식으로 전송하며, 이 메시지는 네트워크 내의 모든 장치에 도달하기 위해 방송 주소 255.255.255.255를 사용
    2. DHCP 서버 중 하나가 "DHCP Offer" 메시지를 생성하여 호스트에게 제안
      • 아직 클라이언트는 IP address (source address)가 없기 때문에 DHCP 서버 역시 브로드캐스트 방식으로 메세지를 전송
      • DHCP 서버 자신의 IP 주소 (source IP address)는 포함
    3. 호스트가 DHCP 서버로에게 IP 주소를 요청하는 "DHCP Request" 메시지를 전송
      • 하나의 DHCP 서버를 선택하고, 선택한 DHCP 서버에게 IP 주소를 요청
      • 여러 개의 DHCP 서버가 존재할 수 있고, 그 서버들에게 모두 사용 할 IP 주소 정보를 알려야 하기 때문에 브로드캐스트 방식으로 전송
    4. 선택된 DHCP 서버는 "DHCP Acknowledgment (DHCP ACK)" 메시지를 호스트에게 전송하여 IP 주소 할당 및 관련 네트워크 설정 정보를 제공
      • Address of first-hop router, DNS server, netmask, IP 주소정보 등을 포함
  • IP address: How to get one

    • ISP가 가지고 있는 IP address 중 일부분을 취하게 된다.
      → ISP는 ICANN(국제인터넷주소관리기구)을 통해 ISP block을 할당받는다.
    • 어떤 ISP의 네트워크인지를 나타내는 ISP block 부분(0001 까지) 뒤에 각 organization마다 다른 subnet 네트워크 주소를 추가로 할당받는다.
      • 000 ~ 111: 3비트를 subnet으로 사용
      • 서브넷 마스크 부분이 /20이 아닌, /23으로 설정된다.

5. Hierarchical addressing

  • IP 주소 체계를 계층화하여 관리하고 효율적인 라우팅을 가능하게 하는 개념

  • Fly-By-Night-ISP ISP와 ISPs-R-Us ISP 네트워크는 서로 네트워크 주소가 다르다.

    • Fly-By-Night-ISP ISP는 200.23.16.0/23 으로 시작하는 IP 주소를 담당
    • organization 1이 ISPs-R-Us로 이동
    • 이동한 organization 1은 주소를 변경하지 않아도된다.
      • Longest prefix matching 원칙에 따라 라우터가 패킷을 처리할 때, 목적지 IP 주소와 가장 긴 프리픽스 매칭을 사용하여 결정하기 때문이다.
      • 200.23.18.0/23와 200.23.16.0/20 중에서 prefix가 더 긴 것은 200.23.18.0/23이므로, 라우터는 패킷을 해당 서브넷으로 보낸다.
        → organization 1로 향하는 패킷은 ISPs-R-Us 쪽으로 보내지게 된다.

0개의 댓글