이 게시물은 후니의 쉽게 쓴 CISCO 네트워킹 4판을 공부한 내용을 바탕으로 작성됨.
IP
우리가 사용하는 모든 network device는 각자의 고유 주소인 IP가 존재한다. (TCP/IP에서 IP를 사용하는데 우리는 전부 TCP/IP를 따르는 디바이스만 사용한다.) IPv4를 기준으로 IP 주소는 32자리의 이진수로 구성되어 있다.
0000 0000. 0000 0000. 0000 0000. 0000 0000 부터
1111 1111. 1111 1111. 1111 1111. 1111 1111 까지
IPv4의 전체 주소 개수는 약 2의 32승개로 대략 42억 9000개이다. 하지만 이것도 부족하여 현재는 IPv6가 개발되었다. IP 주소는 기본적으로 이진수로 표현되는데 이를 일반인이 이해하기는 어려우므로 십진수로 바꿔서 표시하는 경우가 대부분이다. 1111 1111 = 255임을 알아두자.
라우터의 IP 주소
시리얼 인터페이스 (router에서 외부 인터넷으로 연결되는 경로), 이더넷 인터페이스 (router와 LAN segment 즉 switch, hub와 연결되는 경로)가 있다. 아직 이 개념들은 배우지 않았으므로 일단 요런게 있다고만 알고 넘어간다.
이때 시리얼 인터페이스와 이더넷 인터페이스에 각각 IP 주소를 하나씩 할당해야 한다고 가정하자.
이더넷 인터페이스는 network 내부와 연결되기 때문에 IP 주소 할당이 간편하다.
만일 내부 PC용으로 부여받은 주소가 203.120.150.1 ~ 203.120.150.255 라면 router는 가장 맨 앞 주소인 203.120.150.1을 사용한다. 당연하게도 어떤 디바이스에 할당한 주소는 다른 디바이스에 할당해서는 안된다. 충돌 일어난다.
시리얼 인터페이스의 IP 주소는 우리 마음대로 설정할 수 없다. 인터넷을 관장하는 ISP 업체의 router의 시리얼 인터페이스 IP 주소와 맞춰주어야 한다. 만일 ISP 업체의 시리얼 IP 주소가 203.150.150.5이고 서브넷 마스크가 255.255.255.252라면 우리가 가진 router의 시리얼 인터페이스의 IP는 203.150.150.6이고 서브넷 마스크는 255.255.255.252가 된다. 서브넷 마스크는 서로 같아야 하는데 이는 나중에 다시 다뤄보자.
네트워크 부분과 호스트 부분
Network part
Network part는 Broadcast domain과 동치다. 한 Network안에 Broadcast가 전송되면 그 network 내에 존재하는 모든 디바이스는 broadcast를 받게 된다. 쉽게 말하면 Router를 포함하지 않는 하위 영역을 의미한다.
예를 들어 한 PC방 안에서 두 PC는 서로 같은 network part에 존재하므로 router를 거치지 않고도 통신이 가능하다. 하지만 외국에 있는 PC와 통신을 할 때는 반드시 router를 거쳐야만 한다. 서로 다른 network에 존재하기 때문이다.
Host part
개별 PC와 장비를 의미한다. PC를 Host로 표현하는 경우가 종종 있다.
두 부분을 구분짓는 이유는 IP 주소가 Network part / host part로 구분되기 때문이다.
간단한 예시를 하나 들어보면 한 사무실에 있는 50대의 PC가 하나의 router 아래에 연결되어있다고 해본다. 이때 50개 PC들은 서로 같은 Network 상에 존재하므로 network part가 전부 같아야 한다. 또 서로 다른 기기끼리 host part는 달라야 한다.
만약 사무실에서 203.240.100.1~ 203.240.100.255의 IP 주소를 사용한다면 앞 3개 203.240.100은 network part이다. 마지막 옥텟은 host part로 각 기기마다 서로 다른 host part 값을 가져야 한다.
IP 클래스
바로 위에서 IP 주소의 앞 3 옥텟은 network part, 마지막 옥텟은 host part라고 했었다. 사실 이건 IP의 class 종류에 따라서 다르게 설정된다. IP class는 A, B, C, D, E로 구성되는데, D는 멀티캐스트 주소로 사용되며 E는 연구용이므로 우리는 A, B, C에 대해서만 공부해보겠다.
Class A
32개의 이진수 중 맨 앞자리가 0으로 시작한다 : 0xxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
제일 작은 수 : 0000 0000 . 0000 0000 . 0000 0000 . 0000 0000
제일 큰 수 : 0111 1111 . 1111 1111 . 1111 1111 . 1111 1111
Class A는 1개의 옥텟을 Network part / 나머지 3개 옥텟을 host part로 사용한다.
제일 작은 네트워크 : 1.0.0.0 (0.0.0.0은 디폴트 경로를 나타내는 데 사용하기 때문에 네트워크 주소로 사용 불가)
제일 큰 네트워크 : 126.0.0.0 (127은 예비용으로 사용하지 않음)
- 처음 옥텟이 1~126으로 시작하는 네트워크는 A 클래스이다.
- 하나의 A 클래스 네트워크가 가질 수 있는 호스트 수는 $2^{24}-2$이다. = 16,777,214 개
쉬운 이해를 위해 예제를 하나 들어보자.
공인 IP를 분배 관리하는 Inter NIC에서 클래스 A 주소인 13.0.0.0 네트워크를 받았다고 생각해보자. 클래스 A 주소는 첫 번째 옥텟이 네트워크 / 나머지는 호스트를 의미하므로, 처음 배정받을 때부터 첫 번째 옥텟만 지정된 상태로 받게된다. 나머지 호스트 부분은 네트워크 관리자가 알아서 설정하면 된다.
이때 우리는 13.0.0.0 ~ 13.255.255.255를 사용할 수 있는데, 호스트 부분이 전부 0인 경우와 1인 경우는 제외한다.
0000 1101 . 0000 0000 . 0000 0000 . 0000 0000
0000 1101 . 1111 1111 . 1111 1111 . 1111 1111
전부 0인 경우는 네트워크 그 자체를 의미하고, 전부 1인 경우는 13이라는 네트워크에 전달할 브로드캐스트 주소를 의미하므로 호스트에 부여해서는 안된다.
Class B
32개의 이진수 중 맨 앞자리가 10으로 시작한다 : 10xx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
제일 작은 수 : 1000 0000 . 0000 0000 . 0000 0000 . 0000 0000 → 128.0.0.0
제일 큰 수 : 1011 1111 . 1111 1111 . 1111 1111 . 1111 1111 → 191.255.255.255
Class B는 2개의 옥텟을 Network part / 나머지 2개 옥텟을 host part로 사용한다.
제일 작은 네트워크 : 128.0.0.0
제일 큰 네트워크 : 191.255.0.0 (네트워크를 표현할때는 호스트를 전부 0으로 쓴다.)
- 처음 옥텟이 128~191으로 시작하는 네트워크는 클래스 B에 속한다.
- 하나의 B 클래스 네트워크가 가질 수 있는 호스트 수는 $2^{16}-2$이다. = 65,534개
이 경우도 호스트 부분이 전부 0인 것은 네트워크 자체를, 전부 1인 것은 브로드캐스트 용으로 사용한다.
Class C
32개의 이진수 중 맨 앞자리가 110으로 시작한다 : 110x xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
제일 작은 수 : 1100 0000 . 0000 0000 . 0000 0000 . 0000 0000 → 192.0.0.0
제일 큰 수 : 1101 1111 . 1111 1111 . 1111 1111 . 1111 1111 → 223.255.255.255
Class C는 3개의 옥텟을 Network part / 나머지 1개 옥텟을 host part로 사용한다.
제일 작은 네트워크 : 192.0.0.0
제일 큰 네트워크 : 223.255.255.0 (네트워크를 표현할 때는 호스트 부분을 전부 0으로 쓴다.)
- 처음 옥텟이 192~223으로 시작하는 네트워크는 클래스 C에 속한다.
- 하나의 C 클래스 네트워크가 가질 수 있는 호스트 수는 $2^{8}-2$이다. = 254개
IP를 network part / host part로 구분하여 클래스를 나눈 것은 IP 배분의 효율을 위함이다. 각 클래스 별로 네트워크에 할당되는 호스트 개수가 A는 16,777,214, B는 65,534개, C는 254개로 구성된다. 상황에 알맞게 호스트 개수를 고려하여 가장 효율적인 (낭비 없는) 네트워크 클래스를 할당할 수 있어야 한다.
Class | 시작 bit | 이진수 범위 | network part / host part | 네트워크 하나 당 호스트 개수 |
A | 0 | 1~127 | 1/3 | 16,777,214 |
B | 10 | 128~191 | 2/2 | 65,534 |
C | 110 | 192~223 | 3/1 | 254 |
위 표를 외워두자.
어떤 IPv4 주소의 첫 옥텟이 1~127 범위 내에 있다면, 이것은 class A 주소이다. 따라서 network part는 1옥텟, host part는 3옥텟을 갖는다. 만약 첫 옥텟이 1~127 값임에도 불구하고 network part가 1옥텟보다 길다면 subnetting된 주소라는 것을 바로 알 수 있다.
'네트워크' 카테고리의 다른 글
[네트워크] 7. 스패닝 트리 프로토콜 STP (0) | 2023.12.24 |
---|---|
[네트워크] 6. 서브넷 마스크, 서브네팅 (0) | 2023.12.23 |
[네트워크] 4. 브리지, 스위치 (1) | 2023.12.22 |
[네트워크] 3. TCP/IP, DHCP, 랜카드, 허브, 스위치 (1) | 2023.12.22 |
[네트워크] 2. MAC, 브로드캐스트, OSI 7계층, 프로토콜 (0) | 2023.12.21 |