본문 바로가기

Network/Basic

05. IP 주소

 

 
IP 주소
 
Layer 3 에서 Logical Address 를 할당하는데 이를 IP 주소라고 한다.
 
IP주소의 사용이유는 각각의 Host 들을 구분하기위해 사용되며,  
 
부여받은 IP는 자기 고유의 IP가 되기에 다른 사람이 사용하면 안된다.
 
하지만 현재 사용되는 IPv4 방식의 IP 수는 한정되어 있기에 
 
모든 Host에게 고유의 고정 (Public) IP를 할당하지 못한다.
 
일반적인 경우에는 PC의 '네트워크 설정'에서 확인할 수 있는 TCP/IP Protocol을 보면
 
고정 IP가 아닌 유동 IP로 설정이 되어 있는데, 
 
이는 평범한 가정에서 사용하는 PC의 경우 전원이 Off되어 고정 IP 주소가 필요없는 경우가
 
대부분이기에 DHCP Server를 이용하여 전원이 켜져있는 컴퓨터에게만 고정 IP를 할당하며, 
 
컴퓨터가 Off되면 IP를 회수하게 된다.
 
혹은 라우터(게이트웨이) 만 고정 IP 를 할당받고 내부 네트워크에서는
 
가상 (Private) IP 를 사용하도록 설정한다.
 
 
 

IP 구조

 
IP Address는 32bit(4byte) 길이로 구성된 논리적인 주소체계로서 8bit 씩 끊어 10진수로 읽는다. 
 
 OOO.OOO.OOO.OOO (ex. 184.51.65.127)
 
 
 각 옥탯 별로 IP는 0~255까지의 범위를 가지게 되며, 
 
각 옥탯 별로 부여할 수 있는 IP의 개수는 256개가 된다.
 
그리고 전체 IP의 수는 4,294,967,296개로 약 42억개 정도로 한정되어 있다.
 
 
 

IP 구성
 
IP = Network  + Host 
 
하나의 IP주소에는 Network ID와 Host ID가 존재하고 있다. 
 
호스트 주소는 개인의 PC 를 구분하는 용도로 사용하고 
 
네트워크 주소는 라우터의 사용없이 통신이 가능한 그룹을 지정하기 위해 사용한다.
 
즉 네트워크 주소는 라우터가 경로를 찾기 위해 사용되는 주소이다.
 
 
 

IP 클래스
 
앞서 IP 주소는 네트워크 + 호스트 로 구성된다고 하였는데
 
여기서 네트워크와 호스트를 구분하기 위해 사용되는 것이 IP 클래스라는 것이다.
 
( IP 주소를 발급받을 때 IP 의 클래스도 같이 발급 받는다 )
 
IP 주소가 B 클래스에 속해 있다, A 클래스에 속해 있다에 따라 같은 IP 주소도 다르게 해석된다.
 
보통 10진수 표기법에서 가장 앞 숫자가 무엇으로 시작되는지로 각 클래스를 구분할 수 있고
 
A,B,C 클래스는 유니캐스트 용으로 사용하고
 
 
 
 
 
 
D 클래스는 멀티 캐스트 용으로 사용하며 일반적인 용도로 사용되지 않고
 
E 클래스는 실험용이나 미래를 대비해 만들어 놓은 클래스라고 한다.
 

 

 
전체적으로 정리하면 아래와 같다.
 
 
 

유니캐스트
 
 
WAN과 LAN상에서 이루어지는 가장 일반적인 방식으로 서버와 클라이언트가
 
1대 1로 연결되고 데이터를 주고 받는다. 
 
만약 하나의 서버에 100개의 클라이언트가 연결한다면 100개의 연결이 만들어 지고 
 
서버는 동일한 데이터를 100개 복사해서 각각의 클라이언트에게 전송하게 될 것이다. 
 
이 방식은 구현이 간단하고 웹과 같이 각 클라이언트로 다른 데이터를 보내야 하는 분야에서는
 
쓸만하지만 동일한 데이터를 다수의 유저에게 전달시켜야 하는
 
실시간 멀티미디어 서비스에는 그리 적합하지 않다. 
 
