kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Network

IP class와 Subneting 네트워크 기초

까마기 2014. 9. 22. 22:23
반응형
 

1. IPv4 Class 의 분류

IP -> Protocol Address 또는 Software Address 라 불리운다.

0.0.0.0 ~ 0.255.255.255 ->사용할 수 없는 주소, HOST-ID에서 제외되는 주소

 

1) 유니캐스트 주소

 

 

  - A Class(0~127)

      0. | 0.0.0   ~   127. | 255.255.255   Default Subnet Mask : 255.0.0.0  
      0 0000000.       0 1111111.             한 네트워크 아이디당 IP 개수 = 2^24개

 

  - B Class(128~191)

     128.0. | 0.0   ~   191.255. | 255.255   Default Subnet Mask : 255.255.0.0
     10 000000          10 111111               한 네트워크 아이디당 IP 개수 = 2^16개

 

  - C Class(192~223)

     192.0.0. | 0   ~   223.255.255. | 255   Default Subnet Mask : 255.255.255.0
     110 00000           110 11111              한 네트워크 아이디당 IP 개수 = 2^8개


 

2) 멀티캐스트 주소

 

 

  - D Class(224~239)

     224.0.0.0   ~   239.255.255.255   Default Subnet Mask : 없다.
     1110 0000       1110 1111

 

 

3) 사용을 금지한 주소

 

 

- E Class(240~255)

     240.0.0.0   ~   255.255.255.255


 

 사용자 인터페이스(IP 설정이 필요한 구간) 사용이 불가능한 IP 주소

 

  - D Class 224.0.0.0 ~ 239.255.255.255
  - E Class 240.0.0.0 ~ 255.255.255.255
  - 0.0.0.0 ~ 0.255.255.255
  - 127.0.0.0 ~ 127.255.255.255
  - 255.255.255.255 
  - 네트워크 이름  , 서브넷 브로드케스트 주소(Directed Broadcast)  


5. 공인 IP(Public IP)와 사설 IP(Private IP)로 구분된다.

 

 1) 공인 IP

 

  - 인터넷과 연결이 가능한 IP이다. 즉, 인터넷에서 사용되는 IP 이다.


  - 즉, 인터넷 환경에서 데이터 전송을 하려면 출발지 주소가 공인 IP 이어야 한다.

 

 2) 사설 IP

 

  - 인터넷과 연결이 불가능하며, 단지 내부용으로 사용되는 IP이다.


  - 만약 인터넷 환경에서 데이터 전송을 하려면 NAT 장치를 이용하여 출발지 사설 주소가 공인 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

 

 

 

ex ) 1.0.0.0 ~ 1.255.255.255 -> A Class에 속한다.
- 범위중 제일 첫번째 IP 1.0.0.0 => Network Address
- 범위중 제일 마지막 IP 1.255.255.255 => Network Broadcast

( 네트워크 안에서만 브로드캐스트를 할 수 있는 주소) --> 이 두가지는 사용할 수없다. 


255.255.255.255 = > 이론상 전세계 인터넷 전체에 브로드캐스트를 할 수 있는 주소


- 브로드캐스트는 라우터를 절대 넘어 갈 수 없다. 그러나 설정을 통해 브로드캐스트를 넘길 수 있다.
- 라우터를 사이에 두고 해당 목적지의 네트워크 브로드캐스트 주소를 통해서 라우터를 넘어 갈 수 있다. -->Direct Broadcast 주소?????


==================================================================================

 

1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
11110000.00000000.00000000.00000000 = 240.0.0.0
11111111.11111111.11111111.11111111 = 255.255.255.255

Unicast = IP Class의 A/B/C Class
Multicast = IP Class의 D Class
Broadcast = IP의 마지막 IP인 255.255.255.255


==================================================================================



2.Subnet Mask => Network Address를 알기 위해

특징 
IP 주소 범위
무조건 첫비트는 1로 시작되어야 함.
중간 비트에서 0이 시작되면 더이상 1이 올 수 없다.

A Class Subnet Mask
11111111.00000000.00000000.00000000 => 255.0.0.0
B Class Subnet Mask
11111111.11111111.00000000.00000000 => 255.255.0.0
C Class Subnet Mask
11111111.11111111.11111111.00000000 => 255.255.255.0

 

