CIDR para manequins

44

Eu entendo o que é o CIDR, e para que ele é usado, mas ainda não consigo descobrir como calculá-lo na minha cabeça. Alguém pode dar uma explicação do tipo "for dummies" com exemplos?

    
por Bob 27.05.2009 / 15:19

6 respostas

75

CIDR (Roteamento entre Domínios Sem Classe, pronunciado "kidder" ou "cidra" - adicione sua própria variante local aos comentários!) é um sistema de definição da parte da rede de um endereço IP (normalmente as pessoas pensam nisso como máscara de sub-rede). A razão pela qual é "sem classes" é que permite uma maneira de quebrar as redes IP de forma mais flexível do que a sua classe base.

Quando as redes IP foram definidas pela primeira vez, os IPs tiveram classes baseadas em seu prefixo binário:

Class    Binary Prefix    Range                       Network Bits
A        0*               0.0.0.0-127.255.255.255     8
B        10*              128.0.0.0-191.255.255.255   16
C        110*             192.0.0.0-223.255.255.255   24
D        1110*            224.0.0.0-239.255.255.255
E        1111*            240.0.0.0-255.255.255.255

(Note que esta é a fonte de pessoas referindo-se a um / 24 como uma "classe C", embora isso não seja uma comparação estritamente verdadeira porque uma classe C precisava ter um prefixo específico)

Esses prefixos binários foram usados para rotear grandes blocos de espaço IP ao redor. Isso era ineficiente porque resultava em grandes blocos atribuídos a organizações que não precisavam necessariamente deles, e também porque a Classe Cs só podia ser atribuída em incrementos de 24 bits, o que significava que as tabelas de roteamento poderiam ficar desnecessariamente grandes conforme várias Classes C foram roteadas. o mesmo local.

O CIDR foi definido para permitir que as máscaras de sub-rede de tamanho variável (VLSM) sejam aplicadas às redes. Conforme o nome se aplica, grupos de endereços ou redes podem ser divididos em grupos que não têm relação direta com a "classe" natural a que pertencem.

A premissa básica do VLSM é fornecer a contagem do número de bits de rede em uma rede. Como um endereço IPv4 é um inteiro de 32 bits, o VLSM estará sempre entre 0 e 32 (embora não tenha certeza em que instância você pode ter uma máscara de tamanho 0).

A maneira mais fácil de começar a calcular o VLSM / CIDR em sua cabeça é entender os limites "naturais" de 8 bits:

CIDR    Dotted Quad
/8      255.0.0.0
/16     255.255.0.0
/24     255.255.255.0
/32     255.255.255.255

(A propósito, é perfeitamente legal, e bastante comum em ACLs, usar uma máscara / 32. Significa simplesmente que você está se referindo a um único IP)

Uma vez que você as compreenda, é simples aritmética binária para mover para cima ou para baixo para obter o número de hosts. Por exemplo, se um / 24 tiver 256 IPs (vamos deixar os endereços de rede e broadcast por enquanto, é uma questão de teoria de rede diferente), aumentar a sub-rede em um bit (para / 25) reduzirá o espaço do host em um bit (para 7), significando que haverá 128 IPs.

Aqui está uma tabela do último octeto. Esta tabela pode ser deslocada para qualquer octeto para obter o equivalente ao quádruplo pontilhado.

CIDR    Dotted Quad
/24     255.255.255.0
/25     255.255.255.128
/26     255.255.255.192
/27     255.255.255.224
/28     255.255.255.240
/29     255.255.255.248
/30     255.255.255.252
/31     255.255.255.254
/32     255.255.255.255

Como um exemplo de deslocamento destes para outro octeto, / 18 (que é / 26 menos 8 bits, então mudou um octeto) seria 255.255.192.0.

    
por 27.05.2009 / 15:50
7

Cada octeto vale 8.

  • 255.0.0.0 / 8
  • 255.255.0.0 / 16
  • 255.255.255.0 / 24
  • 255.255.255.255 / 32

Assim, você pode restringir rapidamente sua sub-rede e, em seguida, está preocupado apenas com os últimos 8 bits.

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 = / 9
  • 255.192.0.0 = / 10
  • 255.224.0.0 = / 11
  • 255.240.0.0 = / 12
  • 255.248.0.0 = / 13
  • 255.252.0.0 = / 14
  • 255.254.0.0 = / 15

Espero que isso seja claro o suficiente

    
por 27.05.2009 / 15:45
6

Um dia (sic) atrasado, espero que não seja um dólar curto. CIDR é o número de bits contíguos na máscara IPv4 (32 bits) começando no bit mais significativo.

10000000 00000000 00000000 00000000 onde 1 = bit mais significativo

As máscaras comuns são / 8, / 16, / 24, todas caem em um limite de 8 bits (octeto).

11111111 00000000 00000000 00000000 = / 8 = 255.0.0.0

11111111 11111111 00000000 00000000 = / 16 = 255.255.0.0

11111111 11111111 11111111 00000000 = / 24 = 255.255.255.0

Não é realmente difícil quando não está alinhado com o octeto, mas requer alguma matemática simples e compreensão do que é um octeto.

11111111 11111111 11100000 00000000 = / 19

Os dois primeiros octetos da máscara são 255,255 (/ 16 é menor que / 19). O último octeto é 0 (/ 19 é menor que / 24). Até agora sabemos

11111111 11111111 11100000 00000000 = / 19 = 255,255.? 0

Ao olhar para cada octeto, lembre-se que é um valor de 8 bits, 0 - 255.

0 0 0 0 0 0 0 0 
1
2 6 3 1
8 4 2 6 8 4 2 1

Então o terceiro octeto (?) 11100000 é 128 + 64 + 32 = 224. Isso significa

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0

    
por 12.08.2010 / 17:15
4

É muito propenso a erros calcular manualmente as redes não triviais. Experimente uma Calculadora CIDR .

    
por 27.05.2009 / 21:53
2

Pelo contrário, eu acho que é bom entender completamente o CIDR e ser capaz de fazer cálculos em seu cérebro ... mas às vezes você quer checar novamente seus cálculos. Eu gosto de usar a Calculadora de Sub-rede PHP : link

texto alternativo http://locobox.googlepages.com/phpsubnet.png

    
por 27.05.2009 / 22:11
1

Outro bom documento para ter, se você quer apenas uma referência de mesa, é a RFC 1878 - Tabela de sub-rede de comprimento variável para IPv4 .

    
por 27.05.2009 / 22:07