Classless Inter-Domain Routing (CIDR)

이태곤·2023년 8월 11일
0

Network

목록 보기
18/23
post-thumbnail

Classless IP Adressing

  • Classful IP 주소 할당 방식의 단점을 극복하고 IP 주소 공간을 효율적으로 관리하기 위해 도입된 개념으로, IP 주소를 Class 단위가 아닌 서브넷 마스크를 중심으로 네트워크 주소와 호스트 주소를 구별한다.

1. Subnet

  • Subnetting: 네트워크를 더 작은 서브네트워크로 분할하는 프로세스

  • Subnet: 서브네팅을 통해 생성된 더 작은 네트워크

    • 하나의 IP 네트워크를 더 작은 네트워크로 분할하는 것으로, 호스트 ID 부분을 활용하여 내부적으로 네트워크를 더 세밀하게 나눌 수 있다.
    • 장점
    1. IP 주소의 효율성: 클래스 개념만을 사용하면 호스트 주소가 낭비될 수 있지만, 서브넷을 사용하여 필요한 규모에 맞게 사용함으로써 IP 주소의 낭비를 줄이고 IP 주소를 더 효율적으로 관리할 수 있다.
    2. 라우팅 테이블 크기 감소: 서브넷을 사용하면 네트워크 내의 호스트 그룹을 서로 다른 서브넷으로 나눌 수 있으므로 라우팅 테이블의 크기 감소
    3. 네트워크 관리 용이성: 각 서브넷은 자체적인 IP 주소 범위와 설정을 가지고 있어 서로 독립적으로 관리 될 수 있으며, 네트워크 라우터 수를 늘리더라도 호스트 수를 줄여 성능 저하를 방지할 수 있다.
  • Subnet Mask: IP 주소를 네트워크 및 호스트 주소와 분리하는 역할을 가지며, IP 주소의 어디까지가 네트워크 주소인지를 명시적으로 지정

    • 표현방법 1: 슬래시(/)와 숫자로 표시
      → /24: 서브넷 마스크는 상위 24비트가 네트워크 주소를 나타내고, 나머지 비트가 호스트 주소
    • 표현방법 2: 네트워크 부분은 "1"로, 호스트 부분은 "0"으로 표시
      → /24: 11111111.11111111.11111111.00000000 (상위 24비트는 "1"로, 하위 8비트는 "0"으로 표시)
      → 255.255.255.128 → 11111111 11111111 11111111 10000000 → 25자리를 네트워크 주소로 7자리를 호스트 주소로 사용

2. 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를 사용
      • UDP 포트 67을 사용하여 전송되며, DHCP 서버는 해당 메시지를 수신하여 응답하기 위해 UDP 포트 68을 사용
    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 serve, netmask네트워크 정보 등을 포함
  • 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으로 설정된다.

3. NAT (Network Address Translation)

  • 로컬 네트워크에 연결된 모든 디바이스가 외부 인터넷과 통신할 때, 하나의 공용 IPv4 주소를 공유하도록 하는 기술

    • 로컬 네트워크 내에서 호스트 간 통신은 로컬 주소를 사용하고, 외부로 나가는 트래픽은 NAT를 통해 하나의 공용 IP 주소로 변환되며 다른 포트 번호를 가진다.
      • Public IP: 인터넷 사용자의 네트워크를 식별하고 인터넷과 통신할 때 사용
      • 사설 IP: 가정 및 회사 내의 로컬 네트워크에서 사용하며, 동일한 네트워크 내에서 호스트 간 통신에 사용
        → IPv4의 주소부족 문제를 해결하고자 서브네팅 된 IP이며, NAT를 통해 할당된다.
    • 내부에서 외부로 패킷을 보낼 때, NAT 장치를 거쳐 Private IP → Public IP로 변경
    • 외부에서 내부로 패킷을 보낼 때, NAT 장치를 거쳐 Public IP → Private IP로 변경
  • 장점

    1. 하나의 공용 IP 주소로 다수의 디바이스 공유: IP 주소 부족 문제를 완화
    2. 내부 주소 변경을 외부로 노출하지 않음: 로컬 네트워크에서 디바이스의 IP 주소를 변경하거나 재구성해도, 외부 네트워크에서는 이러한 변경 사항을 알 필요 없다.
    3. 보안 강화: NAT를 통해 로컬 네트워크 상의 디바이스들은 외부 네트워크에서 직접적으로 접근하거나 보지 못하도록 보호된다.
  • 동작 구조

    1. 외부로 나가는 데이터그램을 전송할 때, NAT는 데이터그램의 IP주소와 포트 번호를 NAT IP 주소와 포트 번호로 변환
    2. NAT는 로컬 네트워크 내에서 어떤 IP 주소를 사용하는 호스트가 어떤 포트 번호를 할당받았는지를 기억하고 관리하기 위해 NAT translation table을 사용
    3. 외부 네트워크에서 로컬 네트워크로 들어오는 데이터그램을 받으면, NAT는 기록한 IP 주소 및 포트 번호 테이블을 확인하여 올바른 로컬 호스트로 전달하기 위해 목적지 IP 주소와 포트 번호를 변환 후 올바른 목적지에 전달
  • 동작 과정

    1. 로컬 네트워크의 호스트 (예: 10.0.0.1, 포트 3345)가 128.119.40.186으로 데이터그램을 전송
    2. NAT 라우터는 이 데이터그램의 출발지 IP 주소를 NAT IP 주소 (예: 138.76.29.7)로 변경하고, 출발지 포트 번호도 새로운 포트 번호 (예: 5001)로 변경
      → NAT translation table에 이 변환 정보를 기록
    3. 외부에서 138.76.29.7 IP 주소 및 5001 포트 번호로 들어오는 데이터그램이 수신되면, NAT는 이 정보를 NAT translation table에서 검색하여 올바른 로컬 네트워크의 IP 주소와 포트 번호 (예: 10.0.0.1, 포트 3345)로 변환
    4. 변환된 데이터그램은 목적지 정보가 10.0.0.1 IP 주소와 3345 포트로 변경되어, 올바른 호스트에게 전달
  • 공유기와 NAT: 공유기를 통해 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속한다.
    → 공유기는 NAT을 사용하여 로컬 네트워크의 호스트들이 인터넷과 통신할 때 IP 주소 변환을 수행
    → 노트북, 아이패드 등 여러개의 장치들이 연결되고 공인IP (공유기)를 통해 외부 네트워크와 통신

0개의 댓글