Хороший разработчик работает с инфраструктурой. Кто-то чаще, кто-то реже, но все сталкиваются с этим. Часть инфраструктурных задач связана с сетью. Например, мы хотим создать новую
VPC (Virtual Private Cloud) на AWS и разместить там наши виртуальные сервера. Когда мы создаем VPC, нужно указать пул IP адресов, которые могут участвовать в этой сети, для этого нас просят указать CIDR блок.CIDR (Classless inter-domain routing) нотация позволяет нам компактно указать какие IP адреса мы выделяем. Например 10.10.10.10/24 говорит нам, что можно выделять IP с 10.10.10.0 по 10.10.10.255, то есть 256. Но почему так? Я постоянно забываю принцип, по которому из строки можно получить пул IP. Давайте разберемся, может после этого и я запомню.💡Дисклеймер — я не сетевой инженер, а практикующий разработчик. Это мой рекап данного топика. В комментариях укажут нестыковки, спасибо за это. Уверен, что информации в этом посте достаточно для понимания общей картины.
Теперь про сам
IP — IP это четыре байта байт.байт.байт.байт , каждый байт состоит из восьми бит, их можно представить как десятичное число. Байт=11000000 это 192. Таким образом, мы понимаем, что IP это четыре раза по 8 бит, то есть 32 бита.10.10.10.10 = 00001010.00001010.00001010.00001010.Теперь возьмемся за
/24 , 24 в этом случае это количество бит, начиная слева, которые НЕЛЬЗЯ менять, когда мы хотим получить новый IP. Эти биты являются адресом подсети. Т.е. когда мы выделяем новый IP из этого блока, то мы работаем с такой схемой: 00001010.00001010.00001010.*. У нас осталось 8 бит, чтобы выделять новые IP. В эти 8 бит поместится ровно 256 разных значений.Теперь другой пример, мы хотим, чтобы наша сеть была маленькой, чтобы в ней было максимум 8
IP. Как мы это сделаем? Зафиксируем больше битов! 10.10.10.10/29. Тогда мы можем выделать IP с 10.10.10.8 по 10.10.10.15.⬛️ Еще раз — когда нужно указать подсеть, мы используем
CIDR. Если вы вдруг (опять) забыли, как это работает, то используйте онлайн калькулятор https://cidr.xyz .#хардскиллы