IPv4 주소 체계
- IP(Internet Protocol) 란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소
- IP주소는 IPv4, IPv6 2가지 종류가 있지만 일반적으로 IP 주소라 하면 IPv4 주소를 말한다.
- 172.16.254.1와 같이 마침표로 구분된 4개의 숫자가 있는, 점으로 분리된 10진수 형식
- 전 세계적으로 인터넷 사용자 수가 급증하면서 IPv4 주소가 고갈될 위기에 이러한 고갈 문제를 해결하기 위해 등장한 주소가 바로 IPv6
IPv4 주소 체계
호스트와 라우터
- 호스트는 일반적으로 네트워크와 연결되는 하나의 링크를 가진다.
- 호스트 IP가 데이터그램을 보낼 때 이 링크를 통해 보냄
- 호스트와 물리적 링크 사이의 경계를 인터페이스라고 함
- 라우터는 한 링크로부터 데이터그램을 수신하여 다른 링크로 전달하며 하나의 라우터는 여러 인터페이스를 가진다.
- 라우터와 링크 사이의 경계도 인터페이스라고 함
- 라우터는 수신과 송신을 해야함으로 2개 이상의 연결된 링크가 필요
- 모든 호스트와 라우터는 IP 데이터그램을 송수신할 수 있기에 IP는 각 호스트와 라우터 인터페이스가 IP 주소를 갖도록 요구한다.
- 전 세계 모든 호스트와 라우터는 고유한 IP 주소를 갖는다.
IP 구조
- IP 주소는 32비트(4바이트)로 2^32개 주소가 사용 가능하다.
- 주소의 각 바이트를 십진수로 표현하고 바이트 사이를
.
으로 구분하는 십진 표기법을 사용
- IP 주소는 마음대로 선택할 수 없고 인터페이스의 IP 주소 일부는 연결된 서브넷이 결정
IP와 서브넷
- 서브넷(Subnet)이라는 것은 하나의 네트워크가 분할되어 나눠진 작은 네트워크
- IP 용어로 n개의 호스트들의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크는 서브넷을 구성한다고 말한다.
- n개의 호스트 인터페이스와 1개의 라우터 인터페이스는 별도의 라우터 없이 하나의 네트워크에 연결되는데 이 때 이더넷 허브나 이더넷 스위치라는 인터페이스로 연결되는 이더넷 LAN으로 상호 연결된다.
- ex) IP 주소 체계는 서브넷에
223.1.1.0/24
라는 주소를 할당
/24
는 서브넷 마스크라고 부르는데 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킨다.
223.1.1.4
주소를 가지는 라우터의 인터페이스가 존재할 때 이 인터페이스와 연결되는 호스트 인터페이스 223.1.1.1
, 223.1.1.2
, 223.1.1.3
은 같은 서브넷이라고 볼 수 있다.
- 서브넷 IP의 정의는 여러 호스트를 라우터 인터페이스에 연결하는 이더넷 세그먼트만을 의미하는 것은 아니다.
- 라우터와 라우터가 점대점으로 연결되는 경우, 각 라우터가 연결되는 인터페이스들의 IP 주소들도 서브넷으로 구성될 수 있다.
CIDR (Classless Interdomain Routing)
- 원칙대로라면 서로 다른 서브넷은 다른 서브넷 주소를 가져야 하지만 실제로 서브넷 주소는 종종 같은 부분이 있다.
- CIDR의 full name은 Classless Inter-Domain Routing 으로 클래스 없는 도메인간 라우팅 기법
- 32 비트 IP 주소는 두 부분으로 나누고 다시 점으로 된 십진수 형태의
a.b.c.d/x
를 가지며, 여기서 x
는 주소 첫 부분의 비트 수이다.
a.b.c.d/x
주소에서 최상위 비트를 의미하는 x
는 IP 주소의 네트워크 부분을 구성 (프리픽스라 부름)
- 한 기관은 통상 연속적인 주소 블록(공통 프리픽스를 갖는 주소 범위)을 할당 받는다.
- 기관 장비들의 IP 주소는 공통 프리픽스를 공유
- 외부 기관의 라우터가 데이터그램을 전달할 때 앞의
x
비트들만 고려하면서 포워딩 테이블 크기를 상당히 줄여준다.
- 주소의 나머지 32 - x 비트들은 기관 내부의 모든 장비들을 구별한다.
- ex)
a.b.c.d/21
은 첫 21비트들은 기관 네트워크 프리픽스를 나타내고 이 기관 모든 장비 IP 주소에 공통이다. 나머지 11비트는 기관 내부의 특정 호스트를 식별한다.
- CIDR 채택 전에는 IP 주소 네트워크 부분을 8, 16, 24 비트로 제한했고 각각 A, B, C 클래스 네트워크로 분류했는데 이를 클래스 주소체계라고 한다.
- 클래스 주소 체계는 IP 주소의 서브넷 부분이 정확히 1, 2, 3 바이트여야 하기에 급속히 증가하는 기관 수를 지원하기엔 문제가 있었다.
동적 호스트 구성 프로토콜 (DHCP)
- 한 기관은 ISP로부터 주소 블록을 획득하여 개별 IP 주소를 기관 내부 호스트와 라우터 인터페이스에 할당한다.
- 호스트에 IP 주소를 수동으로 할당하는 것도 가능하지만 일반적으로 동적 호스트 구성 프로토콜(Dynamic HostConfiguration Protocol)을 더 많이 사용한다.
- 호스트가 네트워크가 접속하려고할 때마다 동일한 IP 주소를 받도록 하거나 임시 IP 주소를 할당하도록 DHCP를 설정할 수 있다.
- 사용자가 노트북을 들고 도서관, 강의실 등 이동한다고 했을 때 각 지역에서 새로운 서브넷에 접속하여 새로운 IP 주소가 필요하다. 이 경우 수동으로 IP를 할당 받는 것은 어렵기에 DHCP가 이를 대신해준다.
- 각 서브넷에는 DHCP 서버가 존재하고 만약 서버가 현재 서브넷이 없다면 해당 네트워크에 대한 DHCP 서버 주소를 알려줄 DHCP 연결 에이전트(일반적으로 라우터)가 필요하다.
- DHCP 프로토콜 4단계
- DHCP 서버 발견: DHCP 발견 메시지(DHCP discover message)를 사용하여 수행되며 포트 67번으로 UDP 패킷을 보낸다. 이 때 클라이언트는 DHCP 서버 주소를 모르기에 서브넷에 연결된 모든 노드로 브로드캐스팅한다. (src:
0.0.0.0
, dest: 255.255.255.255
)
- DHCP 서버 제공: DHCP 발견 메시지를 받은 DHCP 서버는 DHCP 제공 메시지로 응답한다. DHCP 서버는 IP 주소, 네트워크 마스크, IP 주소 임대 기간 등을 포함하여 전달한다. 이 때도 서브넷의 모든 노드로 브로드캐스트한다.
- DHCP 요청: 클라이언트는 하나 또는 그 이상의 DHCP 서버 제공자 중 선택하고 선택된 제공자에게 DHCP 요청 메시지로 응답한다.
- DHCP ACK: 서버는 DHCP 요청 메시지에 대해 DHCP ACK 메시지로 응답한다. 이후 클라이언트는 DHCP 할당 IP 주소를 임대 기간 동안 사용할 수 있다.
네트워크 주소 변환 (NAT)
- LAN(Local Area Network)을 설치할 때마다 모든 IP 장치 (전화, 태블릿, 기타 장치 등)를 수용할 수 있는 주소 범위를 할당해야 하는데 부족할 수가 있다. → NAT으로 해결
- NAT이란 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
- NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다
- ‘NAT 가능’한 라우터는 외부 네트워크에선 하나의 IP 주소를 갖는 하나의 장비로 동작한다.
- NAT 가능한 라우터는 홈 네트워크의 상세 사항을 외부로부터 숨긴다.
- NAT 라우터에 모든 데이터그램이 도착하면 NAT 변환 테이블을 사용하여 대상 내부 호스트에 데이터그램을 전달한다.
-
NAT를 이용하는 또 하나의 이점으로는 LAN 내부의 IP 체계를 외부로부터 숨길 수 있기에 보안이 강화된다.
컴퓨터 네트워킹 하향식 접근 제 7판