ex) 10.1.1.1
10.255.255.254 -> 첫 8비트가 같으므로 같은 네트워크인데 서브넷마스크가 주어지지 않으면 컴퓨터는 모른다.
--> 10.1.1.1을 2진수로-> 00001010.00000001.00000001.00000001 --> A ClassLogical AND 
11111111.00000000.00000000.00000000 A B AND 
------------------------------------------------ 0 0 0
00001010.00000000.00000000.00000000. ->10.0.0.0 0 1 0 
즉 첫 옥탯, 네트워크 아이디가 8비트니까 앞에 어떤 값이와도 항상 1이고, 호스트 아이디는 항상 0이므로 첫옥탯은 항상 변함이 없고 나머지는 항상 0이다. 
==================================================================================


3.Subnetwork
Subnetting




<Subnetting>

Network를 나누는 것


--예제--

192.168.0.0 /24 

네트워크 ID  192.168.0.0 /24

브로드캐스트 IP  192.168.0.255 /24

호스트 IP Range 192.168.0.1 ~ 192.168.0.254 


1) 위의 네트워크를 절반으로 서브넷팅 하기.


11000000.10101000.00000000.00000000 => 192.168.0.0

11111111.11111111.11111111.00000000 => 24 (서브넷마스크)

NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH 

==>


NNNNNNNN.NNNNNNNN.NNNNNNNN.NHHHHHHH

      | 

      |

   HOST 자리의 첫번 째자리를 Network 로 채우고 이것은 한자리를 빌려온것


11111111.11111111.11111111.10000000 => 25개의 Bit , 이것을 10진수로 환산하면 => 255.255.255.128

N을 빌려온 이 자리에는 0또는 1이 올 수 있다.



(1)

11000000.10101000.00000000.0HHHHHHH  

11000000.10101000.00000000.00000000 -->192.168.0.0

11000000.10101000.00000000.01111111 --->192.168.0.127


192.168.0.0 ~ 192.168.0.127



=========================================================



(1) 192.168.100.0 /24 를 4개의 네트워크로 서브넷 하시오


192.168.100.0 /24

255.255.255.0


4개의 네트워크로 하려면 

2^n=네트워크 갯수

2^n=4 (4개의 네트워크로 하려면)

n=2


호스트 자리 2개를 빌려


11000000.10101000.01100100.00000000  --192.168.100.0 /26 ( 네트워크 ID )

         .00111111  --192.168.100.63 /26 ( 브로드캐스드 주소 )


--> 192.168.100.1 ~ 192.168.100.62 ( 호스트 IP 범위 )


         .01000000  -->192.168.100.64 /26(네트워크 ID)

         .01111111  -->192.168.100.127 /26( 브로드캐스드 주소 )


--> 192.168.100.65 ~ 192.168.100.126 ( 호스트 IP 범위 )



         .10000000  --> 192.168.100.128 /26(네트워크 ID)

         .10111111  --> 192.168.100.191 /26( 브로드캐스드 주소 )


--> 192.168.100.129 ~ 192.168.100.190 ( 호스트 IP 범위 )



              .11000000  --> 192.168.100.192 /26 (네트워크 ID)

         .11111111  --> 192.168.100.255 /26 ( 브로드캐스드 주소 )


--> 192.168.100.193 ~ 192.168.100.254 ( 호스트 IP 범위 )






(2) 120.172.0.0 /16 을 2개의 네트워크로 서브넷 하시오


01111000.10101100.00000000.00000000 --> 120.172.0.0 /17  ( 네트워크 ID )

                     .01111111.11111111 --> 120.172.127.255 /17  ( 브로드캐스드 주소 )


--> 120.172.0.1 ~ 120.172.127.254 ( 호스트 IP 범위 ) 2^15 -2 = 호스트 개수. 왜 15승이냐? 호스트 수가 15니까 1개를 네트워크에 빌려줬으니 15개.


          .10000000.00000000 --> 120.172.128.0 /17 ( 네트워크 ID )

          .11111111.11111111 --> 120.172.255.255 /17 ( 브로드캐스드 주소 )    

  

--> 120.172.128.1 ~ 120.172.255.254 ( 호스트 IP 범위 )



2^n=네트워크 갯수

2^n=2 (2개의 네트워크로 하려면)

n=1



(3) 8.0.0.0 /16을 4개의 네트워크로 서브넷 하시오.


00001000.00000000.00000000.00000000 --> 8.0.0.0 /16 

11111111.11111111.00000000.00000000 --> 255.255.0.0 /16


00001000.00000000.00000000.00000000 --> 8.0.0.0 / 18 ( 네트워크 ID )

00001000.00000000.00111111.11111111 --> 8.0.63.255 /18 ( 브로드캐스드 주소 )  

--> 8.0.0.1 ~ 8.0.63.254 ( 호스트 IP 범위 )


00001000.00000000.01000000.00000000 --> 8.0.64.0 /18 ( 네트워크 ID )

