
Как получить маску сети из IP-адреса? Есть ли команда для ее получения?
решение1
Это невозможно. Если бы это было возможно, не было бы смысла иметь сетевую маску вообще, поскольку она могла бы определяться автоматически.
Маска сети используется для указания диапазона IP-адресов, на котором начинается и заканчивается «сеть». Этот диапазон является произвольным.
Например, с IP-адресом 192.168.0.140
:
При сетевой маске 255.255.255.0
( /24
в нотации cidr) диапазон IP-адресов будет 192.168.0.1 - 192.168.0.254
.
При сетевой маске 255.255.255.128
( /25
в нотации cidr) диапазон IP-адресов будет 192.168.0.129 - 192.168.0.254
.
решение2
В большинстве случаев вы не сможете этого сделать из-забесклассовые сети. У данного IPv4-адреса может быть 30 различных сетевых масок.
решение3
Маски сети в основном используются для различения локальных адресов в одной подсети от внешних адресов, которые доступны только через шлюз.
Так что если вы знаетевсе(= используемые в настоящее время или в будущем) IP-адреса в одной подсети, вы можете создать сетевую маску, которая содержит их все. Например, если 192.168.2.4 и 192.168.2.253 должны быть в одной подсети, подойдет сетевая маска 255.255.255.0 (соответствует диапазону IP 192.168.2.0-255 или в нотации cidr 192.168.2.0/24).
решение4
Хотя в CentOS 7 невозможно определить маску сети по IP-адресу напрямую, вы можете ввести «ip ad», что вернет IP-адрес с соответствующим ему номером подсети.
-bash-4.2$ ip ad 1: lo: mtu 65536 qdisc noqueue state НЕИЗВЕСТНО 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 state 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
Номер подсети также хранится в следующем файле
/etc/sysconfig/network-scripts/ifcfg-eth0 (где eth0 зависит от типа вашей сетевой карты)
Найдите настройку PREFIX. Номер, который она предоставляет, это маска подсети
например ПРЕФИКС=24
Если в приведенном выше файле нет номера ПРЕФИКСА, то сетевые настройки вашего сервера по умолчанию будут иметь маску подсети 8, которая также будет показана в вашей команде «ip ad».
Если вы хотите изменить номер ПРЕФИКСА, не забудьте перезапустить сетевую службу с помощью systemctl restart network.