[Computer network] Chapter 1, 2 - DHCP, NAT, Routing

이한량·2024년 10월 10일

Computer Network

목록 보기
4/11

1. Dynamic Host Configuration Protocol

  • Dynamic Host Configuration Protocol (DHCP) : 네트워크에서 IP 주소를 자동으로 할당하는 프로토콜이다.

    • 한 조직의 IP 주소 블록이 할당되면, 네트워크 관리자가 각 호스트나 라우터에 수동으로 IP 주소를 지정한다.

    • DHCP를 사용하면, 이런 과정 없이 IP 주소 할당을 자동으로 처리할 수 있다.

    • DHCP는 애플리케이션 계층의 프로그램으로, 네트워크 계층의 TCP/IP를 보조하는 역할이다.

1-1. DHCP Scenario

  • DHCP Discover

    • 클라이언트(Host)가 네트워크에 접속을 시도하며 DHCP 서버가 있는지 질의 메시지를 보낸다. (브로드캐스트)
  • DHCP Offer

    • DHCP 서버는 클라이언트의 메시지를 수신하고, 사용 가능한 IP 주소가 있다는 응답을 보낸다. (브로드캐스트)
  • DHCP Request

    • 클라이언트는 DHCP 서버가 제안한 IP 주소를 사용하기로 결정하고, 응답 메시지를 보낸다. (브로드캐스트)

    • 클라이언트가 서버에게 IP 주소를 요청하는 단계이다.

  • DCHP Acknowledgment (DCHP ACK)

    • DCHP 서버는 클라이언트의 요청을 승인하고, 해당 IP 주소를 할당했음을 알리는 메시지를 보낸다. (브로드캐스트)

1-2. DHCP Message Format

  • Opcode (Operation code, 8bits) : DHCP 메시지가 요청(1)인지, 응답(2)인지를 나타낸다.

  • Flags (16bits) : 첫 번째 비트는 유니캐스트(0)인지, 멀티캐스트(1)인지를 나타낸다. 나머지 15비트는 사용되지 않는다.

  • Options (64bytes) : 추가 옵션에 대해 명시되어 있는 필드이다. DHCP가 사용하는 여러 설정 정보가 들어있다.

1-3. Operation of DHCP

  • DHCP Discover

    • 클라이언트는 네트워크에 처음 연결되고, 자신의 IP 주소 할당을 요청하는 메시지를 DHCP 서버에게 보낸다.

    • Source Address : 0.0.0.0 (IP 주소 할당 전)

    • Destination Address : 255.255.255.255 (브로드캐스트)

  • DHCP Offer

    • DHCP 서버는 클라이언트의 요청을 받고, 사용 가능한 IP 주소를 제안한다.

    • 응답 메시지에는 서버의 주소와 호스트의 주소가 들어있다.

    • 할당 시간은 이때 정해진다.

    • Your Address : 181.14.16.182 (할당 주소)

    • Server Address : 181.14.16.170 (서버 주소)

    • Source Address = Server Address

    • Destination Address : 255.255.255.255 (브로드캐스트)

  • DHCP Request

    • 클라이언트는 서버로부터 받은 IP 주소를 사용하기로 하고, 해당 IP 주소를 요청하는 메시지를 다시 서버에 보낸다.

    • Client Address : 181.14.16.182

    • Server Address : 181.14.16.170 (서버 주소)

    • Source Address = Client Address

    • Destination Address : 255.255.255.255 (브로드캐스트)

  • DHCP ACK

    • DHCP 서버는 클라이언트의 요청을 승인하고, 해당 IP 주소를 할당한다.

    • 서버는 ACK 메시지를 보내 IP 주소 할당이 완료되었음을 알린다.

    • 최종 ACK 메시지의 형태는 다음과 같다.

    • Lease time : 해당 IP주소가 호스트에게 할당되는 시간이다.

