it-swarm-pt.com

O que significa ter uma máscara de sub-rede / 32?

Eu vejo neste pergunta , a tabela de roteamento tem:

192.168.1.1/32     link#4             UCS             2        0     en0
openwrt.lan        46:94:fc:63:fc:7   UHLWIir        11     3610     en0   1200
192.168.1.125/32   link#4             UCS             2        0     en0

O que significa ter uma máscara de sub-rede de /32 e, nesse caso, qual será o seu ID de rede? Um host pode existir sem um ID de rede, caso consideremos o exposto como um único host?

Tanto quanto sei, o ID da rede e o endereço IP atribuído a um host nessa rede são duas coisas diferentes. 192.168.0.0 é um ID de rede e se sua sub-rede for 255.255.255.0, os hosts nesta rede podem ser 192.168.0.1 - 192.168.0.254. Nesse caso, como um host pode existir sem uma identificação de rede?

Vinculado: Por que minha máscara de sub-rede 255.255.255.255?

18
Number945

Há um pouco de confusão aqui; esse/32 não se refere ao tamanho de qualquer (sub) rede, mas ao intervalo de endereços aos quais a entrada específica da tabela de roteamento se aplica. Normalmente, os dois são os mesmos (porque você encaminha uma rede ou sub-rede como uma unidade, certo?), Mas o macOS faz as coisas um pouco diferentes para outros hosts na mesma rede local. Deixe-me adicionar algumas linhas antes das que você citou:

Destination        Gateway            Flags        Refs      Use   Netif Expire
default            openwrt.lan        UGSc           10        0     en0
...
192.168.1          link#4             UCS             2        0     en0
192.168.1.1/32     link#4             UCS             2        0     en0
openwrt.lan        46:94:fc:63:fc:7   UHLWIir        11     3610     en0   1200
192.168.1.125/32   link#4             UCS             2        0     en0

Observe que 192.168.1 (abreviação de 192.168.1.0/24) é roteado sobre en0 (também conhecido como link # 4); não através de nenhum gateway, apenas pela própria interface. Essa é a rede em que o próprio Mac está conectado. 192.168.1.1 e 192.168.1.125 são endereços específicos dentro desse intervalo de rede. Se você comparar essas entradas/32 com a entrada 192.168.1, elas são basicamente duplicatas redundantes; eles dizem a mesma coisa, apenas sobre endereços específicos, em vez de todo o alcance da rede.

Não sei por que o macOS cria essas entradas específicas de endereço redundantes, mas provavelmente está relacionado a outra coisa que você pode ver na lista acima: o macOS lista as entradas da tabela ARP na tabela de roteamento. A entrada "openwrt.lan" acima (que eu tenho certeza que é realmente 192.168.1.1, apenas listada por nome e não por número) diz que ela é roteada via en0 para o endereço MAC 46: 94: fc: 63: fc: 7 .

Portanto, o que você vê na lista de rotas é uma mistura de rotas de rede reais (como as entradas "padrão" e 192.168.1)) e entradas por host (as entradas direcionadas para/32 e MAC).

23
Gordon Davisson

/32 endereçamento

De um modo geral, /32 significa que a rede possui apenas um único endereço IPv4 e todo o tráfego irá diretamente entre o dispositivo com esse endereço IPv4 e o gateway padrão. O dispositivo não poderá se comunicar com outros dispositivos na rede.

Existem algumas razões possíveis para isso que eu já vi. Poderia ser:

  • Um servidor da web que atende a vários sites com cada site vinculado a um endereço IPv4 específico
  • A endereço de loopback usado para teste.
  • Isolar uma máquina da rede para permitir a conexão apenas de rotas definidas estaticamente. (Para descomissionamento, por exemplo.)

ID de rede

A parte do ID da rede de um endereço IP é determinada pela máscara de sub-rede. Por exemplo:

  • UMA /24 A rede IPv4 possui uma máscara de sub-rede de 1111.1111.1111.0000, o que significa que os três primeiros octetos são o ID da rede e o último octeto é usado para atribuir IDs do Host (256 IDs disponíveis, embora geralmente alguns sejam reservados).
  • UMA /16 A rede IPv4 possui uma máscara de sub-rede de 1111.1111.0000.0000, significando que os 2 primeiros octetos são o ID da rede e o último octeto é usado para atribuir IDs do host (65536 IDs disponíveis, embora geralmente alguns sejam reservados).

No caso de /32, isso não se aplica, pois o endereço é um ID de rede e um Host. /31 endereços também são todos os IDs de host sem o 0º endereço reservado.

19
Worthwelle

É apenas o valor CIDR. Você pode aprender mais em aqui para o CIDR.

TL; DR

Um endereço de rede CIDR se parece com este no IPv4:

192.30.250.00/18

O "192.30.250.0" é o próprio endereço de rede e o "18" diz que os primeiros 18 bits são a parte de rede do endereço, deixando os últimos 14 bits para endereços de host específicos. máscara de sub-rede

4
monst3r

o mais fácil é pesquisar na Web e ler artigos relacionados a subnet mask e subnet mask binary shorthand e CIDR

e também confira subnet calculators

a /32 é o CIDR (abreviação) e refere-se a quantos 1s existem na máscara de sub-rede. Para /32 isso é 255.255.255.255 ou 11111111.11111111.11111111.1111111

isso significa que você pode ter apenas um endereço IP na sua rede antes de precisar de um gateway/roteador para sair dessa rede. com/32 é só você. ma máscara de sub-rede é um número que define um intervalo de endereços IP disponíveis em uma rede

CIDR = roteamento entre domínios sem classe

o que significa usar/32: não acredito que seja uma configuração inválida, mas desativa efetivamente a rede ... ou limita a rede apenas a você ... você só pode conversar consigo mesmo se não tiver um gateway configurado para alcançar fora dessa máscara de rede.

qual será a sua identificação de rede: Suponho que você queira dizer qual será o endereço IP e o endereço IP será o que você definir. O endereço IP e a máscara de sub-rede (com a qual você está lidando) são duas coisas diferentes, embora relacionadas.

um host pode existir sem um ID de rede [endereço IP?]: você pode existir sem ter um nome e sobrenome ou sem um endereço? sim, o host pode existir. meio que precisa definir melhor o que você quer dizer com existir.

2
ron

O que você está vendo não são máscaras de sub-rede . Eles são indicações do comprimento dos prefixos da tabela de roteamento.

Uma implementação ingênua de uma tabela de roteamento listaria todos os endereços IP possíveis para que, dado qualquer endereço IP, você procurasse exatamente aquele e recuperasse as informações de roteamento² associadas a ele.

Claramente, é necessário algum tipo de compactação. A natureza das informações de roteamento é que os endereços adjacentes provavelmente usarão as mesmas informações, portanto, podemos usar uma forma de árvore de raiz para compactá-las juntas. Aqui, brevemente, é assim que funciona.

Dados os números de 0 a 7, podemos representá-los em binário da seguinte maneira:

0   000
1   001
2   010
3   011
4   100
5   101
6   110
7   111

Agora, se tivermos duas entradas da tabela de roteamento, uma para os endereços 0 e 1 e outra para os endereços 2 e 3, podemos armazená-las sob os prefixos binários compartilhados. Se usarmos um . para indicar o bit "não utilizado" após o final do prefixo, temos 00. para o intervalo 0-1 e 01. para o intervalo 2-3.

Uma maneira padrão de representar isso é com o número mais baixo do intervalo seguido pelo comprimento do prefixo; nesse caso, esses seriam 0/2 para o intervalo 0-1 e 2/2 para o intervalo 2-3.

Mas o que acontece se quisermos procurar as informações de roteamento para o endereço 6? Normalmente, adicionaríamos um conjunto "padrão" de informações de roteamento com o prefixo 0/0, ou seja, correspondendo todos os bits e, quando procuramos, procuramos as informações mais específicas, ou seja, o prefixo de correspondência mais longo que podemos encontrar. Portanto, a tabela de roteamento completa que acabamos de descrever é:

0/2     00.     Matches addresses 1 and 2.
2/2     01.     Matches addresses 3 and 4.
0/0     ...     Matches any address.

As máscaras de sub-rede podem ser descritas com prefixos da mesma maneira e, portanto, esse esquema é frequentemente usado para isso. Mas lembre-se de que apenas porque esse esquema pode ser usado para descrever sub-redes não significa que ele seja usado somente para descrever sub-redes.

Como um exemplo de prefixos de tabela de roteamento que não são sub-redes, você pode ter duas interfaces de rede conectadas à mesma rede, por exemplo, 192.168.2.0/24. (Isso pode ser implementado conectando duas placas de rede separadas ao mesmo switch, cada uma com seu próprio cabo.) Em seguida, você pode configurar a tabela de roteamento para "equilibrar" o tráfego de saída nas duas interfaces usando duas entradas da tabela de roteamento:

192.168.2.0/25      eth0        # range ...2.0   to ...2.127
192.168.2.128/25    eth1        # range ...2.128 to ...2.255

Isso enviaria pacotes destinados aos endereços 0-127 nessa rede para fora eth0, mas pacotes destinados aos endereços 128-255 nessa rede fora eth1. Essa é uma maneira ruim de fazer isso (por razões que não abordarei aqui), mas demonstra como os prefixos de roteamento e os endereços de rede podem não corresponder.


¹ O artigo da Wikipedia em tabelas de roteamento infelizmente diz que o campo prefixo contém o "ID da rede". Embora isso possa ser verdade em certas implementações específicas de tabelas de roteamento, nem sempre é um ID de rede no caso geral, como visto no exemplo que você fornece e no meu exemplo posteriormente nesta resposta.

² Essas informações de roteamento geralmente incluem coisas como qual interface usar, qual roteador entrar em contato nessa interface, se houver, o endereço MAC de um host para hosts acessível diretamente por essa interface, qual endereço de origem devemos colocar no pacote se o host tiver vários endereços de origem, informações de segurança e assim por diante. Há uma enorme variedade de dados que podem estar lá, mas nada disso é importante para os propósitos desta discussão, pois estamos falando apenas sobre como você pesquisa o conjunto de dados correto para um determinado endereço, não o que está no próprio conjunto de dados .

0
cjs