IP는 NIC 식별을 위한 주소이다. 호스트가 어떤 네트워크에 들어갔을 때 IP 주소를 할당받지 않은 상태에서, 즉 그 호스트를 식별할 방법이 없는 상태에서 어떻게 누구와 통신하여 IP 주소를 할당받을까? 이번 글에선 IP주소 할당 방법에 대해서 자세히 알아보자.
IP 주소 할당
- 할당 방법에는 두 가지 방법이 있다.
- 시스템 파일에다 직접 입력하기
- DHCP를 사용
- Dynamic Host Configuration Protocol
- 애플리케이션 계층의 프로로콜이다.
- 동적으로 IP주소를 할당받는다.
DHCP
- DHCP의 작동방식과 특징
- IP를 동적으로 할당해주는 DHCP 서버를 브로드캐스팅 도메인 내에 둔다.
- 호스트와 DHCP는 서로 브로드캐스팅을 통해 통신할 수 있다.
- 호스트가 네트워크에 접속해있는 시간동안만 IP주소를 할당(임대)받는다.
- 따라서 주소 재사용이 가능해서 IP주소를 효율적으로 사용할 수 있다.
- IP 주소를 수동으로 설정할 필요 없이 Plug and play가 가능하다.
- 포트번호는 67이다. 일회성 질의이므로 UDP를 사용한다.
- 네 개의 메세지로 구성된다.
- DHCP discover
- 호스트가 DHCP 서버를 찾기 위한 메세지이다.
- 동일 서브넷 내에 브로드캐스팅된다.
- 호스트의 맥 주소가 담긴다.
- DHCP offer
- 유니캐스트나 브로드캐스트일 수 있다.
- DHCP 서버가 호스트에게 자신의 존재를 알린다.
- 할당 '될' IP 주소와 Local DNS 서버 주소, Subnet Portion, 이 메세지를 보낸 DHCP 서버의 주소, 게이트웨이 라우터 주소를 알려준다.
- DHCP request
- 브로드캐스트로 보낸다.
- 호스트는 DHCP 서버를 선택하고 해당 서버에게 호스트가 사용할 네트워크 정보를 정식으로 요청한다.
- 호스트의 맥 주소, 호스트가 사용할 IP, DHCP 서버의 IP가 들어간다.
- DHCP Ack
- 브로드캐스트나 유니캐스트일 수 있다
- DHCP offer 메세지와 동일한 정보를 제공해준다.
- 정식으로 서버가 주소를 할당해준다.
- discover 메세지와 offer 메세지는 optional이다.
- DHCP discover
- DHCP 서버의 추가적인 역할
- 게이트웨이 라우터(First Hop 라우터)의 주소를 알려준다.
- Local DNS 서버의 주소를 알려준다.
- Network Mask(Subnet Portion, 32비트 주소중 어디까지가 Subnet을 가리키는 주소인지)
서브넷 주소할당
- 서브넷은 ISP로부터 주소블록을 할당받는다.
- 예를들어서 ISP가 200.23.16.0 /20 주소블록을 가지고 있으면
- 서브넷1은 200.23.16.0/23
- 서브넷2는 200.23.18.0/23
- ......
- 마지막은 200.23.30.0/23
- 이런 식이다. 이진수로 나타내서 생각해보면 이해가 된다.
- IP prefix에 따라 계층적으로 주소할당이 된다.
- 계층적인 주소할당
- 라우터에서 포워딩테이블을 탐색할 때 Input으로 들어온 패킷은 가장 Specific (Longest Prefix)한 주소를 가지는 Output 포트로 나간다.
- ISP가 보유하는 주소블록은 인터넷진흥원이 관리한다.
NAT
- Network Address Translation의 약자이다.
- IP주소 고갈 문제
- IPv4는 32비트 주소를 사용하므로 약 42억개의 주소를 할당할 수 있다.
- 하지만 이마저도 점점 고갈되어간다.
- NAT란?
- NAT는 하나의 Public IP를 서브넷 내에서만 사용할 수 있는 여러개의 사설 IP로 변환하는 시스템이다.
- 게이트웨이 라우터만 Public IP를 가지고 있고 로컬 호스트들은 사설 IP를 가진다.
- 서브넷 내의 호스트들은 포트번호로 구분된다.
- 포트 포워딩
- 라우터에서 [Public IP, Port번호]가 [Private IP, 호스트 내 포트번호]로 변환된다.
- 예를 들어 한 호스트 내 프로세스가 [10.0.0.1, 3345]로 식별된다고 생각해보자.
- 라우터는 [자신의 Public IP, 비어있는 포트번호]로 바꾸고 이를 자신의 테이블에 적는다.
- 응답이 돌아오면 포트번호를 보고 어떤 호스트의 어던 프로세스인지 식별할 수 있다.
- 즉 게이트웨이 라우터의 포트번호와 호스트의 프로세스를 매칭하는 원리다.
- 관리상의 이점
- LAN내의 모든 디바이스는 하나의 아이피만 있으면 된다.
- 접속하는 ISP가 변해도 로컬 네트워크의 IP를 변경하지 않아도 된다.
- 로컬 네트워크 내의 IP주소를 바꿀 때 외부에 알리지 않아도 된다.
- 보안상의 이점이 있다.
- NAT의 문제점
- end to end 통신을 침범한다.
- NAT Traversal Problem
- NAT로 구성된 LAN 내부에 서버가 있을 경우 Public IP만으로는 서버를 식별할 수 없다.
- 그러므로 NAT 라우터는 정적으로 특정 포트를 서버에 할당한다.
- UPnP
- Internet Gateway Device 프로토콜을 이용해서 자동으로 연결할 수 있다.
더보기
본 게시물은 kocw 이화여자대학교 이미정 교수님의 컴퓨터 네트워크 강의를 듣고 정리한 글임을 밝힙니다.
내용상 틀린 부분이 있을 수도 있으며 이에 대한 책임을 지지 않습니다.
틀린 부분이나 오타 지적은 댓글로 남겨주세요.
'컴퓨터 네트워크' 카테고리의 다른 글
네트워크 17강 - 라우팅 알고리즘 (0) | 2020.08.16 |
---|---|
네트워크 16강 - ICMP 와 IPv6 (0) | 2020.08.12 |
네트워크 14강 - Inside Router, IP (0) | 2020.08.11 |
네트워크 13강 - Network Layer의 소개 (0) | 2020.08.10 |
네트워크 12강 - TCP part.3 (0) | 2020.08.10 |