Share via


MIB_IPINTERFACE_ROW 구조체(netioapi.h)

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;

멤버

Family

형식: ADDRESS_FAMILY

주소 패밀리입니다. 주소 패밀리에 대한 가능한 값은 Winsock2.h 헤더 파일에 나열됩니다. AF_ 주소 패밀리 및 PF_ 프로토콜 패밀리 상수의 값은 동일하므로(예: AF_INETPF_INET) 상수를 사용할 수 있습니다.

Windows Vista 이상 및 Windows SDK 헤더 파일의 organization 변경되었으며 이 멤버에 대한 가능한 값은 Ws2def.h 헤더 파일에 정의됩니다. Ws2def.h 헤더 파일은 Winsock2.h에 자동으로 포함되며 직접 사용하면 안 됩니다.

현재 지원되는 값은 IPv4 및 IPv6의 인터넷 주소 패밀리 형식인 AF_INET 또는 AF_INET6.

의미
AF_UNSPEC
0
주소 패밀리는 지정되지 않습니다.
AF_INET
2
IPv4(인터넷 프로토콜 버전 4) 주소 패밀리입니다.
AF_INET6
23
IPv6(인터넷 프로토콜 버전 6) 주소 패밀리입니다.

InterfaceLuid

형식: NET_LUID

네트워크 인터페이스에 대한 LUID(로컬 고유 식별자)입니다.

InterfaceIndex

형식: NET_IFINDEX

네트워크 인터페이스의 로컬 인덱스 값입니다. 이 인덱스 값은 네트워크 어댑터를 사용하지 않도록 설정한 다음 사용하도록 설정한 경우 또는 다른 상황에서는 변경될 수 있으며 영구로 간주해서는 안 됩니다.

MaxReassemblySize

형식: ULONG

조각화된 IP 패킷의 최대 재어셈블리 크기(바이트)입니다. 이 멤버는 현재 0으로 설정되며 나중에 사용할 수 있도록 예약되어 있습니다.

InterfaceIdentifier

형식: ULONG64

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

MinRouterAdvertisementInterval

형식: ULONG

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

MaxRouterAdvertisementInterval

형식: ULONG

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

AdvertisingEnabled

형식: BOOLEAN

이 IP 인터페이스에서 라우터 광고를 사용할 수 있는지 여부를 나타내는 값입니다. IPv6의 기본값은 인터페이스가 라우터 역할을 하도록 구성된 경우에만 라우터 보급 알림을 사용하도록 설정하는 것입니다. IPv4의 기본값은 라우터 보급 알림이 사용하지 않도록 설정되어 있다는 것입니다.

ForwardingEnabled

형식: BOOLEAN

이 IP 인터페이스에서 IP 전달을 사용할 수 있는지를 나타내는 값입니다.

WeakHostSend

형식: BOOLEAN

이 IP 인터페이스에서 약한 호스트 보내기 모드를 사용할 수 있는지를 나타내는 값입니다.

WeakHostReceive

형식: BOOLEAN

이 IP 인터페이스에서 약한 호스트 수신 모드를 사용할 수 있는지를 나타내는 값입니다.

UseAutomaticMetric

형식: BOOLEAN

IP 인터페이스가 자동 메트릭을 사용하는지 나타내는 값입니다.

UseNeighborUnreachabilityDetection

형식: BOOLEAN

이 IP 인터페이스에서 인접 연결 불가능성 검색을 사용할 수 있는지 여부를 나타내는 값입니다.

ManagedAddressConfigurationSupported

형식: BOOLEAN

IP 인터페이스가 DHCP를 사용하여 관리되는 주소 구성을 지원하는지 나타내는 값입니다.

OtherStatefulConfigurationSupported

형식: BOOLEAN

IP 인터페이스가 다른 상태 저장 구성(예: 경로 구성)을 지원하는지 나타내는 값입니다.

AdvertiseDefaultRoute

형식: BOOLEAN

