network 1

minseok·2023년 7월 19일
0

Ip 주소 체계

보통 사용하는 IP주소는 32비트인 IPv4 그리고 Ip주소를 표기는 4개의 옥텟을 "."단위로 구분합니다.
16진수를 사용하는 2계층의 MAC주소와 달리 10진수로 표기하므로 8비트 옥텟은 0 ~ 255의 값을 쓸 수 있습니다.







클래스 체계

IP주소는 네트워크 주소와 호스트 주소로 구분이 되며 필요한 호스트의 개수에 따라 네트워크 주소를 다르게 할당할 수 있는 class 개념이 있습니다.

요즘에는 옥텟단위에서 1비트 단위로 구분하는 기술을 사용합니다.

A class - 호스트 약 1600만 개, 첫 번째 옥텟을 네트워크 주소로 사용
(2^8개의 네트워크가 네크워크 당 2^24개의 호스트 주소를 가짐)

B class - 호스트 약 65000개, 두 번째 옥텟까지 네트워크 주소로 사용
(2^16개의 네트워크가 네트워크 당 2^16개의 호스트 주소를 가짐)

C class - 호스트 약 250개, 세 번째 옥텟까지 네트워크 주소로 사용
(2^24개의 네트워크가 네트워크 당 2^8개의 호스트 주소를 가짐)



맨 앞 옥텟의 값을 보고 class를 판별할 수 있습니다
A class
10진수 : 0 ~ 126
2진수 : 0000 0000 ~ 0111 1111
설명 : 127은 루프백 주소로 사용

B class
10진수 : 128 ~ 191
2진수 : 1000 0000 ~ 1011 1111

C class
10진수 : 192 ~ 223
2진수 : 1100 0000 ~ 1101 1111







클래스 풀, 클래스 리스

위에서 사용한 클래스 개념을 사용한 체계를 클래스 풀이라고 부릅니다.
해당 방식은 기하급수적으로 늘어나는 IP주소 요구를 감당하기에는 너무 부족하고
A class를 할당받은 조직에서 이 주소를 제대로 사용하지 못하는 문제도 존재했습니다.

그에 대한 대책이 클래스리스(CIDR, classless Inter-Domain Routing) 방식입니다.
CIDR방식은 옥텟 기준으로 나누지 않고 별도의 구분자를 사용하는데 이를 서브넷 마스크(Subnet Mask)라고 합니다.

NAT, 사설IP 주소, IPv6도 IP주소 부족에 대한 해결방안







서브넷 마스크

네트워크 주소와 IP 주소를 구분할 때 2진수 숫자 1은 네트워크 주소 0은 호스트 주소를 표현합니다.

예를 들어 103.9.32.146 주소에 255.255.255.0 서브넷 마스크를 사용한다면
네트워크 주소는 103.9.32.0
호스트 주소는 0.0.0.146
이 됩니다.


표현 방법
비트 단위로 표현하거나 10진수로 표현합니다.

비트 단위 : 1로 비트 자릿수를 연속적으로 표현
10진수 : 32자리 2진수 제일 뒤에 서브넷 마스크 비트 자릿수를 "/{subnet mask}"에 표현

비트 단위는 말 그대로 11111111.11111111.11...처럼 표현을 하며
10진수로 표현하는 것은 192.168.101.32/24로 보여줍니다.

10진수로 표현하는 경우의 예
A class/8
B class/16
C classs/24







서브네팅

원래 부여된 클래스 기준를 무시하고 새로운 네트워크, 호스트 구분자를 정해 더 쪼개는 것을 의미합니다.



네트워크 사용자의 입장

사용자는 자신이 사용할 수 있는 범위가 어디인지를 고려한다.



IP 주소 (사용자의 IP주소)
10진수 : 103.9.32.146
2진수 : 0110 0111. 0000 1001. 0010 0000. 10010010

서브넷
10진수 : 255.255.255.192
2진수 : 1111 1111. 1111 1111. 1111 1111. 1100 0000

네트워크 주소(서브넷 마스크의 1로 채워진 비트가 마스킹하는 IP주소의 값)
10진수 : 103.9.32.128
2진수 : 0110 0111. 0000 1001. 0010 0000. 10010010

브로드 캐스트 주소 (네트워크 주소 비트를 제외한 모든 비트 1로 채움)
10진수 : 103.9.32.191
2진수 : 0110 0111. 0000 1001. 0010 0000. 10111111

첫 번째 주소(네트워크 주소는 사용이 불가)
10진수 : 103.9.32.129
2진수 : 0110 0111. 0000 1001. 0010 0000. 10010011

마지막 주소(브로드 캐스트 주소는 사용이 불가)
10진수 : 103.9.32.190
2진수 : 0110 0111. 0000 1001. 0010 0000. 10111110

자신이 속한 네트워크 범위(2진수는 마지막 옥텟을 표현)
10진수 : 103.9.32.128 ~ 103.9.32.191
2진수 : .10010010 ~ .10111111



네트워크 설계자의 서브네팅

사용자와 반대로 설계자는 서브넷 마스크가 지정되어 주어지는 것이 아니라 네트워크 크기를 고민해 서브넷 마스크를 결정하고 반영해야 한다.

반영 포인트

  • 서브넷된 하나의 네트워크에 IP를 몇개나 할당해야 하는가?
  • 서브넷된 네트워크가 몇개가 필요한가?

예시
회사에 총 12곳의 지사가 있으며 이 지사들에는 최대 12대의 IP가 필요하다.(PC, 복합기, IP 카메라..)
현재 가진 네트워크는 103.9.32.0/24

  1. 서브넷된 네트워크에 12개 IP를 할당해야 함
  2. 네트워크는 2진수의 배수로 커지므로 4, 8, 16, 32, 64, 128, 256개 단위로 네트워크를 할당할 수 있음. 12개를 할당할 수 있는 가장 작은 단위는 16개(브로드 캐스트 주소와 네트워크 주소를 제외하면 14개)

가능하면 사설 IP대역을 사용하는 것이 좋음. 최대한 같은 크기의 네트워크를 할당하고 10진수로 표현해도 쉽게 이해할 수 있는 C클래스 단위인 24비트로 쪼개 할당하는 것이 바람직합니다.(네트워크 관리자, 사용자 모두 구분하기가 쉬워진다.)

네트워크를 잘 설계하면 관리하기 쉽고 네트워크 장비 성능도 향상됩니다.
잘 설계된 네트워크는 라우터가 관리하는 경로가 적고 관리하기가 쉬움

첫 번째 경우
10.1.1.0/24 , 10.1.2.0/24 , 10.1.3.0/2410.1.0.0/16네트워크에 대한 경로만 가져도 모든 10.1.x.0 네트워크로 패킷을 포워딩할 수 있습니다.

두 번째 경우
만약 1.1.0.0./24, 1.2.0.0/24, 1.3.0.0/24 네트워크를 설계했다면
라우터는 존재하는 네트워크 수만큼 모든 경로를 알고 있어야 합니다.

하지만 첫 번째 경우도 사설 IP대역으로 네트워크 설계를 해야 합니다.
예시처럼 3개만 사용하는 경우 나머지 253개의 네트워크를 낭비하게 됩니다.



공인 IP와 사설 IP

공인 IP : 인터넷에 연결이 가능하고 전세계에서 유일해야 하는 것
사설 IP : 인터넷에 접속하지 않거나 NAT(Network Address Translation)기술을 사용하는 경우 사설 IP주소(공유기, 회사 방화벽 사용하는 경우)를 사용할 수 있습니다.

profile
즐겁게 개발하기

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

이 글은 정말 인상적이었습니다.

답글 달기