Не до смеха: IP-адреса APIPA могут замедлить работу вашей сети
Вы знаете эти забавные IP-адреса, начинающиеся с 169.254, которые вы время от времени видите в системах или в DNS? У них есть еще более забавное название — APIPA, что означает автоматическая частная IP-адресация. И хотя они могут показаться забавными и безобидными, на самом деле они могут вызывать проблемы в вашей сети, начиная от задержки входа в систему и заканчивая периодическими сбоями. Скорее всего, у вас есть по крайней мере некоторые из них в вашей сети, вызывающие проблемы у ваших пользователей. В этом посте мы рассмотрим, что на самом деле представляет собой IP-адрес APIPA, для чего он предназначен, почему это происходит в вашей сети и что вы можете с этим поделать.
Что такое АПИПА?
IETF зарезервировала блок адресов IPv4 169.254.0.0/16 для использования для назначения IP-адресов локального канала и кодифицировала это в RFC 3927. Они также охватывают локальную адресацию IPv6 в RFC 2462 и выделили fe80::/64. подсеть к этому, но это не используется для APIPA.
Почему существует APIPA?
Microsoft включила поддержку APIPA в свои операционные системы, начиная с Windows 98, с благородным намерением предоставить системам возможность взаимодействовать друг с другом в локальной сети, когда таких служб, как DHCP, не существовало. У Microsoft есть статья базы знаний 220874, в которой определены три случая, когда APIPA может быть полезен.
- Нет предыдущего IP-адреса и нет DHCP-сервера
- Предыдущий IP-адрес и отсутствие DHCP-сервера
- Срок аренды истекает, а DHCP-сервер отсутствует
Любой хост Windows сегодня автоматически предоставит адрес APIPA, если верно следующее.
- Работает служба DHCP-клиента, которая является настройкой по умолчанию и также необходима для динамической регистрации в DNS.
- Сетевая карта имеет ссылку, но не имеет статически настроенного IP-адреса.
- Широковещательные рассылки DHCP Discover не получают ответа.
Когда это произойдет, операционная система выберет случайный IPv4-адрес в диапазоне 169.254.0.0/16, ARP, и если она не получит ответа на запрос ARP, предоставит это на соответствующей сетевой карте. Если операционная система имеет другую сетевую карту, связанную с действительной информацией, и все остальные значения по умолчанию установлены, она зарегистрирует не только свой действительный адрес, но и адрес APIPA в DNS.
Что хорошего в этом?
Честно? Помимо лабораторий, специально предназначенных для обучения APIPA, я реализовал его только один раз, еще в 2000 году, для полевой станции, у которой было несколько машин в рабочей группе и не было никаких сетевых ресурсов, кроме машины с общим подключением к Интернету. Без сервера казалось приемлемым способом позволить машинам подключаться друг к другу и обнаруживать прокси через WPAD. Меньше чем через год я установил сервер со службами DHCP, службами DNS, файлами и принтерами и многим другим. Я никогда не видел, чтобы это было реализовано где-либо еще преднамеренно и с хорошим эффектом. Но если у вас есть, пожалуйста, оставьте комментарий ниже и поделитесь некоторыми знаниями!
Почему это происходит со мной?
АПИПА? В моей сети? Это более вероятно, чем вы думаете. Задайте себе следующие вопросы.
- У моих серверов несколько сетевых карт?
- Подключает ли команда моего центра обработки данных мои серверы к своим коммутаторам?
- Есть ли какая-нибудь VLAN, в которой я не запускаю DHCP?
- Поддерживает ли мой DNS динамические обновления?
Если вы ответили утвердительно на все четыре вопроса, то, вероятно, у вас есть системы, которые не только имеют адреса APIPA, но и зарегистрировали их в DNS. А это означает, что при циклическом переборе DNS клиент иногда пытается подключиться к полностью недостижимому адресу 169.254.yz, и эта попытка подключения должна истечь по времени, прежде чем он попытается ввести действительный IP-адрес..адрес Чем больше ресурсов, таких как контроллеры домена, у вас есть для регистрации адресов APIPA, тем чаще это может происходить. И, по крайней мере, время от времени клиент будет получать несколько APIPA в ответе DNS, прежде чем он получит действительный адрес, из-за чего любое требуемое соединение будет занимать еще больше времени.
Когда дело доходит до функций, связанных с AD, клиенты, чей IP-адрес связан с сайтом Active Directory, никогда не увидят в этом проблемы, поскольку 169.254/16 не будет связан с сайтом. Но клиенты в подсетях, не связанных с сайтом, скорее всего, получат адрес APIPA в ответ на запрос контроллера домена, что приведет к задержкам при входе в систему, обработке сценариев входа, обработке объектов групповой политики и т. д. И кто из нас может утверждать, что ВСЕ IP-подсети, используемые в нашей сети, связаны с действительным сайтом AD? Действия, не зависящие от сайта, такие как подключение к общим ресурсам или подключенным дискам, одинаково влияют на всех, причем вероятность зависит от количества имен, зарегистрированных в DNS. Один сервер по имени с одним хорошим сетевым адаптером и одним сетевым адаптером APIPA будет регистрировать каждый IP-адрес в DNS, поэтому клиенты будут пытаться использовать адрес APIPA в половине случаев. В конце концов они потерпят неудачу и попробуют другой вариант, так что это будет проявляться в том, что все будет «медленно», а не неправильно сконфигурировано.
Что я должен делать?
Во-первых, посмотрите в DNS, есть ли у вас зарегистрированные адреса 169.254/16. Если вы это сделаете, вы должны сначала устранить источник регистрации APIPA, а затем удалить недействительную запись из DNS. Как вы можете устранить это? Один из следующих должен работать, в зависимости от ваших потребностей.
- Отключите все сетевые карты на сервере, которые подключены, но не используются.
- Назначьте статический действительный IP-адрес каждому сетевому адаптеру на сервере.
- Разверните области DHCP для каждой подсети.
- Отключите поведение APIPA на всех ваших серверах, развернув раздел реестра, задокументированный здесь.
Разрушит ли APIPA вашу сеть? Нет, конечно нет. Приведет ли это к периодическим проблемам и общему ощущению медлительности? Абсолютно. Следует ли вам заняться этим вопросом? Еще бы! С приведенной выше информацией и имеющимися у вас вариантами это должно быть легко исправить, и все улучшится.
Иди, сделай это!
, Barcex