CIDR for Dummies

46

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

Prumo
fonte
3
Veja também esta pergunta para a questão exaustiva de sub-redes.
Zoredache

Respostas:

78

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

Quando as redes IP foram definidas pela primeira vez, os IPs tinham classes com base 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

(Observe que essa é a fonte de pessoas que se referem a / 24 como "classe C", embora essa 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 pedaços de espaço IP. Isso foi ineficiente porque resultou em grandes blocos sendo atribuídos a organizações que não precisavam necessariamente deles, e também porque as Class Cs só podiam ser atribuídas em incrementos de 24 bits, o que significa que as tabelas de roteamento podiam ficar desnecessariamente grandes à medida que várias Class Cs eram roteadas para o mesmo local.

O CIDR foi definido para permitir que máscaras de sub-rede de comprimento 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 à qual 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 número inteiro de 32 bits, o VLSM sempre estará entre 0 e 32 (embora eu não tenha certeza de qual instância você pode ter uma máscara de comprimento 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 nas ACLs usar uma máscara / 32. Isso significa simplesmente que você está se referindo a um único IP)

Depois de entender isso, é simples aritmética binária mover para cima ou para baixo para obter o número de hosts. Por exemplo, se um / 24 tiver 256 IPs (vamos deixar de fora os endereços de rede e transmissão, essa é uma questão diferente da teoria de redes), aumentar a sub-rede em um bit (para / 25) reduzirá o espaço do host em um bit (para 7), o que significa que haverá 128 IPs.

Aqui está uma tabela do último octeto. Essa tabela pode ser deslocada para qualquer octeto para obter o equivalente quadriculado 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 mudança para outro octeto, / 18 (que é / 26 menos 8 bits, então alterou um octeto) seria 255.255.192.0.

jj33
fonte
2
Estranho, eu costumo ouvi-lo pronunciado "cidra"
sclarson
Tenho certeza de que é regional / organizacional. Não sei se ouvi alguém chamar o CIDR de "seqüestrador", mas sei que quando fiz a programação do LISP anos atrás, a função CDR foi chamada de "sequestrador" pelo meu professor, talvez eu o tenha pego de lá ...
jj33
Assim como dados adicionais: eu só ouvi "cidra" e fui ensinado que o CDR era "cudder". Para cada um deles, eu acho. :-)
Luke
Graças ao SaveTheRbtz, alterei o intervalo final da classe B para 191.255.255.255 e o início da classe C para 192.255.255.255. Estranho, entendi direito o prefixo binário e lembro de fazer as contas. Muito obrigado por descobrir isso!
jj33
2
Eu daria isso a 10 se pudesse. É uma ótima explicação para o CIDR / VLSM.
precisa
8

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 ficar preocupado 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 seja claro o suficiente

Sclarson
fonte
6

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

10000000 00000000 00000000 00000000 em que 1 = bit mais significativo

As máscaras comuns são / 8, / 16, / 24, que 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 exige alguma matemática e compreensão simples 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 de que é um valor de 8 bits, de 0 a 255.

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

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

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0

dbasnett
fonte
4

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

hayalci
fonte
2
Quem votou contra isso ?! Eu concordo totalmente, é muito fácil calcular mal os intervalos CIDR em sua cabeça, especialmente ao converter, por exemplo, o formato / 23 a 255.255.254.0. Eu uso o pacote 'ipcalc' no Debian para me ajudar.
Mike Pountney
2
Eu penso ipcalce sipcalcsou melhor escolha, mas enfim +1
SaveTheRbtz
2

Pelo contrário, acho bom entender completamente o CIDR e ser capaz de fazer cálculos em seu cérebro ... mas às vezes você deseja verificar novamente seus cálculos. Eu gosto de usar a calculadora de sub-rede PHP : http://share-foo.com/SubnetCalc.php

texto alternativo

l0c0b0x
fonte