Вопрос или проблема
Я в процессе изучения развертывания IPv6 в своей сети. Я изменил рекламируемую подсеть, и теперь мои ПК с Windows имеют IP-адреса из новой и старой сети.
Мне удалось сбросить адаптер, выключив кабель, но это, конечно, не долгосрочное решение.
Как я могу заставить Windows забыть “неправильные” IP-адреса?
Я использую Windows 7 и Windows Server 2008 в качестве клиентов, а radvd на squeeze в качестве маршрутизатора.
Я протестировал ipconfig
с параметрами /release
и /release6
, но оба не влияют на автоматизированные адреса.
IPv6 имеет более явную поддержку миграции IP-адресов. Изменение вашей рекламируемой подсети должно быть прозрачным для ваших пользователей. Когда новый адрес становится доступным, новые подключения будут использовать этот новый IP-адрес. Старые подключения по-прежнему будут использовать старый адрес. В конечном итоге адрес должен быть удален, но не прежде чем все старые подключения перестанут использовать этот адрес.
Вам может потребоваться убедиться, что нет подключений, слушающих на старом IP-адресе (netstat вам в помощь).
В любом случае, пока старый адрес не вызывает никаких проблем, это не должно быть проблемой. Какой метрический показатель у этого адреса? Используется ли он для новых подключений?
Вам нужно удалить все кэшированные/автоматически настроенные настройки IPv6, а затем позволить им повторно распространиться. Команда в Windows:
netsh int ipv6 reset
Как только вы измените префикс, который ваш маршрутизатор рекламирует, адреса в старой подсети будут устаревшими и в конечном итоге удалены без какого-либо вмешательства с вашей стороны. Адрес будет устаревшим в течение разницы между предпочтительным и действительным сроками жизни, рекламируемыми вашим маршрутизатором. (В моей сети это составляет 90 минут, но это зависит от того, как вы настроили radvd.)
Чтобы увидеть устаревшие адреса на ваших интерфейсах сети Windows, вы можете использовать netsh interface ipv6 show address
или PowerShell Get-NetIPAddress -AddressFamily IPv6
.
PowerShell с правами администратора
Показать IP-адрес: netsh interface ipv6 show address
Удалить IP/использовать имя интерфейса: netsh interface ipv6 delete address Ethernet0 200x:x:x:x:x:x:x:x
netsh interface ipv6 delete address (индекс интерфейса или имя) (ipv6address)
Показать маршруты: netsh interface ipv6 show route
Удалить маршрут: netsh interface ipv6 route delete 200x:x:x:x::/64 Ethernet0 store=persistent
netsh interface ipv6 route delete (ipv6prefix::/64) (индекс или имя интерфейса)
В командной строке,
ipconfig /release
Синтаксис и параметры для использования утилиты диагностики Ipconfig для сетевых соединений
Единственный способ, который сработал для меня, – это физически отключить сетевой кабель, а затем снова подключить его.
Ответ или решение
Как удалить автоматически настроенные адреса IPv6 в Windows 7/2008
Настройка и миграция между сетями IPv6 могут встретить непростые проблемы, особенно когда устройства остаются с устаревшими автоматическими IP-адресами. В этом посте рассмотрим, как удалить конфликты адресов IPv6 и решить проблемы с устаревшими адресами в операционных системах Windows 7 и Windows Server 2008.
Понимание проблемы
Вы заметили, что после изменения рекламируемой подсети ваши компьютеры под управлением Windows по-прежнему имеют адреса из старой подсети наряду с новыми конфигурациями. Это связано с тем, что Windows использует механизм автоматического конфигурирования адресов IPv6 (Stateless Address Autoconfiguration, SLAAC), и старые адреса могут оставаться в кэше до тех пор, пока не истекут их «периоды жизни» (preferred и valid lifetimes). Понимание этих параметров и влияние на удаление старых адресов — это ключ к решению проблемы.
Устранение проблемы
-
Проверка текущих адресов
Сначала вам нужно проверить текущие настроенные IPv6 адреса. Для этого можно использовать следующие команды в командной строке под административными правами:
netsh interface ipv6 show address
или PowerShell:
Get-NetIPAddress -AddressFamily IPv6
-
Удаление устаревших адресов
Если вы видите адреса, которые должны быть удалены, вы можете использовать следующую команду для их удаления:
netsh interface ipv6 delete address "имя_интерфейса" "200x:x:x:x:x:x:x:x"
Убедитесь, что вы заменили "имя_интерфейса" на актуальное название вашего сетевого адаптера и "200x:x:x:x:x:x:x:x" на фактический устаревший адрес IPv6.
-
Сброс настроек IPv6
Если удаление адресов не дало результатов, выполните сброс конфигурации IPv6 на вашем устройстве:
netsh int ipv6 reset
Эта команда сбросит все настройки IPv6, что поможет устранить проблемы с кэшированием старых адресов.
-
Удаление маршрутов
В некоторых случаях могут потребоваться также действия с маршрутизацией. Для проверки и удаления старых маршрутов используйте команды:
netsh interface ipv6 show route
Для удаления маршрута:
netsh interface ipv6 route delete "200x:x:x:x::/64" "имя_интерфейса"
-
Проверка состояния сетевого подключения
После выполнения всех вышеперечисленных шагов рекомендуется перезагрузить сетевое соединение. Для этого физически отключите кабель сети и снова подключите его. Это также поможет обновить конфигурацию и получить новые адреса.
Заключение
Теперь вы имеете полное представление о том, как удалить автоматически настроенные адреса IPv6 в Windows 7 и Windows Server 2008. Следуя этим шагам, вы сможете успешно избавиться от старых IP-адресов, которые могут создавать проблемы в сети. Учтите, что если устаревшие адреса не вызывают проблем с уровнем подключения, их можно оставить до истечения срока действия, но это может привести к путанице в будущем. Систематический подход и регулярный контроль конфигураций сети позволяют избежать множества проблем с IP-адресацией.