Como posso obter a máscara de rede de um endereço IP?

9

Como obtenho uma máscara de rede do endereço IP? Existe um comando para obtê-lo?

fronthem
fonte

Respostas:

14

Isso não é possível. Se fosse possível, não haveria razão para ter uma máscara de rede, pois ela poderia ser determinada automaticamente.

A máscara de rede é usada para especificar o intervalo de IPs em que uma 'rede' inicia e para. Esse intervalo é arbitrário.

Por exemplo, com o endereço IP 192.168.0.140:
Com a máscara de rede de 255.255.255.0( /24na notação cidr), o intervalo de IPs seria 192.168.0.1 - 192.168.0.254.
Com uma máscara de rede 255.255.255.128( /25em notação cidr), o intervalo de IPs seria 192.168.0.129 - 192.168.0.254.

Patrick
fonte
3

Na maioria dos casos, não é possível por causa de redes sem classes . Um determinado endereço IPv4 pode ter 30 máscaras de rede diferentes.

SquareRootOfTwentyThree
fonte
Nesse caso, em sistemas modernos, você pode fazer isso?
19412 Karlson
Não entendi completamente a pergunta, mas basicamente todos os sistemas e dispositivos hoje em dia usam o CIDR.
SquareRootOfTwentyThree 18/03/12
@Karlson: Como Patrick disse, não há como determinar automaticamente quando você tem um caso que se enquadra em uma exceção a esta regra. Você pode olhar para o primeiro octeto do endereço e adivinhar cegamente, dos poucos bits superiores, que ele faz parte de uma classe A, B, C ... ou qualquer outra rede, mas não pode saber de fato que o endereço é dessa classe. , portanto, você conhece a máscara de rede. De fato, com alguns endereços, é uma aposta inteligente que a "classe" antiga de um endereço seja irrelevante: endereços começando com 10 quase nunca são da classe A (/ 8) porque quase sempre estão em sub-rede.
22812 Warren Young
@SquareRootOfTwentyThree A questão é se existe ou não uma maneira baseada em um IP do sistema de destino para determinar a máscara de rede usada.
19412 Karlson
@WarrenYoung Estou ciente das classes de endereços IP, mas você pode adivinhar que a máscara de IP da classe tem (e estou supondo aqui) uma probabilidade de mais de 99% de estar errada.
19412 Karlson
2

Embora você não possa determinar a máscara de rede a partir do endereço IP diretamente no centos 7, você pode digitar "ip ad", que retornará o endereço IP com seu número de sub-rede correspondente.

-bash-4.2 $ ip ad 1: lo: mtu 65536 qdisc noqueue state DESCONHECIDO qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2: eth0: mtu 1500 qdisc estado pfifo_fast UP qlen 1000

link/ether 00:16:3e:77:ca:e9 brd ff:ff:ff:ff:ff:ff

**inet 10.1.0.11/24** brd 10.1.0.255 scope global eth0

   valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe77:cae9/64 scope link 

   valid_lft forever preferred_lft forever

O número da sub-rede também é armazenado no seguinte arquivo

/ etc / sysconfig / network-scripts / ifcfg-eth0 (onde eth0 depende do tipo de placa de rede)

Procure a configuração PREFIX. O número que ele fornece é a máscara de sub-rede

por exemplo PREFIX = 24

Se não houver um número PREFIX no arquivo acima, a configuração de rede do servidor será padronizada com uma máscara de sub-rede 8, que novamente será mostrada no comando "ip ad".

Se você deseja alterar o número PREFIX, lembre-se de reiniciar o serviço de rede usando systemctl restart network.

culzeanman
fonte
1

A máscara de rede é usada principalmente para distinguir endereços locais na mesma sub-rede dos endereços externos, que são acessíveis apenas por um gateway.

Portanto, se você souber todos os endereços IP (= atualmente ou no futuro usados) na mesma sub-rede, poderá construir uma máscara de rede que contenha todos eles. Por exemplo, se 192.168.2.4 e 192.168.2.253 devem estar na mesma sub-rede, a máscara de rede 255.255.255.0 (igual ao intervalo de ip 192.168.2.0-255 ou na notação cidr 192.168.2.0/24) funciona.

jofel
fonte
@WarrenYoung Obrigado por apontar isso. Esclarei minha resposta.
Jofel
Desculpe, mas "netmask 255.255.255.0" significa não 192.168.2.1-255, mas 192.168.2.0-255 (se incluirmos rede e transmissão) ou 192.168.2.1-254 (se não incluirmos)
Lazy Badger