00001000.00000000.01111111.11111111 --> 8.0.127.255 /18 ( 브로드캐스드 주소 )  

--> 8.0.64.1 ~ 8.0.127.254 ( 호스트 IP 범위 )


00001000.00000000.10000000.00000000 --> 8.0.128.0 /18 ( 네트워크 ID )

00001000.00000000.10111111.11111111 --> 8.0.191.255 /18 ( 브로드캐스드 주소 )  

--> 8.0.128.1 ~ 8.0.191.254 ( 호스트 IP 범위 )


00001000.00000000.11000000.00000000 --> 8.0.192.0 /18 ( 네트워크 ID )

00001000.00000000.11111111.11111111 --> 8.0.255.255 /18 ( 브로드캐스드 주소 )  

--> 8.0.192.1 ~ 8.0.255.254 ( 호스트 IP 범위 )



(4) 8.0.0.0 /8 을 4개의 네트워크로 서브넷 하시오.


00001000.00000000.00000000.00000000 --> 8.0.0.0 /8

11111111.00000000.00000000.00000000 -->255.0.0.0 /8


00001000.00000000.00000000.00000000 --> 8.0.0.0 /10 ( 네트워크 ID )

00001000.00111111.11111111.11111111 --> 8.63.255.255 /10 ( 브로드캐스드 주소 )


--> 8.0.0.1 ~ 8.63.255.254 ( 호스트 IP 범위 )


00001000.01000000.00000000.00000000 --> 8.64.0.0 /10 ( 네트워크 ID )

00001000.01111111.11111111.11111111 --> 8.127.255.255 /10 ( 브로드캐스드 주소 )


--> 8.64.0.1 ~ 8.127.255.254 ( 호스트 IP 범위 )


00001000.10000000.00000000.00000000 --> 8.128.0.0 /10 ( 네트워크 ID )

00001000.10111111.11111111.11111111 --> 8.191.255.255 /10 ( 브로드캐스드 주소 )


--> 8.128.0.1 ~ 8.191.255.254 ( 호스트 IP 범위 )


00001000.11000000.00000000.00000000 --> 8.192.0.0 /10 ( 네트워크 ID )

00001000.11111111.11111111.11111111 --> 8.255.255.255 /10 ( 브로드캐스드 주소 )


--> 8.192.0.1 ~ 8.255.255.254 ( 호스트 IP 범위 ) 호스트의 갯수는 하나의 네트워크당 2^22 -2 = 호스트의 갯수




2^n=네트워크 갯수

2^n




(5) 8.64.0.0 /10 을 8개의 네트워크로 서브넷팅


2^n=8

n=3


8.01000000.00000000.00000000--> 8.64.0.0 /13

8.01000111.11111111.11111111--> 8.71.255.255 /13


8.01001000.00000000.00000000--> 8.72.0.0 /13

8.01001111.11111111.11111111--> 8.79.255.255 /13


8.01010000.00000000.00000000--> 8.80.0.0 /13

8.01010111.11111111.11111111--> 8.87.255.255 /13


8.01011000.00000000.00000000--> 8.88.0.0 /13

8.01011111.11111111.11111111--> 8.95.255.255 /13


8.01100000.00000000.00000000--> 8.96.0.0 /13

8.01100111.11111111.11111111--> 8.103.255.255 /13


8.01101000.00000000.00000000--> 8.104.0.0 /13

8.01101111.11111111.11111111--> 8.111.255.255 /13


8.01110000.00000000.00000000--> 8.112.0.0 /13

8.01110111.11111111.11111111--> 8.119.255.255 /13



8.01111000.00000000.00000000--> 8.120.0.0 /13

8.01111111.11111111.11111111--> 8.127.255.255 /13






===================================================================


1.1.1.0 /24 -->A클래스 인데 서브넷 마스크가 24라는 것은 한번 서브넷팅이 이루어졌다는 것이다.


Classful : 클래스를 지키고 있다. 원래의 범위에 원래의 기본 해당 클래스에 서브넷 마스크. 


...

...


하지만 요즘에  IP 들은 


Classless IP라고 하는데, 전통적인 Class 기법을 사용하지 않는다는 것이다.


Classless : 모든 기본 서브넷 마스크를 쓰지 않는 네트워크를 말한다.


고로


1.1.1.0 /24 는 Classless 네트워크라고 볼 수 있다.


부서가 2개가 있다.


1. 인사부

 컴퓨터 100대


2. 총무부

 컴퓨터 100대


이것을 각각 부서별로 서브넷팅 하는 방법.. 이 호스트와 맞먹는 가장 알맞은 네트워크를 찾는 방법