2. Network Address Translation

  • Network Address Translation (NAT) : 네트워크 주소 변환 기술이다. 내부 네트워크의 호스트들이 공인 IP 주소 없이도 외부 네트워크(인터넷)과 통신할 수 있도록 하는 기술이다.

    • NAT은 사설 IP 주소와 공인 IP 주소 간의 매핑을 제공하는 기술이다.

      • 내부 네트워크 내의 통신은 사설 IP 주소를 이용하고, 외부 네트워크(인터넷)와의 통신 시 공인 IP 주소를 이용한다. 즉, 네트워크 환경에 따라 IP 주소의 변환이 이루어진다.

      • NAT 라우터가 사설 네트워크와 인터넷을 연결하며 IP 주소를 변환해준다.

      • 내부 네트워크 장치가 인터넷과 통신할 때, NAT 라우터는 장치의 사설 IP를 NAT 라우터의 IP로 변환하여 외부와 통신한다.

      • 실질적으로 외부 네트워크는 모든 데이터를 NAT 라우터에 보내고, 내부 네트워크 어느 호스트에 보낼지는 NAT 라우터에서 결정한다.

2-1. Address Translation

  • 사설 IP : 172.18.3.~

    • 외부 인터넷과 소통하기 위해 라우터로 패킷을 보낸다.
  • NAT 라우터 IP : 200.24.5.8

    • 라우터의 IP 주소로, 외부 네트워크는 라우터와 통신 하는 것으로 인식한다.

    • 이러한 방식으로 라우터를 통해 내부 네트워크와 외부 네트워크간 통신이 이루어진다.

  • Translation Process

    • Table Entry 생성 (1)

      • 사설 네트워크에 존재하는 장치가 외부 네트워크로 데이터를 보내려고 한다.

      • NAT 라우터는 송신지 주소 (Source Address, S)와 목적지 주소(Destination Address, D)를 매핑하여 변환 테이블에 항목을 추가한다.

      • 송신지는 사설 네트워크의 주소, 목적지는 공인 네트워크의 주소이다.

    • 출발지 주소 변경 (2)

      • NAT 라우터는 사설 네트워크의 출발지 주소를 NAT 라우터의 주소로 설정한다.

      • 목적지 주소는 그대로 유지되며, 변환된 패킷은 외부 네트워크의 목적지를 향해 이동한다.

    • Table 접근 및 응답 처리 (3)

      • 외부 네트워크의 클라이언트가 응답 패킷을 보낼 때, NAT 라우터의 주소(공인 주소)를 목적지 주소로 설정한다.

      • NAT 라우터는 응답 패킷의 Source 주소를 확인하고, 변환 테이블을 참조한다.

    • 목적지 주소 변환 (4)

      • NAT 라우터는 변환 테이블 항목을 참조해 응답 패킷의 출발지 주소와 매핑된 사설 네트워크의 목적지 주소를 불러온다.

      • 목적지 주소를 사설 네트워크 장치의 주소로 변환한다.

  • Translation Table

3. Forwarding of IP Packets

포워딩이란, 패킷을 목적지로 가는 경로에 올려놓는 것을 의미한다. 포워딩 과정에서 IP Packet은 어떤 역할을 하는지 알아보도록 하자.

  • Route method vs Next-hop method

    • Route method : 목적지까지의 전체 경로가 라우팅 테이블에 기록된다. 즉, 패킷이 이동할 모든 중간 라우터의 경로가 테이블에 기록된다.

    • Next-hop method : 라우팅 테이블에 패킷이 이동할 다음 라우터(Next-hop)만 기록한다.

  • Host-specific method vs Network-specific method vs Default method

    • Host-specific method : 라우팅 테이블 항목이 각 호스트별로 존재한다.

      • 호스트별로 다른 경로가 설정될 수 있다.
    • Network-specific method : 라우팅 테이블 항목이 네트워크별로 존재한다.

      • 네트워크에 대한 경로만 설정된다. 따라서 목적지 네트워크에 도달하면, 나머지 라우팅은 해당 네트워크 내부적으로 처리된다.
    • Default method : 기본(Default) 라우터를 설정하여 어떠한 목적지에 대해 특정한 경로가 설정되지 않은 경우, 기본 경로로 라우팅된다.

3-1. Forwarding in Classless address

클래스리스 주소 체계에서 포워딩 모듈의 동작을 간소화해서 살펴보도록 하자.

  • 패킷 수신 및 목적지 주소 추출

    • 라우터는 수신한 패킷의 목적지 주소를 추출한다.
  • Search Table

    • 라우터가 추출한 목적지 주소를 기반으로 포워딩 테이블을 참조한다.

    • 포워딩 테이블에는 네트워크 주소, 서브넷 마스크, Next-hop IP 주소, 인터페이스 정보(Port)가 저장되어 있다.

    • Classless 주소 체계이기 때문에, IP 주소와 서브넷 마스크를 통해 목적지의 네트워크 주소를 알아낸다.

  • 패킷 전송

    • 라우터는 검색 결과를 바탕으로 포워딩을 마치고, 패킷을 다음 홉으로 전달한다.

    • 이 과정은 패킷이 최종 목적지에 도착할 때까지 여러 라우터에서 반복된다.

포워딩 테이블은 다음과 같이 구성되어 있다.

3-2. 예제

  • 네트워크 구성

    • 라우터 R1의 인터페이스 m0 ~ m3에 서브넷들이 연결되어 있다.

    • 각 서브넷의 네트워크 주소와 연결된 호스트의 주소가 주어져 있다.

    • 한 서브넷은 외부 인터넷과 연결되어 있다.(180.70.65.194/26)

위와 같은 네트워크 환경에서, 라우터 R1에 도착한 패킷이 어떻게 처리되는지 확인해보자. 패킷의 목적지 주소는 180.70.65.140이다.

  • 포워딩 결정 과정

    • 첫 번째 마스크 (/26) 적용
      subnet mask : 11111111.11111111.11111111.11000000
      목적지 주소 : 10110100.01000110.01000001.10001100
      and 연산 결과 : 10110100.01000110.01000001.10000000

      • 네트워크 주소 : 180.70.65.128

      • 네트워크 180.70.65.192/26는 목적지 네트워크가 아니다.

    • 두 번째 마스크 (/25) 적용
      subnet mask : 11111111.11111111.11111111.10000000
      목적지 주소 : 10110100.01000110.01000001.10001100
      and 연산 결과 : 10110100.01000110.01000001.10000000

      • 네트워크 주소 : 180.70.65.128

      • 네트워크 180.70.65.128/25는 목적지 네트워크이다.

      • 따라서 라우터는 Next-hop 주소인터페이스 번호 m0을 사용하여 패킷을 전송한다.

3-3. Address Aggregation

  • Address Aggregation (주소 집합) : 주소 집합은 여러 조직의 네트워크를 하나의 더 큰 주소 블록으로 묶어 포워딩 테이블을 단순화하는 기법이다.

    • 위 그림을 예시로 보면, 4개로 나뉘어져 있는 네트워크를 1개의 큰 네트워크로 합친 것을 볼 수 있다.

    • 이 경우 외부 라우터(R2)는 라우터 R1에 대한 포워딩 테이블 항목만 작성하면 된다.

    • 4개의 네트워크가 연결된 R1만 각 서브 네트워크에 대한 포워딩 테이블 항목이 필요하다.

3-4. Longest mask matching

  • Longest mask matching : 라우터가 목적지 IP 주소를 보고, 포워딩 테이블을 조회할 때 가장 구체적인 서브넷 마스크와 일치하는 경로를 선택한다.

    • 예를 들어, /24 주소와 /26 주소가 있다면, /26 주소가 더 구체적인 네트워크 주소를 나타낸다.

    • prefix가 긴 주소일수록 네트워크 주소가 구체적이라고 할 수 있는 것이다.

profile
한량 극복 프로젝트

0개의 댓글