다음을 통해 공유


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 패킷의 최대 재조립 크기(바이트)입니다. 이 멤버는 현재 0으로 설정되며 나중에 사용할 수 있도록 예약되어 있습니다.

  • InterfaceIdentifier
    다음에 사용하도록 예약됩니다. 이 멤버는 현재 0으로 설정됩니다.

  • MinRouterAdvertisementInterval
    이 IP 인터페이스의 최소 라우터 보급 간격(밀리초)입니다. 이 멤버의 기본값은 IPv6의 경우 200입니다. 이 멤버는 AdvertisingEnabled 멤버가 TRUE로 설정된 경우에만 적용됩니다.

  • MaxRouterAdvertisementInterval
    이 IP 인터페이스의 최대 라우터 보급 간격(밀리초)입니다. 이 멤버의 기본값은 IPv6의 경우 600입니다. 이 멤버는 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 유니캐스트 주소에서 중복 주소 검색을 수행하는 동안 전송되는 연속 메시지 수입니다. 값이 0이면 임시 IP 주소에서 중복 주소 검색이 수행되지 않음을 나타냅니다. 값이 1이면 후속 재전송이 없는 단일 전송을 나타냅니다. IPv4의 경우 이 멤버의 기본값은 3입니다. IPv6의 경우 이 멤버의 기본값은 1입니다. IPv6의 경우 이러한 메시지는 IPv6 NS(인접한 요청) 요청으로 전송됩니다. 이 멤버는 RFC 2462에서 DupAddrDetectTransmits로 정의됩니다. 자세한 내용은 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
    scope ID의 영역 부분을 지정하는 배열입니다.

  • SitePrefixLength
    IP 인터페이스 주소의 사이트 접두사 길이(비트)입니다. IP 인터페이스 주소의 사이트 접두사 또는 네트워크 부분의 길이(비트)입니다. IPv4 주소의 경우 32보다 큰 값은 잘못된 값입니다. IPv6 주소의 경우 128보다 큰 값은 잘못된 값입니다. 값 255는 일반적으로 잘못된 값을 나타내는 데 사용됩니다.

  • 메트릭
    인터페이스 메트릭입니다. 경로 기본 설정을 계산하는 데 사용되는 실제 경로 메트릭은 MIB_IPFORWARD_ROW2 구조체의 메트릭 멤버에 지정된 경로 메트릭 오프셋과 이 멤버에 지정된 인터페이스 메트릭의 합계입니다.

  • NlMtu
    네트워크 계층 MTU 크기(바이트)입니다.

  • 연결됨
    인터페이스가 네트워크 액세스 지점에 연결되어 있는지를 나타내는 값입니다.

  • SupportsWakeUpPatterns
    네트워크 인터페이스가 Wake on LAN을 지원하는지 지정하는 값입니다.

  • 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, InterfaceLuidInterfaceIndex 멤버는 MIB_IPINTERFACE_ROW 항목을 고유하게 식별합니다.

유니캐스트 패킷이 호스트에 도착하면 IP는 패킷이 로컬로 지정되었는지 여부를 결정해야 합니다(대상은 호스트의 인터페이스에 할당된 주소와 일치). 약한 호스트 모델을 따르는 IP 구현은 패킷이 수신된 인터페이스에 관계없이 로컬로 지정된 패킷을 허용합니다. 강력한 호스트 모델을 따르는 IP 구현은 패킷의 대상 주소가 패킷이 수신된 인터페이스에 할당된 주소와 일치하는 경우 로컬로 지정된 패킷만 허용합니다. 약한 호스트 모델은 더 나은 네트워크 연결을 제공합니다. 그러나 호스트는 멀티홈 기반 네트워크 공격에 취약합니다.

Windows Server 2003 및 Windows XP 운영 체제의 현재 IPv4 구현은 약한 호스트 모델을 사용합니다. Windows Vista 이상 버전의 Windows 운영 체제의 TCP/IP 스택은 IPv4 및 IPv6 모두에 대한 강력한 호스트 모델을 지원하며 기본적으로 강력한 호스트 모드를 사용하도록 구성됩니다( WeakHostReceiveWeakHostSend 멤버는 FALSE로 설정됨). 약한 호스트 모델을 사용하도록 Windows Vista 이상에서 TCP/IP 스택을 구성할 수 있습니다.

