Вопрос или проблема
У меня есть следующие IP-адреса, которые я должен установить, чтобы разрешить подключение к нашей системе:
172.22.254.67
172.22.254.68
Я знаю, что могу закодировать 172.22.254.67/32 и 172.22.254.68/32, и /32 означает точный IP, но поле, которое у меня есть, не позволяет ввести такое количество символов в строке.
Если я закодирую 172.22.254.0/24, это позволит подключиться слишком большому числу IP-адресов. CIDR запутанный.
Я не знаю, могу ли я закодировать 172.22.254.67/2, чтобы разрешить подключение обоих IP-адресов.
172.22.254.64/29 – это наименьший диапазон, который охватывает оба этих IP-адреса, но он все равно разрешит больше, чем вам нужно, так что вам придется использовать два адреса /32.
Чтобы понять, почему, посмотрите на числа в двоичном виде:
66 это 01000010
67 это 01000011
68 это 01000100
69 это 01000101
Таким образом, вам нужно иметь 3 свободных бита, чтобы отделить 67 и 68 от их соседей. 172.22.254.67/31 будет включать .66 и .67; 172.22.254.68/31 будет включать .68 и .69.
Ответ или решение
Чтобы разобраться с вашим запросом на использование CIDR-нотации для указанных IP-адресов 172.22.254.67 и 172.22.254.68, важно учитывать несколько ключевых моментов.
Анализ требования
Вы правильно отметили, что использование CIDR-нотации с маской /32, что соответствует каждому конкретному IP-адресу (172.22.254.67/32 и 172.22.254.68/32), в вашем случае невозможно из-за ограничения по количеству символов в соответствующем поле. В то же время использование более широкой маски, например, 172.22.254.0/24, откроет доступ ко всем 256 IP-адресам в этом диапазоне, что также не соответствует вашему требованию.
Понимание CIDR и бинарной системы
CIDR (Classless Inter-Domain Routing) позволяет более гибко подходить к распределению адресов. Чтобы понять, какую маску использовать, рассмотрим бинарные представления ваших адресов:
- 172.22.254.67 = 10101100.00010110.11111110.01000011
- 172.22.254.68 = 10101100.00010110.11111110.01000100
Из бинарного представления видно, что последние три бита адреса различаются. То есть:
- 67 = 01000011
- 68 = 01000100
Это значит, что для идентификации двух IP-адресов, нам нужно установить маску, которая оставляет три последних бита свободными. Однако, если мы попробуем использовать маску, например, /31 (которая позволит только два IP-адреса), это включает соседние адреса, что вам не нужно.
Оптимальное решение
Ваша ссылка на маску /29 (172.22.254.64/29) верна. Она включает диапазон от 172.22.254.64 до 172.22.254.71, что удовлетворяет ваши потребности, но также включает дополнительный адрес 172.22.254.64 и 172.22.254.65, которые, возможно, вам не нужны.
Так как нет возможности сократить диапазон до минимального, учитывая только эти два IP, единственным приемлемым решением будет использование двух отдельных записей в формате /32, если место позволяет. Однако, если у вас совершенно исключена возможность подключения двух IP, можно использовать /29, понимая, что он откроет доступ и к другим.
Заключение
Если доступ к меньшему количеству IP-адресов критичен для вашей системы, разумно будет планировать изменение конфигурации, позволяющее вводить более двух адресов. В противном случае, стоит рассмотреть возможность использования маски /29 с учётом имеющихся ограничений.
Если возникнут дополнительные вопросы, пожалуйста, дайте знать.