IP주소
- 네트워크 환경에서 컴퓨터(노드) 간 통신하기 위해 각 컴퓨터에게 부여된 네트워크상 주소
IPv6
- 고속전송 & 멀티미디어 트래픽을 지원
- source와 destination 주소가 128bit (16bit씩 8개의 블럭)
- IP주소 고갈문제의 해결을 위한 미래를 위한 주소체계
2001:0db8:0000:0000:8a2e:0370:7334
- 상용화 X
IPv4
192.168.1.2
:192.168.1
까지가 네트워크 주소(공통부분)이고2
는 나만의 호스트 IP(식별할 수 있는 부분)- source 와 destination 주소가 32 bit
- 32자리로 이루어진 2진수 하나의 10진수는 8자리의 2진수로 대체되고 이를
옥텟
이라고 부름
즉, IP주소는 4개의 옥텟으로 구성됨
IP주소 vs MAC주소
- IP주소
- 바뀔 수 있음
- Network-layer address
- 네트워크(서브넷)을 찾아가는 주소
- MAC주소
- 바뀌지 않음
- Used to get datagram from one interface to another physically-connected interface (Same network)
- 48 bit MAC address (for most LANs) burned in the adpter ROM
IP주소 클래스
- 네트워크 주소와 호스트 주소를 구분하는 방법이자 약속
- 네트워크 크기에 따라 구분 (하나의 네트워크에서 몇 개의 호스트 IP까지 가질 수 있는가) => 호스트 주소로 결정
- A클래스
- 하나의 네트워크가 가질 수 있는 호스트 수가 제일 많은 클래스
- IP주소를 32자리 2진수로 표현했을 때, 맨 앞자리 수가 항상 0
0.0.0.0
~127.255.255.255
- 첫 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
- B클래스
- 반드시 10으로 시작
128.0.0.0
~191.255.255.255
- 첫 번째, 두 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
- C클래스
- 반드시 110으로 시작
192.0.0.0
~223.255.255.255
- 첫 번째, 두 번째, 세 번째 옥텟이 네트워크 부분 + 나머지는 호스트 부분
- D, E클래스 : 멀티캐스트용, 연구용으로 사용
- 네트워크 범위가 커질수록 호스트 주소 범위는 작아짐 (반비례 관계)
- 같은 네트워크 주소를 가진 IP끼리는 자유롭게 통신 가능
서브넷
- 네트워크 안의 네트워크라는 의미
- 하나의 네트워크를 나누어 네트워크를 효율적으로 분배
- ex. A클래스의 네트워크에는 약 1600만 개의 호스트를 할당할 수 있는데 만약 어떤 기관에서 필요한 IP개수가 200개라면 나머지 리소스가 낭비되는 문제를 해결하기 위해 사용
서브넷 마스크
라는 개념으로 네트워크를 나눔- 서브넷에 마스크를 씌워서 필요없는 IP는 가린다는 의미
서브넷 마스크
- IP주소처럼 8비트씩 4블럭, 총 32비트로 구성
- 2진수로 표현했을 때, 앞자리가 모두 1로 구성되고 뒷자리는 모두 0
255.255.255.XXX
11111111.00000000.00000000.00000000
=255.0.0.0
11111111.11111111.00000000.00000000
=255.255.0.0
11111111.11111111.11111111.10000000
=255.255.255.128
- 서브넷 마스크를 통해 서브넷의 네트워크 주소 구하기
- IP주소와 서브넷 마스크 주소를 AND 연산 하면 네트워크 주소를 구할 수 있음
- IP :
115.95.229.196
->01110011.01011111.11100101.11001001
- 서브넷 마스크 :
255.255.255.0
->11111111.11111111.11111111.00000000
- 위의 주소를 AND 연산하면
01110011.01011111.11100101.00000000
->115.95.229.0
- 원래는
115.0.0.0
이 네트워크 주소지만, 서브넷마스크를 씌워서 네트워크 주소를 분리함
=> 이제115.95.229
로 시작하는 주소만 같은 네트워크에 있다고 인식하고, 호스트 주소는0
과255
를 제외한 254개
CIDR
- 서브넷 마스크를 개수로 표현한 것 (1의 개수)
- 네트워크 주소를 적고
/<개수>
로 표기115.95.229/28
은 28비트까지 서브넷 마스크라는 뜻- 네트워크 주소 :
115.95.229.0
, 호스트 주소 :0~15
- AWS 같은 클라우드 서비스에서 CIDR로 서브넷을 나누는 경우가 많음
사설 IP (Private IP)
- 서브넷을 활용하여 효율적으로 IP를 분배하더라도 이용가능한 전체 IP개수가 약 42억 개로 제한되어 있는 문제를 해결하기 위해 사용
- 내부에서만 사용할 수 있는 IP (외부 IP와 중복되어도 상관없음)
- 외부에서 접속할 수 있는 공인 IP (Public IP)만 공유기에 할당하고,
- 공유기에 연결된 기기들은 내부에서 사용할 수 있는 사설 IP (Private IP) 할당
=> 하나의 IP를 가지고도 여러 기기들 연결가능 -> IP 고갈 늦출 수 있음 - 아무런 IP나 사설 IP로 사용가능한 것은 아님
- 마찬가지로 같은 네트워크 상이면 자유롭게 통신 가능
- 즉, 같은 서브넷에 속한 Private IP 들은 서로 접속가능
- 외부의 접속을 차단하는 것도 가능
포트포워딩 (Port Forwarding)
- 공유기의 특정 포트로 들어온 접속을 Private IP의 특정 포트로 요청 전달
- 외부에서 Private IP에 접근이 필요한 경우, Private IP를 할당받은 기기를 웹 서버로 활용하여 공유기로 들어온 요청을 해당 기기로 전달
- Public IP의 38080 포트로 들어온 요청을
192.168.0.38
내부 IP를 가진 기기의 8080포트로 전달해주는 예시