메트릭은 해당 경로 사용과 관련된 비용을 식별하는 특정 네트워크 인터페이스의 IP 경로에 할당된 값입니다. 예를 들어 링크 속도, 홉 수 또는 시간 지연 측면에서 메트릭을 반환할 수 있습니다. 자동 메트릭은 Windows XP 이상에서 링크 속도를 기반으로 하는 로컬 경로에 대한 메트릭을 자동으로 구성하는 기능입니다. 기본적으로 자동 메트릭 기능은 Windows XP 이상에서 사용하도록 설정됩니다( UseAutomaticMetricTRUE로 설정됨). IP 경로에 특정 메트릭을 할당하도록 이 기능을 수동으로 구성할 수도 있습니다.

자동 메트릭 기능은 라우팅 테이블에 동일한 대상에 대한 여러 경로가 포함된 경우에 유용할 수 있습니다. 예를 들어 10메가비트 네트워크 인터페이스와 100메가비트 네트워크 인터페이스가 있는 컴퓨터에는 두 네트워크 인터페이스 모두에 구성된 기본 게이트웨이가 있습니다. UseAutomaticMetricTRUE인 경우 이 기능은 인터넷으로 향하는 모든 트래픽(예: 사용 가능한 가장 빠른 네트워크 인터페이스)을 강제로 사용할 수 있습니다.

메트릭 멤버에 지정된 인터페이스 메트릭은 인터페이스에 대한 메트릭만 나타냅니다. 전체 라우팅 메트릭은 이 인터페이스에 지정된 경로 항목의 MIB_IPFORWARD_ROW2 구조의 메트릭 멤버에 지정된 경로 메트릭 오프셋에 추가된 이 인터페이스 메트릭의 조합입니다.

서로 다른 보안 요구 사항의 여러 네트워크에 대한 권한 없는 동시 액세스는 보안 허점을 만들고 권한이 없는 드라이버가 실수로 두 네트워크 간에 데이터를 릴레이할 수 있도록 합니다. 일반적인 예는 VPN(가상 사설망) 및 인터넷에 대한 동시 액세스입니다. Windows Server 2003 및 Windows XP는 약한 호스트 모델을 사용합니다. 여기서 RAS(원격 액세스 서비스)는 다른 인터페이스를 통해 모든 기본 경로의 경로 메트릭을 늘려 이러한 동시 액세스를 방지합니다. 따라서 모든 트래픽은 VPN 인터페이스를 통해 라우팅되어 다른 네트워크 연결을 방해합니다.

Windows Vista 이상에서는 기본적으로 강력한 호스트 모델이 사용됩니다. GetBestRoute2 함수를 사용하여 경로 조회에 원본 IP 주소를 지정하면 경로 조회가 원본 IP 주소의 인터페이스로 제한됩니다. RAS의 경로 메트릭 수정은 잠재적 경로 목록에 인터넷 트래픽을 사용하도록 설정하는 VPN 인터페이스에 대한 경로도 없으므로 아무런 영향을 미치지 않습니다. 드라이버는 MIB_IPINTERFACE_ROW 구조체의 DisableDefaultRoutes 멤버를 사용하여 인터페이스에서 기본 경로를 사용하지 않도록 설정할 수 있습니다. VPN 클라이언트는 VPN 클라이언트에서 분할 터널링을 요구하지 않을 때 분할 터널링을 제한하는 보안 조치로 이 멤버를 사용할 수 있습니다. VPN 클라이언트는 SetIpInterfaceEntry 함수를 호출하여 필요한 경우 DisableDefaultRoutes 멤버를 TRUE 로 설정할 수 있습니다. VPN 클라이언트는 GetIpInterfaceEntry 함수를 호출하여 DisableDefaultRoutes 멤버의 현재 상태를 쿼리할 수 있습니다.

요구 사항

Version

Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.

헤더

Netioapi.h(Netioapi.h 포함)

추가 정보

GetBestRoute2

GetIpInterfaceEntry

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_LINK_LOCAL_ADDRESS_BEHAVIOR

NL_ROUTER_DISCOVERY_BEHAVIOR

SetIpInterfaceEntry