структура MIB_IPINTERFACE_ROW
Структура MIB_IPINTERFACE_ROW хранит сведения об управлении интерфейсом для определенного семейства IP-адресов в сетевом интерфейсе.
typedef struct _MIB_IPINTERFACE_ROW {
ADDRESS_FAMILY Family;
NET_LUID InterfaceLuid;
NET_IFINDEX InterfaceIndex;
ULONG MaxReassemblySize;
ULONG64 InterfaceIdentifier;
ULONG MinRouterAdvertisementInterval;
ULONG MaxRouterAdvertisementInterval;
BOOLEAN AdvertisingEnabled;
BOOLEAN ForwardingEnabled;
BOOLEAN WeakHostSend;
BOOLEAN WeakHostReceive;
BOOLEAN UseAutomaticMetric;
BOOLEAN UseNeighborUnreachabilityDetection;
BOOLEAN ManagedAddressConfigurationSupported;
BOOLEAN OtherStatefulConfigurationSupported;
BOOLEAN AdvertiseDefaultRoute;
NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
ULONG DadTransmits;
ULONG BaseReachableTime;
ULONG RetransmitTime;
ULONG PathMtuDiscoveryTimeout;
NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
ULONG LinkLocalAddressTimeout;
ULONG ZoneIndices[ScopeLevelCount];
ULONG SitePrefixLength;
ULONG Metric;
ULONG NlMtu;
BOOLEAN Connected;
BOOLEAN SupportsWakeUpPatterns;
BOOLEAN SupportsNeighborDiscovery;
BOOLEAN SupportsRouterDiscovery;
ULONG ReachableTime;
NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
BOOLEAN DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;
Семейство
Семейство адресов. Возможные значения семейства адресов перечислены в файле заголовка Winsock2.h. Обратите внимание, что значения для семейства адресов AF_ и констант семейства протоколов PF_ идентичны (например, AF_INET и PF_INET), поэтому можно использовать либо константу.В Windows Vista и более поздних версиях операционных систем Windows возможные значения для этого элемента определяются в файле заголовка Ws2def.h. Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Netioapi.h, и Ws2def.h не следует использовать напрямую.
В настоящее время поддерживаются следующие значения:
AF_INET
Семейство адресов IPv4.AF_INET6
Семейство адресов IPv6.AF_UNSPEC
Семейство адресов не указано.
InterfaceLuid
Локальный уникальный идентификатор (LUID) для сетевого интерфейса.InterfaceIndex
Значение локального индекса для сетевого интерфейса. Это значение индекса может изменяться, когда сетевой адаптер отключен, а затем включен или при других обстоятельствах и не должен считаться постоянным.MaxReassemblySize
Максимальный размер фрагментированного IP-пакета (в байтах). В настоящее время этот элемент имеет нулевое значение и зарезервирован для использования в будущем.InterfaceIdentifier
Зарезервировано для последующего использования. В настоящее время для этого элемента задано значение 0.MinRouterAdvertisementInterval
Минимальный интервал объявления маршрутизатора в миллисекундах для этого IP-интерфейса. Этот член по умолчанию использует значение 200 для IPv6. Этот элемент применим, только если для элемента AdvertisingEnabled задано значение TRUE.MaxRouterAdvertisementInterval
Максимальный интервал объявления маршрутизатора в миллисекундах для этого IP-интерфейса. Этот элемент по умолчанию — 600 для IPv6. Этот элемент применим, только если для элемента AdvertisingEnabled задано значение TRUE.AdvertisingEnabled
Значение , указывающее, включена ли реклама маршрутизатора в этом IP-интерфейсе. По умолчанию для IPv6 объявление маршрутизатора включено только в том случае, если интерфейс настроен для работы в качестве маршрутизатора. По умолчанию для IPv4 объявление маршрутизатора отключено.ForwardingEnabled
Значение типа , указывающее, включена ли IP-пересылка в этом IP-интерфейсе.WeakHostSend
Значение , указывающее, включен ли режим отправки слабых узлов в этом IP-интерфейсе.WeakHostReceive
Значение , указывающее, включен ли в этом IP-интерфейсе слабый режим приема узла.UseAutomaticMetric
Значение типа , указывающее, использует ли IP-интерфейс автоматическую метрику.UseNeighborUnreachabilityDetection
Значение типа , указывающее, включено ли в этом IP-интерфейсе обнаружение недоступности соседа.ManagedAddressConfigurationSupported
Значение , указывающее, поддерживает ли IP-интерфейс конфигурацию управляемого адреса с помощью DHCP.OtherStatefulConfigurationSupported
Значение типа , указывающее, поддерживает ли ИНТЕРФЕЙС IP другую конфигурацию с отслеживанием состояния (например, конфигурацию маршрута).AdvertiseDefaultRoute
Значение типа , указывающее, объявляет ли IP-интерфейс маршрут по умолчанию. Этот элемент применим, только если для элемента AdvertisingEnabled задано значение TRUE.RouterDiscoveryBehavior
Тип поведения обнаружения маршрутизатора NL_ROUTER_DISCOVERY_BEHAVIOR .DadTransmits
Количество последовательных сообщений, отправляемых в то время как драйвер выполняет обнаружение повторяющихся адресов на предварительном ОДНОАДресном IP-адресе. Нулевое значение указывает, что обнаружение повторяющихся адресов не выполняется на предварительных IP-адресах. Значение 1 указывает на одну передачу без последующих повторных передач. Для IPv4 значение по умолчанию для этого элемента равно 3. Для IPv6 значение по умолчанию для этого элемента равно 1. Для IPv6 эти сообщения отправляются в виде запросов IPv6 Соседей (NS). Этот член определяется как DupAddrDetectTransmits в RFC 2462. Дополнительные сведения см. в разделе IPv6 "Автоматическая настройка адресов без отслеживания состояния".BaseReachableTime
База для случайного доступного времени в миллисекундах. Член описан в документе RFC 2461. Дополнительные сведения см. в разделе Обнаружение соседей для IP-адреса версии 6 (IPv6)".RetransmitTime
Время ожидания IPv6-соседа (NS) в миллисекундах. Член описан в документе RFC 2461. Дополнительные сведения см. в разделе Обнаружение соседей для IP-адреса версии 6 (IPv6)".PathMtuDiscoveryTimeout
Время ожидания обнаружения MTU пути в миллисекундах.LinkLocalAddressBehavior
Тип поведения локального адреса NL_LINK_LOCAL_ADDRESS_BEHAVIOR связи.LinkLocalAddressTimeout
Время ожидания локального IP-адреса связи в миллисекундах.ZoneIndices
Массив, указывающий часть зоны идентификаторов область.SitePrefixLength
Длина префикса сайта (в битах) IP-адреса интерфейса. Длина (в битах) префикса сайта или сетевой части IP-адреса интерфейса. Для IPv4-адреса любое значение, превышающее 32, является недопустимым. Для IPv6-адреса любое значение, превышающее 128, является недопустимым. Значение 255 обычно используется для представления недопустимого значения.Метрика
Метрика интерфейса. Обратите внимание, что фактическая метрика маршрута, используемая для вычисления предпочтительного маршрута, представляет собой суммирование смещения метрики маршрута, указанного в элементе Метрикиструктуры MIB_IPFORWARD_ROW2 и метрики интерфейса, указанной в этом элементе.NlMtu
Размер MTU сетевого уровня в байтах.Подключен
Значение типа , указывающее, подключен ли интерфейс к точке доступа к сети.SupportsWakeUpPatterns
Значение типа , указывающее, поддерживает ли сетевой интерфейс пробуждение по локальной сети.SupportsNeighborDiscovery
Значение типа , указывающее, поддерживает ли IP-интерфейс обнаружение соседей.SupportsRouterDiscovery
Значение типа , указывающее, поддерживает ли IP-интерфейс обнаружение соседей.ReachableTime
База для случайного доступного времени в миллисекундах. Элемент описан в RFC 2461. Дополнительные сведения см. в разделе Обнаружение соседей для IP-адреса версии 6 (IPv6).TransmitOffload
Набор флагов, указывающих возможности разгрузки передачи для ИНТЕРФЕЙСА IP. Структура NL_INTERFACE_OFFLOAD_ROD определяется в файле заголовка Nldef.h.ReceiveOffload
Набор флагов, указывающих возможности получения разгрузки для ИНТЕРФЕЙСА IP. Структура NL_INTERFACE_OFFLOAD_ROD определяется в файле заголовка Nldef.h.DisableDefaultRoutes
Значение типа , указывающее, следует ли отключить использование маршрута по умолчанию в интерфейсе. VPN-клиенты могут использовать этот элемент для ограничения раздельного туннелирования.
Члены Family, InterfaceLuid и InterfaceIndex однозначно идентифицируют запись MIB_IPINTERFACE_ROW.
Когда одноадресный пакет поступает на узел, IP-адрес должен определить, предназначен ли пакет локально (его назначение соответствует адресу, назначенному интерфейсу узла). Реализации IP-адресов, которые следуют модели слабого узла, принимают любой локально предназначенный пакет, независимо от интерфейса, на котором был получен пакет. Ip-реализации, которые соответствуют модели строгого узла, принимают только локально предназначенные пакеты, если адрес назначения в пакете соответствует адресу, назначенному интерфейсу, на котором был получен пакет. Модель слабого узла обеспечивает лучшее сетевое подключение. Однако это также делает узлы уязвимыми к сетевым атакам с несколькими сетями.
Текущая реализация IPv4 в операционных системах Windows Server 2003 и Windows XP использует модель слабого узла. Стек TCP/IP в Windows Vista и более поздних версиях операционных систем Windows поддерживает модель надежного узла для IPv4 и IPv6 и по умолчанию использует режим строгого узла (для элементов WeakHostReceive и WeakHostSend установлено значение FALSE). Вы можете настроить стек TCP/IP в Windows Vista и более поздних версиях для использования слабой модели узла.
Метрика — это значение, назначенное IP-маршруту для определенного сетевого интерфейса, которое определяет затраты, связанные с использованием этого маршрута. Например, метрика может быть оценена с точки зрения скорости связи, количества прыжков или задержки времени. Автоматическая метрика — это функция в Windows XP и более поздних версиях, которая автоматически настраивает метрику для локальных маршрутов, основанных на скорости канала. По умолчанию функция автоматической метрики включена ( параметр UseAutomaticMetric имеет значение TRUE) в Windows XP и более поздних версиях. Вы также можете вручную настроить эту функцию для назначения определенной метрики IP-маршруту.
Функция автоматической метрики может быть полезна, если таблица маршрутизации содержит несколько маршрутов для одного назначения. Например, на компьютере с сетевым интерфейсом 10 Мбит и сетевым интерфейсом 100 Мбит имеется шлюз по умолчанию, настроенный на обоих сетевых интерфейсах. Если параметр UseAutomaticMetric имеет значение TRUE, эта функция может заставить весь трафик, предназначенный для Интернета, например, использовать самый быстрый доступный сетевой интерфейс.
Метрика интерфейса, указанная в элементе Метрика , представляет только метрику для интерфейса. Полная метрика маршрутизации — это сочетание этой метрики интерфейса, добавленной в смещение метрики маршрута, указанное в элементе Metric MIB_IPFORWARD_ROW2 структуры записи маршрута, указанной в этом интерфейсе.
Непривилегированные одновременный доступ к нескольким сетям с разными требованиями к безопасности создает дыру в безопасности и позволяет непривилегированного драйвера случайно ретранслировать данные между двумя сетями. Типичный пример — одновременный доступ к виртуальной частной сети (VPN) и Интернету. Windows Server 2003 и Windows XP используют ненадежную модель узла, где служба удаленного доступа (RAS) предотвращает такой одновременный доступ за счет увеличения метрики маршрута всех маршрутов по умолчанию через другие интерфейсы. Таким образом, весь трафик направляется через интерфейс VPN, нарушая другие сетевые подключения.
В Windows Vista и более поздних версиях по умолчанию используется модель надежного узла. Если исходный IP-адрес указан в поиске маршрута с помощью функции GetBestRoute2 , поиск маршрута ограничивается интерфейсом исходного IP-адреса. Изменение метрики маршрута с помощью RAS не оказывает влияния, так как список потенциальных маршрутов даже не имеет маршрута для интерфейса VPN, который обеспечивает трафик в Интернет. Драйвер может использовать элемент DisableDefaultRoutes структуры MIB_IPINTERFACE_ROW, чтобы отключить использование маршрута по умолчанию в интерфейсе. VPN-клиенты могут использовать этот элемент в качестве меры безопасности для ограничения раздельного туннелирования, если vpn-клиент не требует раздельного туннелирования. VPN-клиент может вызвать функцию SetIpInterfaceEntry , чтобы при необходимости задать для элемента DisableDefaultRoutes значение TRUE . VPN-клиент может запросить текущее состояние элемента DisableDefaultRoutes , вызвав функцию GetIpInterfaceEntry .
Версия |
Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Заголовок |
Netioapi.h (включая Netioapi.h) |