ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DHCP, NAT
    네트워크 2024. 5. 21. 20:37

    DHCP (Dynamic Host Configuration Protocol)

    서버가 네트워크에 조인하려는 호스트에게 자동으로 IP를 할당해주는 응용 계층의 프로토콜

     

    정해진 개수의 IP를 들고 있고, 호스트가 요청하면 IP를 할당해줌

    예를 들어 학교의 와이파이 같은 경우가 해당

    모든 학생마다 각각을 위한 IP를 주기보다는 적당한 수의 IP를 준비해두고 달라고 하면 주는게 효율적

     

    작동 원리

    1. DHCP discover:

    - 호스트가 브로드 캐스트 요청 (src, dest, 등 아는 거 없고 그냥 보냄)

    - 누가 DHCP 서버인지 모르니까 일단 네트워크에 브로드캐스트

    - 있는 건 트랜잭션 ID

     

    2. DHCP offer:

    - DHCP 서버만 요청을 인식하고 응답 (소스만 있고, 목적지는 모름, 서버도 브로드 캐스팅)

    - yiaddr (your ip address)에 할당 가능한 IP를 넣어 보냄

     

    3. DHCP request:

    - 받은 IP를 사용하겠다고 브로드 캐스팅

    - 다른 트랜잭션 ID 사용

    - 아직 사용하기는 전이라 src는 비어둠

     

    4. DHCP ACK

    - IP 할당 됐다고 알림

     

     

    DHCP는 단순 IP말고도 다른 정보를 보냄

    - 클라이언트가 지나게 될 첫 라우터의 주소

    - DNS 서버의 이름과 IP 주소

    - 네트워크 마스크

     

    DHCP는 하위로 UDP를 사용하는 응용계층 프로토콜임

     

    DHCP의 장점

    - IPv4의 가용 IP 주소가 고갈되어 IP 주소를 효율적으로 사용할 수 있음

    - 컴퓨터의 플러그 & 플레이 가능 (고정 IP 주소 설정할 필요 없음)


    NAT (Network Address Translation)

    일반 가정에서는 인터넷 공유기 한 대에 IP 주소 1개가 할당됨

    같은 공유기에 연결된 기기에는 사설 IP가 부여되고 외부에서는 하나의 IP를 쓰는 것처럼 보임

    사설 IP는 내부, 공식 IP는 외부

     

    로컬 네트워크는 외부 환경에 관한 단 하나의 IP 주소 사용

    외부에 알리지 않고 로컬 네트워크에서 장치의 주소를 변경 가능

     

    각 클래스 별로 사설 IP용으로 인식

    A class : 10.x.x.x

    B class: 172.16.x.x ~172.31.x.x

    C class: 192.168.0.x ~ 192.168.255.x

     

    구현

    NAT 라우터는

    - 발신 데이터그램: 소스 IP와 포트를 NAT IP와 새로운 포트로 변경

          => 답장은 NAT IP와 새 포트로 보내 줄 것

    - NAT 변환 테이블에 이전 IP, 포트와 변환된 IP, 포트의 쌍을 저장

    - 수신 데이터 그램: NAT IP와 포트를 테이블 보고 원래 값으로 변경

     

    예시

    1. 10.0.0.1, 3345 -> 128.119.40.186, 80

    <변환>

    2. 138.76.29.7, 5001 -> 128.119.40.186, 80

    3. 128.119.40.186, 80 -> 138.76.29.7, 5001

    <변환>

    4. 128.119.40.186, 80 -> 10.0.0.1, 3345


    NAT 관련 이슈

     

    포트 번호는 16비트 -> 0~65535번 포트까지 연결 가능

     

    논란

    - 라우터는 3계층까지만 처리해야 함 -> 포트 번호까지 다루는 게 맞느냐?

    - 주소 부족은 IPv6로 해결해야 한다

    - 종단 간 원칙을 위반한다 -> 데이터의 처리나 변환은 엔드포인트에서 이루어져야 하는데 중간에서 IP와 포트를 변환함

    - 애플리케이션 설계에서 NAT 고려 필요 -> P2P 애플리케이션은 직접 통신이 어려울 수도 있음

     

    NAT 탐색

    클라이언트가 NAT 뒤의 서버와 연결

    대표적인 방법이 포트포워딩 - 사설 IP 중 하나를 웹 서버로 고정함

    '네트워크' 카테고리의 다른 글

    라우팅 프로토콜  (0) 2024.06.05
    IPv6  (0) 2024.06.05
    IP addressing: Subnet Mask, CIDR  (0) 2024.05.21
    IP 구조, Fregmentation  (0) 2024.05.06
    네트워크 스케줄링 메커니즘  (0) 2024.05.06
Designed by Tistory.