대량의 동일한 데이터가 유저 수만큼 복사되기 때문이다.
 
 

멀티캐스트
 
 
유니캐스트방식은 사용하기 쉽지만 동일한 데이터를 연결갯수 만큼
 
서버에서 복사해야 한다는 단점이 있다. 
 
100k로 압축된 영상 데이터를 전송한다고 가정해보자. 
 
1000명의 유저가 들을 경우 무려 100M의 데이터를 서버에서 복사해야 한다. 
 
멀티캐스트 방식의 경우에는 데이터 복사가 서버가 아닌 라우터에서 발생하므로
 
서버의 부하는 없을 것이다. 
 
그러나 데이터를 모든 컴퓨터로 방송하므로 데이터 낭비가 생긴다. 
 
200개의 컴퓨터로 이루어진 서브네트워크가 있다고 가정해 보자. 
 
이중 IPTV방송을 시청하고픈 컴퓨터는 단지 10대이다.
 
브로드캐스팅을 하게 되면, 200개의 컴퓨터 모두에 데이터가 전달된다.
 
 

브로드캐스트
 
 
브로드캐스팅(boradcasting)는 보내고자 하는 정보를 모든 수신자에게 보내는 방식으로,
 
서브네트워크에서 하나의 호스트가 데이터를 보내면
 
서브네트워크의 모든 호스트로 데이터가 전송된다.
 
데이터를 받을지 아니면 무시할지는 순전히 받는 측에서 결정하게 된다.
 
브로드 캐스팅은 주로 서브 네트워크 환경에서
 
주변의 호스트 정보를 알아오기 위한 데이터 교환용으로 널리 사용된다.
 
 

다이렉트 브로드캐스트
 
네트워크 주소가 172.31.0.0 이라면 브로드캐스트 주소는 172.31.255.255 이다.
 
그래서 서버에서 브로드 캐스트 주소로 데이터를 날리면
 
해당 네트워크 주소를 가진 모든 호스트에 데이터를 보낸다.
 
이 방식을 다이렉트 브로드캐스트라고 한다.
 
 
디도스 공격은 이를 이용하는데 공격자는 172.16.0.10 이지만
 
소스를 172.16.0.1 로 아주 많은 브로드캐스트를 보내면
 
네트워크에 묶인 모든 클라이언트는 해당 서버에 응답을 보내며
 
서버를 먹통으로 만드는 방식이다.
 
 
 
 

로컬 브로드캐스트
 
로컬 브로드캐스트는 255.255.255.255 로 로컬 네트워크로 묶인 호스트 모두에게
 
브로드캐스트를 보낸다.
 
대표적인 예로 DHCP 서버가 있으며 호스트에서 IP 할당 요청이 오면
 
모든 디바이스에 브로드캐스트 메시지를 보내 IP 주소를 갱신한다.
 
 
 

멀티캐스트 vs 유니캐스트
 
멀티캐스트 데이터는 라우터와 라우터 사이에는 유니캐스트 방식으로 데이터가 전달되며,
 
서브 네트워크에서는 멀티캐스트 채널에 참여한 컴퓨터에만 데이터가 전달된다. 
 
200대의 컴퓨터로 이루어진 서브네트워크에서 10대의 컴퓨터가 멀니태스트 채널에 가입해 있다면, 
 
10 대의 컴퓨터로만 데이터가 복사되어서 전달이 된다. 
 
효율적으로 네트워크 자원을 사용함을 알 수 있다.
 
 

멀티캐스트 맵핑
 
 
 
 

루프백 IP 주소
 
IP4, IP6 에서 자기 자신을 가리키기 위한 목적으로 쓰기 위해 예약된 IP 주소이다.
 
127.0.0.1 부터 127.255.255.255 까지 있으며, 보통 127.0.0.1 을 사용한다.
 
IPv6 인 경우 ::1 이 루프백 어드레스이다.
 
 

사설 IP 주소
 
인터넷의 성장은 예상된 정도보다 훨씬 빠르게 성장하고 있어 IP 주소 공간이 고갈되고 있다.
 
그래서 이에 대한 해결책으로 공인 주소와 사설 주소를 구분하여 
 
 기업 내에서 자율적으로 주소 계획을 세우고 주소를 할당하는
 
