서브넷은 항상 연속적인 1인가요?

서브넷은 항상 연속적인 1인가요?

와 같은 서브넷 마스크의 기본 전제를 ​​이해합니다 255.255.255.0. 그러나 내가 본 모든 서브넷 예는 (왼쪽에서 오른쪽으로) 연속적인 1(HI 비트)이었습니다. 예를 들어 255.255.0.0( /16)는 다음 옥텟으로 변환됩니다.

11111111 . 11111111 . 00000000 . 00000000

믿다그 비트들~ 해야 하다서브넷의 전체 요점은 호스트 ID와 사용 가능한 장치 ID 범위를 파생시키는 것이기 때문에 연속적이어야 합니다. 하지만 혹시 서브넷 마스크가 다음 255.17.255.0과 같은 것인지 궁금합니다.

11111111 . 00010001 . 11111111 . 00000000
  • 이런 일이 일어날까요? 아니면 인접한 1이 없으면 서브넷이 존재할 수 없습니까? 그렇다면 왜 그렇습니까?
  • 그렇지 않고 가능하다면 왜 그렇게 하시겠습니까(몇 가지 구체적인 예)?

답변1

섹션 3.1의RFC클래스 없는 도메인 간 라우팅에서 허용되는 마스크를 보여줍니다. 라우팅이 제대로 작동하려면 비트가 연속되어 있어야 합니다.

또한 논리적으로 생각할 때 이상한 무작위 네트워크 마스크를 갖는 것은 실제로 의미가 없습니다.

답변2

예, 생각하기 쉬운 방법은 서브넷 마스크가 처음에는 항상 1이라는 것입니다. 서브넷 크기 표시기의 이진 표현 시작 부분에 1이 없으면 현대 표준을 사용하여 서브넷 크기 표시기가 적절한 "서브넷 마스크"가 아니라고 말할 수 있습니다.

RFC 1219이전 RFC 950에서는 비연속 비트를 허용한다고 명시되어 있습니다. 사실은,RFC 950 15페이지(섹션 3)에는 "연속되지 않은 서브넷 비트 설명"이라는 예가 분명히 있습니다. 그러나 이러한 서브넷을 CIDR 표기법으로 변환할 수 있는 방법은 없습니다. CIDR 스타일 표기법은 IPv6에서 사용한 것입니다(적어도 이후RFC 1884 7페이지, 섹션 2.4의 첫 번째 문장) 따라서 IPv6 네트워크에서는 연속되지 않은 비트가 널리 지원되지 않았습니다.RFC 1219의 방법은 "서브넷 비트(마스크 = 1)가 가장 중요한 비트부터 가장 작은 비트 쪽으로 할당됩니다"라고 지정합니다.RFC 4632 섹션 3.1는 Sami의 답변에서 언급되었으며 CIDR 표기법을 논의하는 공식 표준을 가리킵니다.)

RFC 1878 페이지 2을 제외한 모든 IPv4 서브넷에 대한 표준 "서브넷 마스크" 표기법을 보여줍니다 /0.

그러나 나는 "이유"(질문에서 요구한 구체적인 예를 사용하여)를 조사하면서 Sami의 답변에 대해 조금 더 자세히 설명하겠습니다.

일부 전문가급 Cisco 장비는 비트를 반전시키는 "와일드카드 마스크"라는 기능을 지원합니다. 따라서 일반 서브넷은 이라는 이름으로 표시될 수 있습니다 00000000.00000000.00000000.11111111.

Cisco의 와일드카드 마스크에는 모든 0이 먼저 와야 한다는 규칙이 없었습니다. 그래서 당신은 사용할 수 있습니다 00000000.00000000.00000000.11111110.

그러면 모든 짝수 IP 주소를 포함하는 그룹이 생성됩니다.

이는 Cisco의 교육에서 다루었기 때문에 실제로 아는 것이 중요했으며 Cisco의 전문 인증 시험 과정에서 이러한 내용을 물을 수도 있습니다.

그러나 나는 그것이 대부분 쓸모가 없다고 생각합니다. 짝수 주소나 홀수 주소를 사용하여 네트워크를 절반으로 나누는 대신 일반 서브넷을 절반 크기로 만들어 낮은 번호의 주소와 높은 번호의 주소를 사용하여 네트워크를 절반으로 나눌 수 있습니다.

연속되지 않은 비트가 있는 와일드카드 마스크는 별로 유용하지 않았고 작업하기가 더 어려울 수 있었습니다. 1로 설정된 서브넷 마스크 비트의 요점은 비트가 장치가 어느 서브넷에 있는지 식별하는 데 도움이 된다는 것입니다. 해당 비트를 주소 시작 부분에서 훌륭하게 그룹화하는 대신 주소 전체에 분산시켜야 할 강력한 이유는 없습니다. . 결과적으로 이러한 유형의 마스크를 지원하는 것은 큰 이점 없이 복잡성만 더해졌습니다.