공식 :

2^n    >=     호스트 갯수

          (같거나 크다)


2^n >= 100

(계산기를 이용하여 찾는다. 15

n=7

2^7 = 128


결국


11111111.11111111.11111111.10000000 /25  라는 것이다. 2의 7승, 7개 만큼 호스트 이고 나머지는 다 1이라는 것이다..



======================================


1.1.1.0 /24


부서 A -50

B-50

C-50

D-50


2^n >=50


n=6


11111111.11111111.11111111.11000000 /26


==============================================================================



VLSM 예제


1.1.1.0 /24 

부서 A-100

부서 B-30

부서 C-40



1. 먼저


2^n >= 100

n=7


11111111.11111111.11111111.10000000 /25

1.1.1.0HHHHHHH


-->1.1.1.0 ~ 1.1.1.127 /25


*** 여기에 부서 A 100개 주고


1.1.1.1HHHHHHH


--> 1.1.1.128 ~ 1.1.1.255 /25


여기서 B와 C 할당


****우선 B는 50


2^n >= 50


n=6


11111111.11111111.11111111.1HHHHHHH에서

         .11000000   --> 0이 6자리가 되야 된다는 소리...  /26 --> 이때 주의 할게 원래 /25였다가 /26이 된거니까 26번째 비트로만 계산을 한다.


1.1.1.10HHHHHH


-->1.1.1.128 ~ 1.1.1.191


1.1.1.11HHHHHH


--> 1.1.1.192 ~ 1.1.1.255 



 


====================================


서브넷팅


1. CIDR ( Class Inter Domain Routing ) : 호스트 갯수를 똑같이 해서 나누는 서브넷팅. 절반으로 짜르고 ..짜르고.. 짜르고. 호스트를 하나씩 빌려서.. 


2. VLSM ( Variable Length Subnet Mask ) : 위의 예제에서와 같이 다양한 길이로 쪼개는 서브넷팅이며 VLSM은 CIDR의 개념을 포함하고 있다고 보면 된다.



===================================================================


슈퍼넷팅


-쪼개진 네트워크를 하나로 합치는 것. 나눠진 서브넷팅을 하나로 합치는 것


1.1.1.0 /24 


이것을 두개로 쪼갠다면 

1.1.1.0 /25

1.1.1.128 /25


이것을 다시 합치려고 한다면.. 나누어진 모든 네트워크에 네트워크 ID를 알고있는 상태에서 네트워크 ID를 모두 이진수로 바꾼다.


00000001.00000001.00000001.00000000

00000001.00000001.00000001.10000000


이중에서 맨첫번째 비트부터 위의 비트와 아래의 비트까지 찾아낸다.


00000001.00000001.00000001. --->24bit 까지 똑같다.


00000001.00000001.00000001.00000000  --> 똑같은 자리까지 쓰고 나머진 0으로 쓴다. (네트워크 ID)

11111111.11111111.11111111.00000000  --> 똑같은 자리까지 1로 쓰고 나머진 0 ( 서브넷 마스크 )


아무거나 합칠 순 없다. 네트워크 장비에서 나오는 용어이며 용도가 따로 있다.










* Host IP 범위 구하기


1. 10.225.152.222 /23

우선 IP 주소를 이진수로 바꾸고 서브넷 마스크와 AND 연산 하여 네트워크 ID를 구한다.

00001010.11100001.10011000.11011110

11111111.11111111.10011000.00000000


00001010.11100001.10011000.00000000  /23--> 네트워크 ID 를 구하면 호스트 범위를 알 수 있다.


10.225.152.0 /23



00001010.11100001.10011000.00000001  --> 호스트 범위 가장 작은 주소


00001010.11100001.10011000.11111111  --> 호스트 범위 가장 큰 주소




Host IP 범위 (10.225.152.2 ~ 10.225.152.254 /23 )






00001010.11100001.10011000.11111111  --> broadcast IP


00001010.11100001.1001100H.HHHHHHHH





 255.255.255.0

 10.225.152.1


===================================================================



1.1.1.0 /30


P2P 네트워크..

가장 작은 서브넷 마스크는 30 그이하는 호스트가 없기 때문에 ..



 


http://jodies.de/ipcalc


서브넷팅 계산해주는 사이트

직접계산해보고 확인.


====================================================================

CIDR(Classless Inter Domain Routing)
VLSM(Variable Length Subnet Mask)
Classful <-> Classless (전통적인 방법의 클래스를 사용하지 않겠다라는 뜻)

-CIDR-
180.0.0.0 / 16
Network-ID = 180.0.0.0 / 16
Network-Br = 180.0.255.255 / 16
Host-Range = 180.0.0.1 ~ 180.0.255.254

10110100.00000000.hhhhhhhh.hhhhhhhh -> 16개의 network id와 16개의 host range
11111111.11111111.0000000.00000000 -> 16개의 subnetmask
0과 1로.
10110100.00000000.nhhhhhhh.hhhhhhhh -> host 부분을 n, network로 전환 시킨것이고 서브넷마스크는 /17이되었다. 하나를 빌릴때 경우의수는 2개
11111111.11111111.1000000.00000000 => subnetmask는 / 17 이 되며, 255.255.128.0 두개를 빌릴때 경우의수 4개
세개를 빌릴때 경우의수 8개
결국 2^1, 2^2...씩 
1)첫번째 네트워크의 범위
10110100.00000000.0hhhhhhh.hhhhhhhh
10110100.00000000.00000000.00000000 -> 180.0.0.0 
10110100.00000000.01111111.11111111 -> 180.0.127.255 
Network Address = 180.0.0.0/17
Network Broadcast = 180.0.127.255/17
Host Range = 180.0.0.1 ~ 180.0.127.254


