none
Новые DHCP адреса RRS feed

  • Вопрос

  • Коллеги,

    Сменил вечером пул выдаваемых адресов (DHCP сервер - Cisco), с переходом в новую сеть. Утром пользователи включили машины - а IP адреса остались старые.  Новый адрес Windows получает только после "ipconfig /release ; ipconfig /renew".

    Почему так?

    Например Unix при загрузке шлёт сперва DHCPREQUEST в попытке получить свой старый адрес, естественно его не получает и шлёт уже DHCPDISCOVER, и получает новый адрес в новой сети. IMHO это правильное поведение, а не так как в Windows.

    Как вот теперь сказать сотне Windows-ов переполучить адреса? Ждать окончания аренды не могу.

Все ответы

  • свитч перезагрузите.


    Абсолютно нормальный парень...
  • Мне кажется, проблема примерно в следующем:

    Зависит от того, что случилось со старым пулом и как DHCP-сервер обрабатывает запросы продолжения старой аренды, отвечает ли он DHCPNAck.

    При загрузке клиент Windows пытается продлить аренду, если она ещё не истекла. Если DHCP-сервер не отвечает, он пытается обнаружить default gateway. Если обнаружение прошло успешно, клиент успокаивается и продолжает использовать текущую аренду.

    Вариант номер раз - сменить gateway, клиенты со старой арендой начнут производить DHCP-процесс с нуля.
    Вариант номер два - уточнить настройки DHCP-сервера, чтобы он отвечал отказами на попытки продлить старые аренды.

    Безусловно, срок аренды планировать нужно было заранее для удобной переконфигурации.

    Отвечающий
  • свитч перезагрузите.

    Смоделировал отключением пачкорда от компьютера. Адрес как был старый, так и остался. А что должно было произойти и главное почему?
  • Это не моделирование....Именно в свитче остались arp привязки ....необходимо перезагрузить свитч и проблема будет решена.
    Ситуация была у меня схожая с Вашей, ребут свитча - проблема исчезла.


    Абсолютно нормальный парень...
  • Мне кажется, проблема примерно в следующем:

    Зависит от того, что случилось со старым пулом и как DHCP-сервер обрабатывает запросы продолжения старой аренды, отвечает ли он DHCPNAck.

    Однако Unix машины и принтсервера повели себя правильно (т.е. как ожидалось) вне зависимости от вышеизложенных факторов.


    При загрузке клиент Windows пытается продлить аренду, если она ещё не истекла. Если DHCP-сервер не отвечает, он пытается обнаружить default gateway. Если обнаружение прошло успешно, клиент успокаивается и продолжает использовать текущую аренду.

    Вариант номер раз - сменить gateway, клиенты со старой арендой начнут производить DHCP-процесс с нуля.

    А что такое "обнаружить default gateway" и "сменить gateway"? Это ведь просто опции в DHCP. Разумеется, с переводом пула в новую сеть и адрес default-router выдаётся другой. Проблема в том, что Windows не хочет брать.

    Вариант номер два - уточнить настройки DHCP-сервера, чтобы он отвечал отказами на попытки продлить старые аренды.

    Безусловно, срок аренды планировать нужно было заранее для удобной переконфигурации.

     

    Уточнить настройки вряд ли возможно, DHCP в IOS довольно простенький. Насчёт планировать срок аренды - кто же знал, что Windows себя так поведет.
  • Вообще MS говорит о подобной ситуации :

    "When a DHCP client is moved from one subnet to another, it may fail to obtain a valid IP address on the new subnet."

    Resolution:

    To work around this problem, do one of the following methods:
    • Do not use IP addressing schemes that overlap.
    • Run the following commands after you move the client to a new segment:
      Ipconfig /Release
      Ipconfig /Renew
    Почему так происходит и как этого избежать написано в этой же статье.
    http://support.microsoft.com/kb/167014



    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • Вряд ли у UNIX-машин тот же файл tcpip.sys, что и на Windows .) вот и причина, почему ведут себя по-разному. Допускаю, что у них нет реализации проверки default gateway. Я этого просто не знаю.

    Обнаружение производится стандартным ARP-запросом разрешения IP-адреса в MAC. Машина же знает, какой gateway был выдан в аренде и проверяет, жив ли gateway. Если ARP прошёл успешно (получен MAC компьютера, у которого IP-адрес gateway-я), то аренда считается разрешённой, но в рамках её срока жизни (!).

    Вы кагбэ расскажите более подробно: "у меня был такой-то пул с такими-то параметрами. Я сделал другой пул с такими-то параметрами". Вдруг что-то нарисуем.. Где-то же есть беда. Заодно, если есть возможность, перехватите DHCP-трафик, генерируемый и получаемый станцией при инициализации IP.

    Отвечающий
  • Это не моделирование....Именно в свитче остались arp привязки

    Фантастика какая-то. Максимум там могла остаться таблица привязки MAC адресов к портам.

    ....необходимо перезагрузить свитч и проблема будет решена.
    Перегрузил ближайший к компу свич, адрес остался старый.
  • Фантастика какая-то. Максимум там могла остаться таблица привязки MAC адресов к портам.Перегрузил ближайший к компу свич, адрес остался старый.

    Просто перезагрузка свича действительно не поможет....

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • Можно попробовать запретить выдачу адресов из старого пула.... Например добавив исключения.
    После этого перегрузить компы.
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • http://support.microsoft.com/kb/167014

    "If the DHCP server remains silent, the client assumes the previous address is still valid and keeps it."

    Вот тут похоже и засада. Как бы теперь, возвращаясь к изначальному вопросу, заставить все виндовые машины переполучить адреса. Заставить IOS посылать DHCPNACK в этой ситуации (запрос совершенно левого с его точки зрения адреса) видимо нельзя, он будет отмалчиваться.

  • http://support.microsoft.com/kb/167014

    "If the DHCP server remains silent, the client assumes the previous address is still valid and keeps it."

    Вот тут похоже и засада. Как бы теперь, возвращаясь к изначальному вопросу, заставить все виндовые машины переполучить адреса. Заставить IOS посылать DHCPNACK в этой ситуации (запрос совершенно левого с его точки зрения адреса) видимо нельзя, он будет отмалчиваться.

    См на один пост выше :)

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • Можно попробовать запретить выдачу адресов из старого пула.
    Из старого пула ничего и не выдаётся. Нет его уже.
  • можно собрать простенький bat-файл с командой ipconfig /release & ipconfig /renew , который будет выполняться при запуске клиентов. После чего перезагрузить машины удаленно. Это наиболее простой вариант.
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    Модератор
  • Создайте, только запретите выдачу адресов из этого пула....
    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • можно собрать простенький bat-файл с командой ipconfig /release & ipconfig /renew , который будет выполняться при запуске клиентов. После чего перезагрузить машины удаленно. Это наиболее простой вариант.
    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    Не подойдет этот вариант, клиенты скорее всего сейчас недоступны по сети....

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • А вы на одной из машин добавьте вручную адрес из старого пула - и привет, всё достижимо. Была бы только аутентификация!

    Как вариант, временно добавить старый адрес контроллеру домена и связываться с клиентами с него.
    Отвечающий
  • можно собрать простенький bat-файл с командой ipconfig /release & ipconfig /renew , который будет выполняться при запуске клиентов. После чего перезагрузить машины удаленно. Это наиболее простой вариант.
    Не подойдет этот вариант, клиенты скорее всего сейчас недоступны по сети....
    Вполне доступны по старым адресам. На них люди сидят и работают.

    Как раз сейчас занимаемся написанием доменного logon скрипта с release - renew внутри. Но тут есть тонкость - после release сеть выключается и выполнение скрипта прерывается.

    Жаль что в at нет функционала "выполнить задание через 2 минуты от настоящего момента". Можно было бы в доменный скрипт засунуть отложенную команду.

    Создайте, только запретите выдачу адресов из этого пула.

    Я уже сказал, что нет больше этого пула и никакие адреса из него не выдаются. Есть только secondary адрес на интерфейсе роутера из этой старой сети.

  • можно воспользоваться sleep в bat файле самом.


    Абсолютно нормальный парень...
  • можно воспользоваться sleep в bat файле самом.

     

    Всё это достаточно очевидно, но толком не работает. Пробовал разное - и отдельный сценарий форкать через start, и на локальный диск предварительно копировать. Результат в лабе не утешает - работает через два раза на третий. Явно race condition какой-то при выполнении сценария.


  • Как раз сейчас занимаемся написанием доменного logon скрипта с release - renew внутри. Но тут есть тонкость - после release сеть выключается и выполнение скрипта прерывается.

    Распространите bat-файл (я не зря упомянул именно о нем, а не о скрипте) по сети логон скриптом, после чего в скрипте дайте команду на его выполнение. В этот момент от наличия/отсутствия подключения к сети ничего зависеть не будет - скрипт просто даст толчок к выполнению команды.

    Все вышесказанное является моим личным мнением, не имеющим отношения к корпорации Майкрософт
    Модератор