Cisco는 결국 "와일드카드 마스크"에 대한 지원을 중단했기 때문에 이러한 비전통적인 서브넷 마스크가 의미가 없다는 데 동의한 것 같습니다. 이전 Pix 방화벽은 "와일드카드 마스크"를 지원하지만 최신 ASA 장치는 대신 표준 "서브넷 마스크"를 사용합니다. .

나는 마스크에 연속되지 않은 "서브넷 비트"가 있는 네트워크를 만들려고 시도조차 하지 않을 것입니다. 왜냐하면 많은 소프트웨어가 새로운 추세/표준을 따르고 그러한 네트워크 설계를 거부하기 때문입니다. 이전 소프트웨어를 사용하고 있더라도 네트워크를 다시 설계할 필요 없이 최신 소프트웨어를 사용할 수 있도록 네트워크를 쉽게 수정할 수 있기를 원할 것입니다. 따라서 연속적인 "서브넷 비트"가 유일한 방법입니다.

테스트에서 질문을 받으면 주소 시작 부분에 모든 1이 있어야 한다고 자신있게 말할 수 있습니다. 이것이 바로 제정신의 테스터라면 오늘날 대다수의 학생들이 배우기를 바라는 것입니다.

답변3

RFC 9502.2장에서는 이렇게 말합니다.

 To support subnets, it is necessary to store one more 32-bit
  quantity, called my_ip_mask.  This is a bit-mask with bits set in
  the fields corresponding to the IP network number, and additional
  bits set corresponding to the subnet number field.
 The code then becomes:
   IF bitwise_and(dg.ip_dest, my_ip_mask)
                               = bitwise_and(my_ip_addr, my_ip_mask)
         THEN
             send_dg_locally(dg, dg.ip_dest)
         ELSE
             send_dg_locally(dg,
                    gateway_to(bitwise_and(dg.ip_dest, my_ip_mask)))

그래서 제안은 인접한 비트를 신경쓰지 않는 단순한 비트 연산에 관한 것이었습니다.

1985년에는 CPU와 메모리가 훨씬 더 제한되었기 때문에 더 복잡한 작업은 시간에 맞지 않았습니다.

3장에서는 더욱 명백해집니다.

네트워크에서는 3비트 서브넷 필드(01011000)가 사용 중입니다. 즉, 주소 마스크는 255.255.255.88입니다.

그러나 해당 RFC는 오래된 것 같습니다. 예를 들어 Windows 7 SP1에서는 다음과 같은 서브넷 마스크를 설정할 수 없습니다.

Windows 7에는 연속 서브넷 마스크가 필요합니다.

Windows XP SP2에서도 더 이상 가능하지 않았습니다.

서브넷 마스크 Windows XP SP2

그러나 Windows 98 복제 ReactOS에서는 "이상한" 넷마스크 설정을 허용합니다.

ReactOS 서브넷 마스크

답변4

@Sami Kuhmonen의 답변에 동의합니다.

RFC의 섹션 3.1은 클래스 없는 도메인 간 라우팅에서 허용되는 마스크를 보여줍니다. 라우팅이 제대로 작동하려면 비트가 연속되어 있어야 합니다. 또한 논리적으로 생각할 때 이상한 무작위 네트워크 마스크를 갖는 것은 실제로 의미가 없습니다.

그러나 원하지 않거나 허용되지 않더라도 연속되지 않은 1의 서브넷 마스크를 정의하는 것은 여전히 ​​가능합니다. 그 이유는 다음과 같습니다.
네트워크 ID와 호스트 ID는 이진 연산 AND 및 XOR을 사용하여 IP 주소와 서브넷 마스크에서 계산됩니다. 다른 모든 것은 관련이 없습니다.

몇 년 전에 Win 2000에서 테스트한 결과 작동했습니다. 두 컴퓨터 모두 255.160.0.0 마스크를 가졌습니다. 그들은 라우터 없이 LAN에 있었기 때문에 라우터의 동작에 대해 알 수 없습니다. 일반적으로 라우터의 마스크는 웹 인터페이스에서만 설정할 수 있으며 이를 거부합니다.
또한 네트워크 설정의 해당 필드에 '잘못된' 서브넷 마스크를 입력할 수 없습니다. GUI는 이를 거부합니다. 하지만 레지스트리에서 직접 변경하면 속일 수 있습니다. 그런 다음 변경 사항이 활성화되도록 NIC를 재부팅하거나 비활성화+활성화합니다.
그 모든 것의 목적은 음, 아마도 없을 것입니다.

관련 정보