Калкулатор за IP подмрежи: CIDR, маска и диапазон
Изчислете подробности за IPv4 подмрежа по адрес и CIDR префикс: мрежов и broadcast адрес, диапазон на използваемите хостове, маска на подмрежата и wildcard маска.
IP Subnet Calculator
Results
Subnet Mask in Binary
Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).
Документация
Калкулатор за IP подмрежи
Калкулаторът за IP подмрежи изчислява мрежовите данни зад един адрес IPv4 и дължина на префикса. От тези два входа той намира мрежовия адрес, широковещателния адрес, диапазона от използваеми адреси на хостове, маската на подмрежата и маската със заместващи символи.
Какво прави калкулаторът
Инструментът приема адрес IPv4, записан като четири числа, разделени с точки, например 192.168.1.10, и дължина на префикса от 0 до 32. Работи и съвместният запис в CIDR формат, например 192.168.1.10/24: частта /24 автоматично се премества в полето за префикса.
Калкулаторът връща:
- CIDR нотация: мрежата във формат адрес/префикс, например 192.168.1.0/24.
- Мрежов адрес: първият адрес в блока. Той обозначава самата мрежа.
- Широковещателен адрес: последният адрес в блока. Съобщение, изпратено до него, достига до всеки хост в подмрежата.
- Диапазон на използваемите хостове: първият и последният адрес, които дадено устройство действително може да използва.
- Използваеми хостове и общ брой адреси: колко адреса съдържа блокът и колко от тях са свободни за устройства.
- Маска на подмрежата и маска със заместващи символи: маската в точков формат, например 255.255.255.0, и нейната инверсия, 0,0.0,255.
- Маската на подмрежата, изписана бит по бит, по осем бита за октет.
Резултатите следват RFC 791 (адресиране IPv4), RFC 4632 (CIDR нотация), RFC 950 с RFC 919 и RFC 922 (резервациите за мрежата и широковещателния адрес) и RFC 3021 (/31 връзки от точка до точка).
Как работи разделянето на подмрежи
Един адрес IPv4 е число с 32 бита. Записва се като четири октета, всеки от които е 8 бита и съдържа стойност от 0 до 255. Дължината на префикса разделя тези 32 бита на две части. Първите битове, чийто брой е зададен от префикса, обозначават мрежата. Останалите битове обозначават хост в тази мрежа.
Мрежа /24 използва 24 бита за мрежовата част и оставя 8 бита за хостове. Осемте бита за хостове дават 2⁸ = 256 адреса. Мрежа /26 оставя само 6 бита за хостове, така че съдържа 2⁶ = 64 адреса.
Маската на подмрежата изписва същото разделяне като адрес: по един 1 бит за всеки мрежов бит и по един 0 бит за всеки бит за хост. За /24 това е 255,255,255,0. Маската със заместващи символи обръща всеки бит на маската на подмрежата. Списъците за достъп на маршрутизаторите, особено при оборудване на Cisco, съпоставят адреси с маски със заместващи символи, затова инструментът показва и двете.
Формулата за подмрежата
За дължина на префикса p между 0 и 30 калкулаторът прилага следните правила, определени от RFC 950 и RFC 4632:
- Маска на подмрежата = първите p бита на думата с 32 бита, зададени на 1.
- Мрежов адрес = IP адрес И маска на подмрежата (побитовото И запазва бит само там, където и двата входа имат 1).
- Широковещателен адрес = мрежов адрес ИЛИ маска със заместващи символи (всеки бит за хост е зададен на 1).
- Общ брой адреси = 2⁽³²⁻ᵖ⁾.
- Използваеми хостове = 2⁽³²⁻ᵖ⁾ − 2. Изваждането премахва мрежовия и широковещателния адрес, които RFC 950 и RFC 919 резервират.
- Първи използваем хост = мрежов адрес + 1. Последен използваем хост = широковещателен адрес − 1.
Две дължини на префикса следват различни правила. /31 съдържа точно 2 адреса, а RFC 3021 прави и двата използваеми хостове във връзка от точка до точка, без широковещателен адрес. /32 обозначава един адрес: 1 общо, 1 използваем, без широковещателен адрес. В тези два случая инструментът означава първия адрес като „База на префикса“ вместо „Мрежов адрес“, тъй като нито един от двата блока не резервира адрес за обозначаване на мрежата.
Всеки резултат произтича от аритметика върху едно число с 32 бита. Инструментът никога не изброява адресите един по един, така че /0, обхващащ всички 4 294 967 296 адреса IPv4, се изчислява също толкова бързо, колкото /32.
Решен пример
За адрес 10.128.7.33 с дължина на префикса /26:
- Маска на подмрежата: 26 единични бита, последвани от 6 нулеви бита, дават 11111111,11111111,11111111,11000000, което се записва като 255,255,255,192.
- Мрежов адрес: адресът се комбинира побитово И с маската. Първите три октета остават непроменени. В последния октет 33 е 00100001 в двоичен вид; побитовото И с 11000000 дава 00000000, което е 0. Мрежовият адрес е 10.128.7.0, така че CIDR нотацията е 10.128.7.0/26.
- Широковещателен адрес: всички 6 бита за хост се задават на 1. Последният октет става 00111111, което е 63. Широковещателният адрес е 10,128,7,63.
- Брой: 2⁶ = 64 общо адреса и 64 − 2 = 62 използваеми хоста.
- Диапазон на хостовете: от 10.128.7.1 до 10,128,7,62.
- Маска със заместващи символи: инверсията на маската на подмрежата, 0,0,0,63.
Втори пример с входа по подразбиране на инструмента, 192.168.1.10/24: мрежа 192.168.1.0, широковещателен адрес 192.168.1.255, хостове от 192.168.1.1 до 192.168.1.254, 254 използваеми хоста от общо 256, маска на подмрежата 255.255.255.0, маска със заместващи символи 0,0.0,255.
Конвенции, следвани от инструмента
Октети с водещи нули се отхвърлят. Инструментът отказва 010.1.1.1, вместо да го прочете като 10,1,1,1. Това е умишлено. Функцията POSIX inet_aton, която стои зад ping, curl и повечето резолвери на операционните системи, приема октет с водеща нула като осмично число, така че 010.1.1.1 означава 8.1.1.1 за тези програми. Нито едно предположение за десетичен или осмичен запис не може да съвпадне с начина на прочитане от всички програми, затова инструментът не приема нито едното. По същата причина се отказва и префикс, записан като /08.
Броят на хостовете се намалява с две. Някои калкулатори показват размера на блока без обработка като брой хостове. Този инструмент следва RFC 950: във всеки блок от /0 до /30 частта за хост с нули навсякъде обозначава мрежата, а частта с единици навсякъде е широковещателният адрес, така че и двата адреса се изключват и /24 има 254 използваеми хоста, а не 256.
/31 има два използваеми хоста. По-старите текстове, написани преди RFC 3021 (публикуван през 2000), считат /31 за неизползваем, тъй като изваждането на двата резервирани адреса оставя нула. RFC 3021 премахва и двете резервации за връзки от точка до точка, а маршрутизаторите поддържат това от десетилетия, затова инструментът отчита 2 използваеми хоста и няма широковещателен адрес.
Приема се всеки префикс от /0 до /32. /0 е валиден блок, обхващащ цялото пространство IPv4, както 0.0.0.0/0 се появява в таблиците за маршрутизация като маршрут по подразбиране.
Само IPv4. IPv6 (RFC 4291) използва адреси с 128 бита и различна нотация и не попада в обхвата на този инструмент. Инструментът също не обозначава диапазони със специално предназначение, като частни адреси или адреси за обратна връзка (RFC 6890); той отчита само аритметиката на адресите.
Често задавани въпроси
Колко използваеми хоста има /24? 254. /24 оставя 8 бита за хостове, което дава 2⁸ = 256 адреса. Два са резервирани: мрежовият и широковещателният адрес. За устройства остават 254.
Какво представлява маската със заместващи символи? Побитовата инверсия на маската на подмрежата. Там, където маската на подмрежата има 1, маската със заместващи символи има 0, и обратно. За маската 255.255.255.0 маската със заместващи символи е 0,0,0,255. Списъците за контрол на достъпа на много маршрутизатори използват маски със заместващи символи, за да описват адресите, към които се отнася дадено правило.
Защо /31 не показва широковещателен адрес? /31 съдържа само два адреса. Ако единият се резервира за мрежата, а другият за широковещателен адрес, няма да остане нищо, затова RFC 3021 определя /31 като връзка от точка до точка, при която и двата адреса са хостове и няма широковещателен адрес. Калкулаторът отчита 2 използваеми хоста и отбелязва широковещателния адрес като неприложим.
Защо 010.1.1.1 се отхвърля, вместо да се прочете като 10.1.1.1? Тъй като операционните системи не са единодушни относно обикновения десетичен прочит. POSIX inet_aton прочита октет с водеща нула като осмично число, така че 010 означава 8 за повечето системи. Отказът на входа е единственият отговор, който не може незабелязано да се различава от поведението на собствената машина на потребителя.
Каква е разликата между общия брой адреси и използваемите хостове? Общият брой адреси е пълният размер на блока, 2 на степен (32 минус дължината на префикса). Използваемите хостове са този брой минус двата резервирани адреса, с изключение на /31 (и двата са използваеми) и /32 (единственият адрес е хостът).
Какво означава мрежовият адрес на 192.168.1.10/24? Той е 192.168.1.0 и се получава, като се запазят първите 24 бита на адреса, а битовете за хоста се зададат на нула. Той обозначава подмрежата като цяло и не може да бъде присвоен на устройство.
Източници
- Postel, J. „RFC 791: Internet Protocol.“ IETF, 1981.
- Mogul, J. и J. Postel. „RFC 950: Internet Standard Subnetting Procedure.“ IETF, 1985.
- Mogul, J. „RFC 919: Broadcasting Internet Datagrams.“ IETF, 1984.
- Fuller, V. и T. Li. „RFC 4632: Classless Inter-domain Routing (CIDR).“ IETF, 2006.
- Retana, A. и др. „RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links.“ IETF, 2000.