Network

[IP 주소]

0. IP 주소


네트워크 공부를 1년 했지만, 아직도 ip 주소 개념이 흔들리는게 어이 없다.

근데 변명을 하자면 ip주소라는게 클래스풀, 클래스리스, 서브넷, NAT 이런게 섞여서

솔직히 햇갈릴 사람 나말고도 많을 거라 생각한다. 

정확히 간단하게 나만 알아 볼 수 있도록 정리하고, 추가할 게 있으면 계속 추가하겠다.

 

 

 

1. 네트워크 주소와 호스트 주소


ip 주소는 32bit 길이의 이진수고 네트워크 주소랑 호스트 주소로 나뉨.

이건 다 아는 거지만 네트워크 주소와 호스트 주소에 대해 정확히 짚어야 한다. 

 

네트워크 주소 : 호스트들을 모은 네트워크를 통칭하는 영역 or 해당 네트워크의 맨 첫번째 주소

                     같은 네트워크 영역 = 로컬 네트워크 영역

                     라우터를 거치지 않고 브로드캐스트로 내부적인 통신 가능

 

호스트 주소 : 네트워크 상에 컴퓨터들을 구분하기 위한 주소 

 

왜 나눌까? : 네트워크 주소없이 호스트 주소로만 ip 주소가 이루어져있다면 관리가 어려움

                 라우팅으로 특정 ip 주소에 접근할 때 네트워크 주소로 찾아가는 것이 효율적

 

브로드캐스트 주소 : 네트워크 상에서 맨 마지막 주소, 네트워크 상에 모든 호스트들에게 데이터를 전송

 

2. 클래스리스


클래스풀 (A,B,C,D,E 등등 클래스 개념)이 예전에 IPv4 방식에서 썼던 것

네트워크 관리사 시험칠 때도 종종 문제로 나왔는데 이거 때문에 햇갈리는게 많다. 

현재는 사용하지 않고, IPv4 주소 부족 현상때문에 여러가지 대안이 마련됨

 

  1. 클래스리스 (CIDR, classless inter-domain routing)
  2. NAT (공인 IP 와 사설 IP 사용)
  3. IPv6 주소 체계 도입

따라서 클래스 개념은 머리 속 한 켠에 넣어두고 클래스리스만 정리한다. 

클래스풀에서는 네트워크 영역과 호스트 영역을 주소 첫 부분 (1~127이면 A 클래스)으로 구분

클래스리스는 서브넷 마스크를 사용하여 네트워크 부분과 호스트 부분을 나눈다. 

 

서브넷 마스크는 IP주소와 같이 32자리(bit) 2진수로 이루어 진다. 

1과 0으로 이루어져있으며, 연속된 1로 시작하고 나머지는 0으로 끝난다. 

11111111 11111111 11111111 00000001 과 같이 0 이후 1이 나올 수 없다.

그리고 2진수들로 이루어져있지만, 보통 8개씩 묶어서 10진수로 바꿔쓰는 경우가 더 많다. 

 

클래스 개념은 버렸지만 !! 기본 서브넷마스크에서 잔재를 확인할 수 있다.

A 클래스 기본 서브넷 마스크로 

11111111 00000000 00000000 00000000 == /8 == 255. 0. 0. 0 

B 클래스 기본 서브넷 마스크로

11111111 11111111 00000000 00000000 == /16 == 255. 255. 0. 0

C 클래스 기본 서브넷 마스크로

11111111 11111111 11111111 00000000 == /24 == 255. 255. 255. 0

을 가진다. 

 

아니 클래스 개념을 버렸다면서, 왜 자꾸 ABC 클래스가 튀어나오는지...

서브넷 마스크에 대해 대충 아는 사람이 더 햇갈릴 것이다. 

ABC 기본 서브넷 마스크는 예전에 썻던 클래스풀 개념대로 네트워크와 호스트를 나눈다는 뜻이다.

 

예를 들어

  • IP 주소 103.9.32.146  
  • 서브넷 마스크 255.255.255.0 (/24) == C클래스 기본 서브넷 마스크

로 표기되있다면

 

IP 주소가 103.~.~.~ 이므로 클래스개념으론 A클래스지만

( 클래스와 마스크는 관계가 없다! , 그리고 누누히 말하지만 클래스 개념이 중요한게 아니다! )

서브넷 마스크가 C 클래스 기본 서브넷 마스크 이므로 C클래스처럼

103.9.32.0 이 네트워크 주소가 되며, 0. 0. 0. 146이 호스트 주소가 된다.

 

네트워크 주소 정확히 계산하는 방법은 and 연산을 사용하는 것이다.

103.9.32.146           ==>  01100111 00001001 00100000 10010010

255.255.255.0 (/24) ==> 11111111 11111111 11111111 00000000

--------------------------------------------------------and 연산-----------------------------------------------

네트워크 주소              ==> 01100111 00001001 00100000 00000000  ==>  103.9.32.0

 

위와 같이 and 연산으로 더 정확하게 알 수 있다. 

 

 

 

2-2. 서브네팅


앞에서 클래스리스 설명한다하고, 계속 A,B,C 클래스 기본 서브넷 마스크를 예시로 들었지만,