IP 인터페이스가 기본 경로를 보급하는지를 나타내는 값입니다. 이 멤버는 AdvertisingEnabled 멤버가 TRUE로 설정된 경우에만 적용됩니다.

RouterDiscoveryBehavior

형식: NL_ROUTER_DISCOVERY_BEHAVIOR

라우터 검색 동작입니다. 이 멤버는 Nldef.h 헤더 파일에 정의된 NL_ROUTER_DISCOVERY_BEHAVIOR 열거형 형식의 값 중 하나일 수 있습니다. 멤버는 RFC 2461에 설명되어 있습니다. 자세한 내용은 http://www.ietf.org/rfc/rfc2461.txt를 참조하세요.

의미
RouterDiscoveryDisabled
0
라우터 검색을 사용할 수 없습니다.
RouterDiscoveryEnabled
1
라우터 검색이 사용하도록 설정됩니다. IPv6의 기본값입니다.
RouterDiscoveryDhcp
2
라우터 검색은 DHCP를 기반으로 구성됩니다. IPv4의 기본값입니다.
RouterDiscoveryUnchanged
-1
이 값은 라우터 검색에 대한 값을 변경하지 않아야 하는 경우 IP 인터페이스의 속성을 설정할 때 사용됩니다.

DadTransmits

형식: ULONG

미정 IP 유니캐스트 주소에서 중복 주소 검색을 수행하는 동안 전송되는 연속 메시지 수입니다. 값이 0이면 미정 IP 주소에서 중복 주소 검색이 수행되지 않음을 나타냅니다. 값이 1이면 후속 재전송 없이 단일 전송을 나타냅니다. IPv4의 경우 이 멤버의 기본값은 3입니다. IPv6의 경우 이 멤버의 기본값은 1입니다. IPv6의 경우 이러한 메시지는 인접 요청으로 전송됩니다. 이 멤버는 RFC 2462에서 DupAddrDetectTransmits로 정의됩니다. 자세한 내용은 http://www.ietf.org/rfc/rfc2462.txt를 참조하세요.

BaseReachableTime

형식: ULONG

임의 도달 가능 시간의 기준(밀리초)입니다. 멤버는 RFC 2461에 설명되어 있습니다. 자세한 내용은 http://www.ietf.org/rfc/rfc2461.txt를 참조하세요.

RetransmitTime

형식: ULONG

인접 요청 시간 제한(밀리초)입니다. 멤버는 RFC 2461에 설명되어 있습니다. 자세한 내용은 http://www.ietf.org/rfc/rfc2461.txt를 참조하세요.

PathMtuDiscoveryTimeout

형식: ULONG

경로 MTU 검색 시간 제한(밀리초)입니다.

LinkLocalAddressBehavior

형식: NL_LINK_LOCAL_ADDRESS_BEHAVIOR

링크 로컬 주소 동작입니다. 이 멤버는 Nldef.h 헤더 파일에 정의된 NL_LINK_LOCAL_ADDRESS_BEHAVIOR 열거형 형식의 값 중 하나일 수 있습니다.

의미
LinkLocalAlwaysOff
0
링크 로컬 IP 주소를 사용하지 마세요.
LinkLocalDelayed
1
다른 주소를 사용할 수 없는 경우에만 링크 로컬 IP 주소를 사용합니다. IPv4 인터페이스의 기본 설정입니다.
LinkLocalAlwaysOn
2
항상 링크 로컬 IP 주소를 사용합니다. IPv6 인터페이스의 기본 설정입니다.
LinkLocalUnchanged
-1
이 값은 링크 로컬 주소 동작에 대한 값을 변경하지 않아야 하는 경우 IP 인터페이스의 속성을 설정할 때 사용됩니다.

LinkLocalAddressTimeout

형식: ULONG

링크 로컬 IP 주소 시간 제한(밀리초)입니다.

ZoneIndices[ScopeLevelCount]

형식: ULONG[ScopeLevelCount]

