Comment puis-je obtenir le masque de réseau à partir d'une adresse IP?

9

Comment puis-je obtenir un masque de réseau à partir de l'adresse IP? Existe-t-il une commande pour l'obtenir?

fronthem
la source

Réponses:

14

Ce n'est pas possible. Si c'était possible, il n'y aurait aucune raison d'avoir un masque de réseau car il pourrait être déterminé automatiquement.

Le masque de réseau est utilisé pour spécifier la plage IP à laquelle un «réseau» démarre et s'arrête. Cette plage est arbitraire.

Par exemple, avec l'adresse IP 192.168.0.140:
Avec le masque de réseau de 255.255.255.0( /24en notation cidr), la plage IP serait 192.168.0.1 - 192.168.0.254.
Avec un masque de réseau 255.255.255.128( /25en notation cidr), la plage IP serait 192.168.0.129 - 192.168.0.254.

Patrick
la source
3

Vous ne pouvez pas dans la plupart des cas, en raison de réseaux sans classe . Une adresse IPv4 donnée peut avoir 30 masques de réseau différents.

SquareRootOfTwentyThree
la source
Dans quel cas, dans les systèmes modernes, pouvez-vous faire cela?
Karlson
Je ne comprends pas complètement la question, mais fondamentalement tous les systèmes et appareils utilisent aujourd'hui le CIDR.
SquareRootOfTwentyThree
@Karlson: Comme Patrick l'a dit, il n'y a aucun moyen de déterminer automatiquement quand vous avez un cas qui tombe dans une exception à cette règle. Vous pouvez consulter le premier octet de l'adresse et de deviner aveuglément de ses quelques premiers bits qui fait partie d'une classe A , B, C ... ou tout autre réseau , mais vous ne pouvez pas savoir pour un fait que l'adresse est de cette classe , donc que vous connaissez le masque du net. En fait, avec certaines adresses, il y a fort à parier que la "classe" à l'ancienne d'une adresse n'est pas pertinente: les adresses commençant par 10 ne sont presque jamais de classe A (/ 8) car elles sont presque toujours en sous-réseaux.
Warren Young
@SquareRootOfTwentyThree La question est de savoir s'il existe ou non un moyen basé sur une IP du système de destination pour déterminer le masque de réseau utilisé.
Karlson
@WarrenYoung Je connais les classes d'adresses IP mais vous pouvez deviner que le masque IP de classe a (et je suppose ici) une probabilité de plus de 99% de se tromper.
Karlson
2

Bien que vous ne puissiez pas déterminer le masque de réseau à partir de l'adresse IP directement dans centos 7, vous pouvez taper "ip ad" qui renverra l'adresse IP avec son numéro de sous-réseau correspondant.

-bash-4.2 $ ip ad 1: lo: mtu 65536 qdisc noqueue state UNKNOWN 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 pfifo_fast état 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

Le numéro de sous-réseau est également stocké dans le fichier suivant

/ etc / sysconfig / network-scripts / ifcfg-eth0 (où eth0 dépend du type de votre carte réseau)

Recherchez le paramètre PREFIX. Le nombre qu'il fournit est le masque de sous-réseau

par exemple PREFIX = 24

S'il n'y a pas de numéro PREFIX dans le fichier ci-dessus, le paramètre réseau de votre serveur sera par défaut un masque de sous-réseau de 8, qui s'affichera à nouveau à partir de votre commande "ip ad".

Si vous souhaitez modifier le numéro PREFIX, n'oubliez pas de redémarrer le service réseau en utilisant systemctl restart network.

culzeanman
la source
1

Les masques de réseau sont principalement utilisés pour distinguer les adresses locales du même sous-réseau des adresses extérieures qui ne sont accessibles que via une passerelle.

Donc, si vous connaissez toutes les adresses IP (= actuellement ou à l'avenir utilisées) dans le même sous-réseau, vous pouvez construire un masque de réseau qui les contient toutes. Par exemple, si 192.168.2.4 et 192.168.2.253 doivent être dans le même sous-réseau, le masque de réseau 255.255.255.0 (égal à la plage IP 192.168.2.0-255 ou en notation cidr 192.168.2.0/24) fonctionne.

jofel
la source
@WarrenYoung Merci de l'avoir signalé. J'ai clarifié ma réponse.
jofel
Désolé, mais "masque de réseau 255.255.255.0" signifie non pas 192.168.2.1-255, mais 192.168.2.0-255 (si nous inclurons le réseau et la diffusion) ou 192.168.2.1-254 (si nous n'inclurons pas)
Lazy Badger