2)두번째 네트워크의 범위
10110100.00000000.1hhhhhhh.hhhhhhhh
10110100.00000000.10000000.00000000 -> 180.0.128.0
10110100.00000000.11111111.11111111 -> 180.0.255.255
Network Address = 180.0.128.0/17
Network Broadcast = 180.0.255.255/17
Host Range = 180.0.128.1 ~ 180.0.255.254

* 클래스리스로 쪼갰을 경우에 서브넷마스크를 표기 해줘야 한다.
* 서브넷을 하는 목적 IP를 효율적으로 사용하기 위해

ex1)200.100.0.0 / 24 를 4개의 네트워크로 나누고 각 네트워크의 Network 주소, Broadcast 주소 Host 범워를 구하여라!

11001000.01100100.00000000.hhhhhhhh -> 24개의 network id와 8개의 hostrange
11001000.01100100.00000000.nnhhhh -> 4개의 네트워크로 나눠야 되니까 2^2, 즉 2^n = 나누고자 하는 네트워크

1)
11001000.01100100.00000000.00hhhhhh
11001000.01100100.00000000.00000000 = 200.100.0.0 / 26
11001000.01100100.00000000.00111111 = 200.100.0.63 / 26

2)
11001000.01100100.00000000.01hhhhhh
11001000.01100100.00000000.01000000 = 200.100.0.64 / 26
11001000.01100100.00000000.01111111 = 200.100.0.127 / 26

3)
11001000.01100100.00000000.10hhhhhh
11001000.01100100.00000000.10000000 = 200.100.0.128 / 26
11001000.01100100.00000000.10111111 = 200.100.0.191 / 26

4)
11001000.01100100.00000000.11hhhhhh
11001000.01100100.00000000.11000000 = 200.100.0.192 / 26
11001000.01100100.00000000.11111111 = 200.100.0.255 / 26

=> 실제 / 26 이 값은 255.255.255.192

 

==================================================================================


< VLSM >
(2^n)-2 => 호스트 갯수, -2를 하는 이유는 맨 첫번째와 맨끝 IP를 빼니까

200.100.0.0 /24
-이 주소로 네트워크 3개를 만드려고 한다 
1) 100 2) 50 3) 50

1) (2^n)-2 >= 100
n=7 이면 128-2 =126(호스트의 값), 여기서 7의 의미는 뒤에서 부터 7자리가 호스트자리
---> 11001000.01100100.00000000.0hhhhhhh => 200.100.0.0~200.100.0.127 / 25
11111111.11111111.11111111.1hhhhhhh =25 = 255.255.255.128

11001000.01100100.00000000.1hhhhhhh
2) (2^n)-2 >= 50
n=6
11001000.01100100.00000000.1nhhhhhh

11001000.01100100.00000000.10hhhhhh => 200.100.0.128~200.100.0.191 / 26
11111111.11111111.11111111.11000000 = 26 = 255.255.255.192

11001000.01100100.00000000.11hhhhhh => 200.100.0.191~200.100.0.255 / 26
11111111.11111111.11111111.11000000 = 26 = 255.255.255.192
----------------------------------------------------------------------------------------------------------------------------------------------------
200.100.0.0 /30
11001000.01100100.00000000.000000 hh
11111111.11111111.11111111.111111 00


11001000.01100100.00000000.000000 00
11001000.01100100.00000000.000000 01
11001000.01100100.00000000.000000 10
11001000.01100100.00000000.000000 11


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

 

반응형