TCP/IP를 사용한 네트워크를 운영할 수 있도록 하였다.
 
Class A : 10.0.0.0 ~ 10.255.255.255
Class B : 172.16.0.0 ~ 172.31.255.255
Class C : 192.168.0.0 ~ 192.168.255.255
 
사설 IP는 VPN 을 구성한 라우터를 통해 공인 IP 로 변경되며 퍼블릭 네트워크와 통신하게 된다.
 
VPN 구성에 대한 자세한 설명은 이후 설명한다.
 
 
 

서브넷팅
 
서브넷팅이란 기본 서브넷 마스클르 사용하여 클래스로 묶여진 네트워크를
 
그보다 더 작은 네트워크로 나누는 작업을 이야기한다.
 
예를 들어 200대의 컴퓨터가 서로 다른 지역에 각 100대씩 운영된다면
 
C 클래스를 사용해서 각각의 네트워크를 쪼갤 것이다.
 
 
이렇게 나누어진 네트워크를 서브넷이라 부르고 이러한 작업을 서브넷팅이라고 한다.
 
서브넷팅에 따라 트래픽을 게이트웨이로 보낼지(Remote) 아니면 내부망(Local)에 보낼지 결정한다.
 
예를 들어 16 비트 서브넷 마스크 (255.255.0.0) 을 사용하는 경우
 
아래 두 호스트는 같은 네트워크 ID 10.1 을 가져 Local 이며
 
24 비트 서브넷 마스크(255.255.255.0) 을 사용하는 경우
 
아래 두 호스트는 서로 다른 네트워크 ID 10.1.1 과 10.1.2 를 가져 다른 네트워크로 분류된다.
 
 
 
 
 

서브넷 마스크
 
 
 IP 클래스가 B 클래스 (255.255.0.0) 인 경우 65536 개의 호스트 IP 가 생길 수 있는데
 
Flooding 이 일어나면 65536 개에 데이터를 모두 쏴줘야 해서 부하가 생기게 된다.
 
서브넷 마스크는 B 클래스 IP 라도 C 클래스 IP 인 것처럼 내부 네트워크를 쪼개기 위한 마스크가 되겠다.
 
예를 들어  IP 주소가 192.168.0.1 이고 서브넷 마스크가 255.255.255.0 이면
 
앞의 세개 옥탯 192.168.0 이 Network ID 가 되며 마지막 옥탯  1 이 Host ID 가 되고 
 
브로드 캐스팅이 일어나더라도 서브넷 마스크로 묶인 최대 253개의 PC 에만 브로드 캐스팅 이 된다.
 
(192.168.0.0 은 네트워크 주소이며 192.168.0.255 는 브로드 캐스트 주소이다.)
 
단순히 서브넷 마스크만 나눈다고 마법처럼 네트워크를 쪼갤수 있지는 않고 
 
이렇게 나누었다면 물리적으로도 서로 다른 네트워크 ID 를 가지는
 
네트워크는 라우터로 분할해야 사용할 수 있다.
 
 

확인
 
IP 주소 203.10.24.27 의 서브넷 마스크가 255.255.255.240 인 경우 분석
 
서브넷 마스크   : 255.255.255. 1111 0000
네트워크 ID      : 203.10.24.0001 0000 > 203.10.24.16
브로드캐스팅 IP : 203.10.24.0001 1111 > 203.10.24.31
호스트 IP 대역   : 203.10.24.17~203.10.24.30
 
 

MAC Address (Media Access Control Address)
    
실제 PC 가 통신하는 대상은 IP 주소가 아니고 MAC 주소를 사용한다.
    
IP 주소가 사용되는 실제 IP 를 알아내는 요청을 ARP Request 라고 한다.
 


'Network > Basic' 카테고리의 다른 글

02. Packet Tracer 인터페이스  (0) 2020.01.22
06. 간단한 Network 구성 (1)  (0) 2020.01.22
04. Router 개념  (0) 2020.01.22
03. Switch 개념  (0) 2020.01.22
02. OSI 7 Layer  (0) 2020.01.22