서브네팅은 클래스 기준을 무시하고 사용자가 네트워크 - 호스트 부분을 정의할 수 있다. 

1.2.3.4라는 IP 주소가 있을때 (진짜로 있는지는 모르겠음)

255. 0. 0. 0 서브넷 마스크 일시 1. 0. 0. 0 (네트워크 부분) - 0. 2. 3. 4 (호스트 부분)

255. 255. 0. 0 서브넷 마스크 일시 1. 2. 0. 0 (네트워크 부분) - 0. 0. 3. 4 (호스트 부분)

255. 255. 255. 0 서브넷 마스크 일시 1. 2. 3. 0 (네트워크부분) - 0. 0. 0. 4 (호스트 부분)

위와 같이 클래스 개념대로 편하게 나눌 수 있지만, 

 

서브넷 마스크가 가령 255.255.255.128 일 때 (x.x.x. 0 ~ x.x.x.127 | x.x.x.128 ~ x.x.x. 255 )

과 같이 내가 네트워크 부분과 호스트 부분을 임의로 나눌 수 있다.

원래 나눠진 부분을 다시 2등분, 4등분, 8등분, 16등분 할 수 있다는 말이다. 

 

서브넷 마스크는 연속된 1이 끝나면 0밖에 나올 수 없다.

예를 들어 255.255.255.192 가 서브넷 마스크면

11111111 11111111 11111111 11000000 2진수 형태로 바꿀 수 있다. 

기존 255.255.255.0 (/24) 네트워크를 4등분 한 것과 같고

여기서 0의 개수( 6개 )를 통해,  2^6 = 64 ( -2 ) 개 만큼 ip 개수를 가질 수 있다는 걸 알 수 있다.

또한 and 연산을 통해 자신의 서브네팅된 네트워크 주소를 알 수 있다.

 

 

 

3. 공인 IP , 사설 IP


NAT( 네트워크 주소 변환, Network Address Translation) 가 적용된 공유기나 회사 방화벽을 통해

사설 IP 주소를 이용할 수 있다. 

 

사설 IP는 인터넷에 직접 접속하지 못하지만 IP를 변환해주는 NAT 장비에서 공인 IP로 변경 된 후

인터넷 접속이 가능하다. 

 

가장 흔히 보는 192.168.0.1은 공유기에서 주는 대표적인 사설 IP 주소

 

  • 공인 IP : 세계에서 단 하나만 존재하는 IP 주소
  • 사설 IP : 공유기 등을 이용해 만드는 가상의 IP 주소

클래스 별로 사설 IP 주소를 표준으로 지정해주었다. 

A클래스 10.0.0.0/8     10.0.0.0 ~ 10. 255. 255. 255

B클래스 172.16.0.0/12     172.16.0.0 ~ 172. 31. 255. 255

C클래스 192.168.0.0/16     192. 168. 0. 0. ~ 192.168.255.255

 

만약 위에 친구들이 쓰는 주소가 아닌 공인 IP 에서 쓰는 주소를 사설 IP 주소로 쓴다면

IP 대역 중복 문제가 발생할 수 있다.

만약 사설 IP 주소로 207.77.7.7 /24 과 같이 공인 IP 주소와 같은 형태의 주소를 쓴다면

아무리 NAT를 거쳐 공인 IP로 변환된다 하더라도 외부의 207.77.7.0 /24 네트워크로 접속할 수 없다.

같은 네트워크에 존재하는 것으로 인식하고 브로드캐스팅 하기 때문이다.

 

 

 

3-2. 고정 IP, 유동 IP


고정 IP : 서버나 VPN 등 아이피가 변경되면 안되는 곳에서 사용하는 고정된 IP

유동 IP (DHCP) : 고정되어있지 않고 유동적으로 변하는 IP 

 

집에서 공유기가 주는 아이피 주소는 때때로 바뀜 그렇게 생각하면 될듯

 

공인 , 사설 IP 와 합쳐서 고정 공인 IP , 고정 사설 IP , 유동 공인 IP , 유동 사설 IP 등으로 표현 가능

우리가 집에서 쓰는 아이피 주소는 대부분 유동 사설 IP 일 것이다. 

 

 

 

4. 특수 IP ( Bogon IP)


Bogon IP 란 공인 IP 로 할당하지 않는 주소를 말한다.

위에서 말한 A,B,C 클래스 별 사설 IP 대역과 몇몇 예약된 IP 주소들은 공인 IP로 사용하면 안됩니다.

사용하더라도 대부분의 ISP 나 방화벽에서 Bogon IP를 필터링하고 차단합니다. 

 

몇 가지 특이한 걸 정리해 보면

0.0.0.0/8 : "This" 네트워크 , 현재 네트워크, 자신의 주소를 모를 때 사용

127.0.0.0 /8 : 루프백(Loopback) 주소, 네트워크에서 입출력을 테스트할 때 사용

                         127.0.0.1 은 자신에게 데이터가 되돌아오며, 호스트이름은 localhost

224.0.0.0 /4 : 멀티캐스트용, 그룹 장치들에게 통신

255.255.255.255 /32 : 브로드캐스트 주소 , 같은 네트워크에 모든 호스트들에게 패킷 전송

 

 

 

5. IPv6


.추가할 것 

-----------------------------------------------------------------------------------------------------------------