ipcalc를 사용하여 Linux에서 서브넷 마스크를 계산하는 방법
게시 됨: 2022-08-28 대규모 네트워크를 서브넷팅하면 보안이 향상되고 성능이 향상되며 논리적인 방식으로 네트워크를 구성할 수 있습니다. 그러나 일부 계산은 어렵습니다. Linux ipcalc
명령을 사용하면 계획 단계를 쉽게 수행할 수 있습니다.
서브넷팅이란?
서브넷은 대규모 네트워크를 더 작고 연결된 조각으로 나누는 방법입니다. 각 조각을 서브넷이라고 합니다. 영업 팀이 하나의 서브넷을 사용하고, HR이 다른 서브넷을 사용하고, 고객 지원이 또 다른 서브넷을 사용하도록 네트워크를 구성하도록 선택할 수 있습니다.
여기에는 상당한 이점이 있습니다. 첫 번째는 보안 및 제어와 관련이 있습니다. 서브넷이 없으면 모든 것이 하나의 큰 "평면" 네트워크입니다. 서브넷을 사용하면 다른 서브넷과 통신할 수 있는 서브넷을 결정할 수 있습니다. 서브넷마다 IP 주소 범위가 다르고 서브넷 마스크도 사용합니다. 이에 대해서는 잠시 후에 설명하겠습니다.
한 서브넷의 트래픽이 다른 서브넷에 도달할 수 있도록 라우터를 구성해야 합니다. 또한 라우터는 관리되는 장치이기 때문에 서로 다른 서브넷 간에 허용되는 트래픽 및 상호 작용 유형을 제어할 수 있습니다.
서브넷팅은 또한 승인되지 않은 사용자와 맬웨어가 확인되지 않은 상태로 네트워크를 로밍하는 것을 방지할 수 있습니다. 아니면 최소한 속도를 늦출 것입니다. 잠수함이라고 생각하시면 됩니다. 한 섹션에서 선체 균열이 발생하면 격벽 문을 닫아 선박의 나머지 부분이 침수되지 않도록 할 수 있습니다. 서브넷은 이러한 격벽 도어와 같습니다.
종종 대규모 네트워크를 서브넷팅하는 행위만으로도 성능상의 이점이 있습니다. 네트워크가 충분히 크고 사용량이 많은 경우 성능 향상은 각 서브넷 내부의 네트워크 트래픽 감소에서 비롯됩니다. ARP 트래픽의 감소만으로도 상황이 더 반응적으로 보일 수 있습니다.
물론 네트워크가 구획화되면 IT 직원이 인프라를 더 쉽게 이해, 유지 관리 및 지원할 수 있습니다.
IP 주소 및 서브넷 마스크
모든 것이 훌륭하게 들립니다. 그러나 그것은 우리가 우리의 IP 주소를 매우 구체적으로 지정할 필요가 있음을 의미합니다. 네트워크 ID에는 IP 주소의 일부를 사용하고 장치 주소 지정에는 IP 주소의 일부를 사용해야 합니다. 서브넷의 경우 서브넷에 대한 IP 주소의 일부도 사용해야 합니다.
IPv4 IP 주소는 마침표로 구분된 4자리 3자리 숫자를 사용합니다. 점-십진 표기법이라고 합니다. 이 숫자의 범위는 0에서 255까지입니다. 처음 두 숫자는 네트워크 ID입니다. 세 번째는 서브넷 ID를 보유하는 데 사용되며 네 번째 숫자는 장치 주소를 보유하는 데 사용됩니다. 간단한 경우입니다.
숫자는 컴퓨터 내부에서 이진 값의 시퀀스로 표시됩니다. 서브넷에 장치가 너무 적어 장치 주소 번호 범위에 사용되지 않은 상위 비트가 있는 경우 서브넷 ID에서 이러한 "예비" 이진 비트를 사용할 수 있습니다.
라우터나 다른 네트워크 장치는 IP 주소의 구성이 무엇인지 어떻게 알 수 있습니까? 서브넷 ID가 세 번째 숫자에 완전히 포함되어 있는지 아니면 네 번째 숫자의 상위 비트 일부를 포칭하는지 여부를 나타내는 것은 무엇입니까? 이에 대한 답은 서브넷 마스크입니다.
서브넷 마스크는 IP 주소처럼 보입니다. 세 자리 숫자 4개이며, 숫자의 범위는 0에서 255까지입니다. 그러나 실제로는 이진 형식으로 생각해야 합니다.
서브넷 마스크에서 1인 모든 이진 비트는 IP 주소의 해당 비트가 네트워크 ID 또는 서브넷 ID를 나타냄을 의미합니다. 서브넷 마스크에서 0인 모든 것은 IP 주소의 해당 비트가 장치 주소를 참조한다는 것을 의미합니다.
일반적인 IP 주소를 가져와서 서브넷 마스크를 적용해 보겠습니다. 서브넷 마스크의 처음 세 숫자는 각각 255이고 네 번째 숫자는 0입니다.
- IP 주소 : 192.168.1.0
- 서브넷 마스크 : 255.255.255.0 = 11111111.11111111.11111111.00000000
바이너리 255는 11111111입니다. 서브넷 마스크 비트가 1로 설정된 경우 IP 주소의 해당 비트는 네트워크 ID 및 서브넷 ID를 참조합니다. 서브넷 마스크의 255는 IP 주소의 해당 번호에 있는 모든 비트가 네트워크 ID 또는 서브넷 ID를 참조한다는 것을 의미합니다.
네 번째 숫자는 0으로 비트가 1로 설정되지 않음을 의미합니다. 따라서 해당 번호는 네트워크 장치 주소를 나타냅니다. 따라서 서브넷 마스크 255.255.255.0은 IP 주소의 처음 세 숫자가 네트워크 ID와 서브넷 ID를 보유하고 마지막 숫자가 네트워크 장치 주소용으로 예약되어 있음을 의미합니다.
즉, 이 모든 것의 부작용은 서브넷 마스크가 개별 장치를 식별하는 데 사용할 수 있는 IP 주소의 비트 수도 결정한다는 것입니다. 즉, 서브넷 마스크는 IP 주소에서 서브넷을 식별하는 비트 와 서브넷에 포함될 수 있는 장치 수를 결정합니다.
서브넷 마스크를 변경하면 네트워크에 극적인 영향을 미칩니다. 이것이 바로 우리가 바로잡아야 하는 이유입니다.
ipcalc 명령
ipcalc
를 사용하면 네트워크를 올바르게 서브넷하기 위해 필요한 서브넷 마스크와 IP 주소를 쉽게 파악할 수 있습니다. ipcalc
는 이미 Fedora 36에 설치되어 있었습니다. Ubuntu 22.04와 Manjaro 21에 설치해야 했습니다.
Ubuntu의 명령은 다음과 같습니다.
sudo apt 설치 ipcalc
ipcalc
에 ipcalc를 설치하려면 다음을 사용하십시오.
sudo pacman -Sy ipcalc
최소한 ipcalc
에 IP 주소를 전달해야 합니다. 그것이 우리가 전달하는 전부라면 ipcalc
는 255.255.255.0의 서브넷 마스크를 가정합니다. 네트워크 및 IP 주소에 대한 정보를 제공합니다.
ipcalc 192.168.1.0
출력에는 점 십진수 값과 이에 상응하는 이진 값이 포함됩니다. 이것이 정보의 각 비트가 의미하는 것입니다.
- 주소 : 192.168.1.0. 우리가 제공한 IP 주소입니다.
- 넷마스크 : 255.255.255.0 = 24. 서브넷 마스크. 명령줄에 서브넷 마스크가 제공되지 않은 경우 255.255.255.0이 사용됩니다. 24는 서브넷 마스크에 1로 설정된 24비트가 있음을 의미합니다. 네트워크 ID 및 서브넷 ID에 사용됩니다. 이들은 왼쪽부터 계산됩니다. 1로 설정된 비트는 끊어지지 않은 1의 시퀀스가 됩니다. 그들 사이에는 0비트가 있을 수 없습니다. 2진법에서 1로 설정된 8비트는 10진법으로 255를 제공한다는 것을 알고 있습니다. 따라서 24는 모두 1로 설정된 3개의 8비트 세트를 의미합니다. 점 십진수로 255.255.255를 제공합니다. 나머지 비트는 0이 되어 255.255.255.0이 됩니다. 따라서 1로 설정된 비트를 세고 24와 같은 십진수로 표시하면 전체 서브넷 마스크를 전달할 수 있습니다. 이것을 Classless Inter-Domain Routing 표기법이라고 합니다.
- 와일드카드 : 0.0.0.255. 이는 Cisco 네트워크 장치에서 허용 목록/차단 목록 설정의 일부로 사용됩니다.
- 네트워크 : 192.168.1.0/24. CIDR 표기법으로 기술된 네트워크 IP 주소 및 서브넷입니다. 이 서브넷에 연결된 라우터가 있는 경우 허용되는 범위에서 가장 낮은 IP 주소가 할당되는 경우가 많습니다.
- 호스트민 : 192.168.1.1. 이 서브넷에 연결된 장치가 가질 수 있는 가장 낮은 IP 주소입니다.
- 호스트맥스 : 192.168.1.254. 이 서브넷에 연결된 장치가 가질 수 있는 가장 높은 IP 주소입니다.
- 방송 : 192.168.1.255. 방송주소입니다. 이 IP 주소로 전송된 네트워크 패킷은 서브넷의 모든 장치로 에코됩니다.
- Hosts/Net : 254. 이 서브넷에 연결할 수 있는 최대 장치 수입니다. 이 예에서 장치 IP 주소 범위는 0 ~ 255이며, 이는 256개의 서로 다른 IP 주소(0 ~ 255)를 식별할 수 있음을 의미합니다. 그러나 네트워크 IP 주소(".0" 주소)에 대해 하나의 IP 주소를 잃고 브로드캐스트 IP 주소(".255" 주소)에 대해 하나를 잃습니다.
- Class C, Private Internet : 네트워크의 클래스 .
네트워크 클래스 는 네트워크 ID 및 서브넷 ID에 사용되는 비트 수와 네트워크 클래스를 포함하는 데 사용되는 몇 비트( 선행 비트 )로 표시됩니다.
- 클래스 A : 선행 비트 0. IP 주소는 0으로 시작합니다. 기본 서브넷: 255.0.0.0. CIDR 표기법은 /8입니다.
- 클래스 B : 선행 비트 10. IP 주소는 128로 시작합니다. 기본 서브넷: 255.255.0.0. CIDR 표기법은 /16입니다.
- 클래스 C : 선행 비트 110. IP 주소는 192로 시작합니다. 기본 서브넷: 255.255.255.0. CIDR 표기법은 /24입니다.
- 클래스 D : 선행 비트 1110. IP 주소는 224로 시작합니다. 기본 서브넷: 정의되지 않음. CIDR 표기법은 /4입니다.
서브넷 마스크 변경
ipcalc
명령은 설정을 변경할 수 없으므로 아무 것도 영향을 받지 않고 원하는 것을 시도할 수 있습니다. 서브넷 마스크 변경이 네트워크에 어떤 영향을 미치는지 봅시다.
CIDR 또는 점-10진수 표기법을 사용할 수 있습니다. CIDR에서 공백은 선택 사항입니다. 이러한 명령은 모두 동일합니다.
ipcalc 192.168.1.0/16
ipcalc 192.168.1.0 /16
ipcalc 192.168.1.0 255.255.0.0
이렇게 하면 해당 네트워크에 연결할 수 있는 장치 수가 크게 늘어납니다. 이 네트워크에 대한 네트워크 장치 주소 지정은 192.168.0.0에서 시작하여 192.168.255.254에서 끝납니다.
이전과 같이 네트워크 주소에 대한 주소 하나와 브로드캐스트 주소에 대한 주소 하나를 잃습니다. 그러나 그것은 여전히 우리에게 65,534개의 가능한 장치를 제공합니다.
그러나 그들은 모두 여전히 하나의 서브넷에 있습니다.
서브넷과 함께 ipcalc 사용
각각 20, 15, 80개의 호스트를 수용할 수 있는 3개의 서브넷을 네트워크에 추가한다고 가정해 보겠습니다. -s
(분할) 옵션을 사용하고 원하는 서브넷 크기를 따를 수 있습니다.
ipcalc 192.168.1.0 -s 20 15 80
첫 번째 섹션은 이전에 본 것과 동일합니다. 여기서 ipcalc
는 명령줄에서 제공하는 IP 주소가 포함된 네트워크 분석을 제공합니다. 서브넷은 다음 세 섹션에서 설명합니다.
요약하면, 우리에게 주어진 정보는 다음과 같습니다:
첫 번째 서브넷:
- 서브넷 마스크: 255.255.255.224
- 첫 번째 장치 주소: 192.168.0.129
- 마지막 장치 주소: 192.168.0.158
- 서브넷 용량: 30개 장치
두 번째 서브넷:
- 서브넷 마스크: 255.255.255.224
- 첫 번째 장치 주소: 192.168.0.161
- 마지막 장치 주소: 192.168.0.190
- 서브넷 용량: 30개 장치
세 번째 서브넷:
- 서브넷 마스크: 255.255.255.128
- 첫 번째 장치 주소: 192.168.0.1
- 마지막 장치 주소: 192.168.0.126
- 서브넷 용량: 126개 장치
이진 값의 녹색 항목에 유의하십시오. 서브넷용으로 예약된 비트입니다.
또한 첫 번째 서브넷과 두 번째 서브넷의 서브넷 마스크가 27과 같기 때문에 하드웨어 필드의 3비트가 서브넷 표시기로 사용되었습니다. 첫 번째 서브넷에서 비트는 100이고 두 번째 서브넷에서는 101입니다. 이 차이를 통해 라우터는 네트워크 트래픽을 올바르게 전달할 수 있습니다.
빠르게 확대될 수 있음
더 크거나 복잡한 네트워크에서는 실수가 침투하기가 매우 쉽습니다. ipcalc
를 사용하면 값이 옳다는 것을 확신할 수 있습니다. 여전히 네트워크를 구성해야 하지만 적어도 사용 중인 값이 정확하다는 것을 알고 있습니다.