estrutura MIB_IPINTERFACE_ROW
A estrutura MIB_IPINTERFACE_ROW armazena informações de gerenciamento de interface para uma família de endereços IP específica em um adaptador de rede.
Sintaxe
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;
Membros
Família
A família de endereços. Os valores possíveis para a família de endereços são listados no arquivo de cabeçalho Winsock2.h. Observe que os valores para a família de endereços AF_ e as constantes da família de protocolos PF_ são idênticos (por exemplo, AF_INET e PF_INET), para que você possa usar qualquer constante.No Windows Vista e versões posteriores dos sistemas operacionais Windows, os valores possíveis para esse membro são definidos no arquivo de cabeçalho Ws2def.h. Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente em Netioapi.h e você nunca deve usar o Ws2def.h diretamente.
No momento, há suporte para os seguintes valores:
AF_INET
A família de endereços IPv4.AF_INET6
A família de endereços IPv6.AF_UNSPEC
A família de endereços não é especificada.
InterfaceLuid
O LUID (identificador exclusivo local) para o adaptador de rede.Interfaceindex
O valor do índice local para o adaptador de rede. Esse valor de índice pode ser alterado quando um adaptador de rede é desabilitado e habilitado, ou em outras circunstâncias, e não deve ser considerado persistente.MaxReassemblySize
O tamanho máximo de remontagem, em bytes, de um pacote IP fragmentado. No momento, esse membro está definido como zero e reservado para uso futuro.InterfaceIdentifier
Reservado para uso futuro. No momento, esse membro está definido como zero.MinRouterAdvertisementInterval
O intervalo mínimo de anúncio do roteador, em milissegundos, nessa interface IP. Esse membro usa como padrão 200 para IPv6. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.MaxRouterAdvertisementInterval
O intervalo máximo de anúncios do roteador, em milissegundos, nessa interface IP. Esse membro usa como padrão 600 para IPv6. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.AdvertisingEnabled
Um valor que indica se a publicidade do roteador está habilitada nessa interface IP. O padrão para IPv6 é que o anúncio do roteador seja habilitado somente se a interface estiver configurada para atuar como um roteador. O padrão para IPv4 é que o anúncio do roteador esteja desabilitado.ForwardingEnabled
Um valor que indica se o encaminhamento de IP está habilitado nessa interface IP.WeakHostSend
Um valor que indica se o modo de envio de host fraco está habilitado nessa interface IP.WeakHostReceive
Um valor que indica se o modo de recebimento de host fraco está habilitado nessa interface IP.UseAutomaticMetric
Um valor que indica se a interface IP usa a métrica automática.UseNeighborUnreachabilityDetection
Um valor que indica se a detecção de inacessível do vizinho está habilitada nessa interface IP.ManagedAddressConfigurationSupported
Um valor que indica se a interface IP dá suporte à configuração de endereço gerenciado usando DHCP.OtherStatefulConfigurationSupported
Um valor que indica se a interface IP dá suporte a outra configuração com estado (por exemplo, configuração de rota).AdvertiseDefaultRoute
Um valor que indica se a interface IP anuncia a rota padrão. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.RouterDiscoveryBehavior
Um tipo de comportamento de descoberta de roteador NL_ROUTER_DISCOVERY_BEHAVIOR .DadTransmits
O número de mensagens consecutivas enviadas enquanto o driver executa a detecção de endereço duplicado em um endereço IP unicast provisório. Um valor zero indica que a detecção de endereço duplicado não é executada em endereços IP provisórios. Um valor de um indica uma única transmissão sem retransmissões de acompanhamento. Para IPv4, o valor padrão para esse membro é 3. Para IPv6, o valor padrão para esse membro é 1. Para IPv6, essas mensagens são enviadas como solicitações de NS (Solicitação de Vizinho) IPv6. Esse membro é definido como DupAddrDetectTransmits no RFC 2462. Para obter mais informações, consulte IPv6 "Configuração automática de endereço sem estado".BaseReachableTime
A base para tempo acessível aleatório, em milissegundos. O membro é descrito no RFC 2461. Para obter mais informações, consulte "Descoberta de vizinhos para IP versão 6 (IPv6)".RetransmitTime
O tempo limite de solicitação do vizinho IPv6 (NS), em milissegundos. O membro é descrito no RFC 2461. Para obter mais informações, consulte "Descoberta de vizinhos para IP versão 6 (IPv6)".PathMtuDiscoveryTimeout
O tempo limite de descoberta de MTU do caminho, em milissegundos.LinkLocalAddressBehavior
Um tipo de comportamento de endereço local de link NL_LINK_LOCAL_ADDRESS_BEHAVIOR.LinkLocalAddressTimeout
O tempo limite do endereço IP local do link, em milissegundos.ZoneIndices
Uma matriz que especifica a parte de zona das IDs de escopo.SitePrefixLength
O comprimento do prefixo do site, em bits, do endereço da interface IP. O comprimento, em bits, do prefixo do site ou da parte de rede do endereço da interface IP. Para um endereço IPv4, qualquer valor maior que 32 é um valor inválido. Para um endereço IPv6, qualquer valor maior que 128 é um valor inválido. Um valor de 255 normalmente é usado para representar um valor ilegal.Métrica
A métrica da interface. Observe que a métrica de rota real usada para calcular a preferência de rota é a soma do deslocamento de métrica de rota especificado no membro Métrica da estrutura de MIB_IPFORWARD_ROW2 e a métrica de interface especificada neste membro.NlMtu
O tamanho da MTU da camada de rede, em bytes.Conectado
Um valor que indica se a interface está conectada a um ponto de acesso à rede.SupportsWakeUpPatterns
Um valor que especifica se o adaptador de rede dá suporte ao Wake on LAN.SupportsNeighborDiscovery
Um valor que especifica se a interface IP dá suporte à descoberta de vizinhos.SupportsRouterDiscovery
Um valor que especifica se a interface IP dá suporte à descoberta de vizinhos.ReachableTime
A base para tempo acessível aleatório, em milissegundos. O membro é descrito em RFC 2461. Para obter mais informações, consulte Descoberta de vizinho para IP versão 6 (IPv6).TransmitOffload
Um conjunto de sinalizadores que indicam os recursos de descarregamento de transmissão para a interface ip. A estrutura NL_INTERFACE_OFFLOAD_ROD é definida no arquivo de cabeçalho Nldef.h.ReceiveOffload
Um conjunto de sinalizadores que indicam os recursos de descarregamento de recebimento para a interface de IP. A estrutura NL_INTERFACE_OFFLOAD_ROD é definida no arquivo de cabeçalho Nldef.h.DisableDefaultRoutes
Um valor que indica se o uso da rota padrão na interface deve ser desabilitado. Os clientes VPN podem usar esse membro para restringir o túnel dividido.
Comentários
Os membros Family, InterfaceLuid e InterfaceIndex identificam exclusivamente uma entrada de MIB_IPINTERFACE_ROW.
Quando um pacote unicast chega a um host, o IP deve determinar se o pacote está destinado localmente (seu destino corresponde a um endereço atribuído a uma interface do host). As implementações de IP que seguem um modelo de host fraco aceitam qualquer pacote destinado localmente, independentemente da interface na qual o pacote foi recebido. As implementações de IP que seguem o modelo de host forte aceitam apenas pacotes destinados localmente se o endereço de destino no pacote corresponder a um endereço atribuído à interface na qual o pacote foi recebido. O modelo de host fraco fornece melhor conectividade de rede. No entanto, ele também torna os hosts suscetíveis a ataques de rede multihome.
A implementação atual do IPv4 nos sistemas operacionais Windows Server 2003 e Windows XP usa o modelo de host fraco. A pilha TCP/IP no Windows Vista e versões posteriores dos sistemas operacionais Windows dão suporte ao modelo de host forte para IPv4 e IPv6 e é configurada para usar o modo de host forte por padrão (os membros WeakHostReceive e WeakHostSend são definidos como FALSE). Você pode configurar a pilha TCP/IP no Windows Vista e posterior para usar um modelo de host fraco.
Uma métrica é um valor atribuído a uma rota IP para um adaptador de rede específico que identifica o custo associado ao uso dessa rota. Por exemplo, a métrica pode ser valorizada em termos de velocidade do link, contagem de saltos ou atraso de tempo. A métrica automática é um recurso no Windows XP e posterior que configura automaticamente a métrica para as rotas locais baseadas na velocidade do link. Por padrão, o recurso de métrica automática está habilitado ( UseAutomaticMetric é definido como TRUE) no Windows XP e posterior. Você também pode configurar manualmente esse recurso para atribuir uma métrica específica a uma rota IP.
O recurso de métrica automática pode ser útil quando a tabela de roteamento contém várias rotas para o mesmo destino. Por exemplo, um computador que tem um adaptador de rede de 10 megabits e um adaptador de rede de 100 megabits tem um gateway padrão configurado em ambos os adaptadores de rede. Quando UseAutomaticMetric é TRUE, esse recurso pode forçar todo o tráfego destinado à Internet, por exemplo, a usar o adaptador de rede mais rápido disponível.
A métrica de interface especificada no membro Métrica representa apenas a métrica para a interface. A métrica de roteamento completa é uma combinação dessa métrica de interface adicionada ao deslocamento de métrica de rota especificado no membro Métrica da estrutura MIB_IPFORWARD_ROW2 de uma entrada de rota especificada nessa interface.
O acesso simultâneo sem privilégios a várias redes de diferentes requisitos de segurança cria uma falha de segurança e permite que um driver sem privilégios retransmitisse dados acidentalmente entre as duas redes. Um exemplo típico é o acesso simultâneo a uma VPN (rede virtual privada) e à Internet. O Windows Server 2003 e o Windows XP usam um modelo de host fraco, em que o RAS (Serviço de Acesso Remoto) impede esse acesso simultâneo aumentando a métrica de rota de todas as rotas padrão em relação a outras interfaces. Portanto, todo o tráfego é roteado por meio da interface VPN, interrompendo outra conectividade de rede.
No Windows Vista e posterior, por padrão, um modelo de host forte é usado. Se um endereço IP de origem for especificado na pesquisa de rota usando a função GetBestRoute2 , a pesquisa de rota será restrita à interface do endereço IP de origem. A modificação da métrica de rota por RAS não tem efeito porque a lista de rotas potenciais nem sequer tem a rota para a interface VPN, o que permite o tráfego para a Internet. O driver pode usar o membro DisableDefaultRoutes da estrutura MIB_IPINTERFACE_ROW para desabilitar usando a rota padrão em uma interface. Os clientes VPN podem usar esse membro como uma medida de segurança para restringir o túnel dividido quando o túnel dividido não é exigido pelo cliente VPN. Um cliente VPN pode chamar a função SetIpInterfaceEntry para definir o membro DisableDefaultRoutes como TRUE quando for necessário. Um cliente VPN pode consultar o estado atual do membro DisableDefaultRoutes chamando a função GetIpInterfaceEntry .
Requisitos
Versão |
Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Cabeçalho |
Netioapi.h (inclua Netioapi.h) |