Почему там знак процента '%' в адресе IPv6?

Я использую .NET Framework классы для получения IP-адресов для моей машины.

Dns.GetHostAddresses(Dns.GetHostName())

У меня есть адаптер VirtualBox, который имеет и IPv4 и адрес IPv6. С помощью кода.NET я получаю адрес IPv6 как fe80::71a3:2b00:ddd3:753f%16

Заметить %16 в конце?

Однако, если я запрашиваю то же использование WMI, Я получаю адрес как 'fe80:: 71a3:2b00:ddd3:753f'

Так, эти %16 имеет специальное значение?

Править:

У меня просто были еще некоторые наблюдения об этом. И они соответствуют вполне прилично тому, что Stephen Jennings сказал в своем ответе.

Я установил VMware для наблюдения, какой адрес IPv6 он выпустил. Адреса были: fe80:: 3dd0:7f8e:57b7:34d5%19

fe80:: b059:65f4:e877:c40%20

Очевидно, числа после % не являются некоторым шестнадцатеричным представлением. Я проверил все свойства, доступные для использования сетевого адаптера Wmi, и нашел, что числа - точно то же как свойство InterfaceIndex каждого сетевого адаптера. Согласно MSDN, это однозначно определяет каждый сетевой адаптер, и это свойство было представлено в Vista.

То, что все еще смутило меня, было то, почему будет класс IPAddress позволять Вам создавать IP-адрес в том формате, если это не было допустимо. Ответ был предоставлен Stephen. Число является идентификатором объема. IPAddress имеет конструктора, который принимает адрес И идентификатор объема.

О, и все эти три сетевых адаптера были локальной ссылкой. Подтвержденный это через ipconfig

Круто. Это было интересно!!

127
задан 22.03.2013, 04:04

2 ответа

Число после '%' является идентификатором объема.

IPv6 определяет по крайней мере три объема достижимости для адресов:

  1. Глобально адресуемый. Это - адрес IPv6, данный Вам Вашим ISP. Это доступно для использования в общедоступном Интернете.

  2. Локальный для ссылки. Это подобно 169.254. Диапазон X.X. Это - адрес, который компьютер присваивает сам для упрощения местных связей. Эти адреса не становятся направленными вокруг в общедоступном Интернете, потому что они не глобально уникальны.

  3. Локальный для узла. Это - адрес, который определяет локальный интерфейс, подобный 127.0.0.1. В основном это - адрес:: 1.

Microsoft опубликовала эту статью, описывающую обращение IPv6, которое является меньше всего запутывающей статьей, которую я нашел. Статья указывает, что присутствие идентификатора объема в Вашем адресе означает, что это - локальный для ссылки адрес. Можно также сказать, что это локально для ссылки, потому что адрес начинается fe80.

Ясная, просто понятая информация об этой теме, кажется, редка, таким образом, я помещаю остальную часть этого вместе на основе моего лучшего понимания RFC 4007 и другой информации там.

Компьютер может иметь несколько локальных для ссылки адресов, каждого с различным объемом. Идентификатор объема указывает, для какого объема адрес. Например, вообразите сценарий компьютера с двумя NICs, каждого с локальным для ссылки адресом в различных сетях. При попытке отправить что-то в другой адрес, начинающийся fe80, как компьютер будет знать который NIC отослать на? Идентификатор объема, кажется, решение для этого.

134
ответ дан 07.12.2019, 07:48

Адреса IPv6 с префиксом fe80::/64 являются локальными для ссылки адресами, которые создаются путем объединения того префикса с аппаратным адресом сетевого устройства, 71a3:2b00:ddd3:753f в примере. (Аналог в IPv4 является 169.254.0.0/16.), Так как префикс является тем же для всех локальных для ссылки адресов на машине, маршрутизация, возможно, иногда должна была бы знать, к какому интерфейсу Вы обращаетесь. И именно это указывает число после процента, названного индексом зоны. Специфические особенности зависят от операционной системы: В Windows, %16 интерфейсный номер 16; на Linux, например, Вы могли бы видеть что-то как %eth0.

Некоторые инструменты или API будут считать этот индекс зоны неважным или неявным в их целях. Например, на Linux ifconfig инструмент не показывает его, потому что это очевидно, которые взаимодействуют через интерфейс, адрес принадлежит. Но в целом это должно быть принято во внимание.

21
ответ дан 07.12.2019, 07:48

Теги

Похожие вопросы