scope ID의 영역 부분을 지정하는 배열입니다.

SitePrefixLength

형식: ULONG

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

Metric

형식: ULONG

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

NlMtu

형식: ULONG

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

Connected

형식: BOOLEAN

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

SupportsWakeUpPatterns

형식: BOOLEAN

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

SupportsNeighborDiscovery

형식: BOOLEAN

IP 인터페이스가 인접 검색을 지원하는지 지정하는 값입니다.

SupportsRouterDiscovery

형식: BOOLEAN

IP 인터페이스가 라우터 검색을 지원하는지 여부를 지정하는 값입니다.

ReachableTime

형식: ULONG

도달 가능한 시간 제한(밀리초)입니다.

TransmitOffload

형식: NL_INTERFACE_OFFLOAD_ROD

IP 인터페이스에 대한 전송 오프로드 기능을 나타내는 플래그 집합입니다. NL_INTERFACE_OFFLOAD_ROD 구조체는 Nldef.h 헤더 파일에 정의되어 있습니다.

ReceiveOffload

형식: NL_INTERFACE_OFFLOAD_ROD

IP 인터페이스에 대한 수신 오프로드 기능을 나타내는 플래그 집합입니다. NL_INTERFACE_OFFLOAD_ROD 구조체는 Nldef.h 헤더 파일에 정의되어 있습니다.

DisableDefaultRoutes

형식: BOOLEAN

인터페이스에서 기본 경로를 사용하지 않도록 설정해야 하는지를 나타내는 값입니다. 이 멤버는 VPN 클라이언트에서 분할 터널링을 제한하는 데 사용할 수 있습니다.

설명

MIB_IPINTERFACE_ROW 구조체는 Windows Vista 이상에서 정의됩니다.

Family, InterfaceLuidInterfaceIndex 멤버는 MIB_IPINTERFACE_ROW 항목을 고유하게 식별합니다.

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

Windows Server 2003 및 Windows XP의 현재 IPv4 구현은 약한 호스트 모델을 사용합니다. 이 경우 모든 유니캐스트 패킷은 경로에 대한 메트릭이 가장 낮은 인터페이스로 전송됩니다.

Windows Vista 및 이후의 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 또는 GetBestRoute를 사용하여 경로 조회에 원본 IP 주소를 지정하면 경로 조회가 원본 IP 주소의 인터페이스로 제한됩니다. RAS의 경로 메트릭 수정은 잠재적 경로 목록에 VPN 인터페이스에 대한 경로도 없으므로 인터넷에 대한 트래픽을 허용하기 때문에 영향을 주지 않습니다. MIB_IPINTERFACE_ROW 구조체의 DisableDefaultRoutes 멤버를 사용하여 인터페이스의 기본 경로를 사용하지 않도록 설정할 수 있습니다. 이 멤버는 VPN 클라이언트에서 분할 터널링을 요구하지 않을 때 분할 터널링을 제한하기 위해 VPN 클라이언트에서 보안 측정값으로 사용할 수 있습니다. VPN 클라이언트는 SetIpInterfaceEntry 함수를 호출하여 필요한 경우 DisableDefaultRoutes 멤버를 TRUE 로 설정할 수 있습니다. VPN 클라이언트는 GetIpInterfaceEntry 함수를 호출하여 DisableDefaultRoutes 멤버의 현재 상태를 쿼리할 수 있습니다.

Netioapi.h 헤더 파일은 Iphlpapi.h 헤더 파일에 자동으로 포함됩니다. Netioapi.h 헤더 파일은 직접 사용하면 안 됩니다.

예제

MIB_IPINTERFACE_TABLE 구조를 검색한 다음 이 표에 있는 MIB_IPINTERFACE_ROW 구조체 항목의 몇 멤버를 출력하는 예제를 보려면 GetIpInterfaceTable 함수를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 netioapi.h(Iphlpapi.h 포함)

추가 정보

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry