블랙 홀(Black Hole) 라우터의 진단과 취급

이 문서의 Microsoft Windows XP 버전에 대한 내용은 314825 를 참조하십시오.

요약

TCP/IP WAN에서 중간 네트워크 세그먼트의 패킷 크기가 통신 호스트보다 작고 라우터가 이 조건에 적절한 ICMP 응답을 보내지 않으면 일부 경로를 통한 통신에 실패할 수도 있습니다. 또는 경로의 방화벽에서 이러한 응답을 제거할 수 있습니다. 이 조건을 유발하는 라우터를 "블랙 홀(Black Hole)" 라우터라고도 합니다. Microsoft Windows TCP/IP 프로토콜과 함께 설치되는 표준 유틸리티인 Ping 유틸리티를 사용하여 블랙 홀 라우터를 찾을 수 있습니다. 본 문서에서는 블랙 홀 라우터에서 발생하는 문제를 해결하거나 수정하기 위한 몇 가지 권장 사항을 제공합니다.

추가 정보

네트워크 라우터가 다음 네트워크 세그먼트의 MTU(최대 전송 단위)보다 큰 패킷을 받는 경우 해당 패킷의 IP 계층 "don't fragment" 비트가 설정되어 있으면 라우터는 보내는 호스트에 ICMP Destination Unreachable 메시지를 다시 보냅니다. 이 메시지를 보내지 않으면 패킷을 잃게 되어 실패한 링크를 통해 통신하는 응용 프로그램에 따라 다양한 오류가 발생할 수 있습니다. 응용 프로그램에서 로컬 서브넷의 컴퓨터에 연결할 때는 이러한 오류가 발생하지 않습니다. 이 문제는 간헐적으로 발생하는 것처럼 보일 수도 있지만 자세히 조사해 보면 원격 호스트에서 큰 파일을 읽는 클라이언트의 경우처럼 이 문제가 중복될 수 있습니다.

-f(조각화 금지) 및 -l(버퍼 크기) 매개 변수와 함께 Ping 유틸리티를 사용하여 블랙 홀 라우터를 찾을 수 있습니다. -f 매개 변수를 설정하면 Ping 유틸리티는 IP "Don't Fragment" 비트가 설정된 상태로 ICMP 에코 패킷(Echo Packet)을 보냅니다. -l 매개 변수는 ICMP 에코 패킷의 버퍼 또는 페이로드 크기를 설정합니다. 조각화되지 않은 상태로 보낼 수 있는 가장 큰 버퍼 크기는 경로에서 가장 작은 MTU의 IP 및 ICMP 헤더를 뺀 MTU 크기(MTU-28)와 같습니다. 예를 들어, 이더넷의 MTU는 1500바이트이므로 최상의 조건에서 Ping을 실행하면 1,472바이트의 ICMP 버퍼를 사용하여 조각화되지 않은 패킷을 에코할 수 있습니다. 이 경우 Ping 명령의 구문은 다음과 같습니다.

Ping <컴퓨터 이름 또는 IP 주소> -f -l 1472

이 명령은 모든 로컬 IP 주소에서 작동합니다. 라우트된 연결에 있는 모든 세그먼트의 MTU가 1500바이트 이상인 경우 패킷이 반환됩니다. MTU가 더 작은 중간 세그먼트가 있는 경우 라우터에서 적절한 ICMP Destination Unreachable 패킷을 반환하면 Ping 유틸리티는 "Packet needs to be fragmented but DF set"을 표시합니다. 경로를 따라 MTU가 더 작은 세그먼트가 있는 경우 적절한 ICMP 패킷이 반환되지 않으면 Ping 유틸리티는 "Request timed out"을 표시합니다. 공통 네트워크 미디어의 기본 MTU에 대한 자세한 내용은 기술 자료 문서 140375 에 나와 있습니다.

이후의 Ping 명령에서 -l 매개 변수를 변경하여 특정 경로를 지나는 조각화되지 않은 가장 큰 패킷을 찾을 수 있습니다. 일반적으로 사용되는 가장 작은 MTU는 576바이트이므로 548바이트의 ICMP 버퍼로 안전하게 시작하고 점점 크기를 늘릴 수 있습니다. 예를 들어, Ping <호스트 이름 또는 주소> -f -l 972를 실행하면 패킷이 반환되고 Ping <호스트 이름 또는 주소> -f -l 973을 실행하면 실패하는 경우 해당 경로를 통해 사용할 수 있는 가장 큰 MTU는 1000(972+28)바이트입니다.

블랙 홀 라우터 문제를 수정하거나 해결하기 위해 다음과 같은 네 가지 해결 방법을 사용할 수 있습니다.
  1. Microsoft 기술 자료 문서 136970 에 설명되어 있는 것처럼 광역 연결을 통해 통신할 Windows 호스트에서 PMTU 블랙 홀 감지 기능을 사용할 수 있도록 설정합니다. 이 경우 Windows NT 3.51 서비스 팩 2 이상 또는 Windows NT 4.0을 사용해야 합니다.
  2. ICMP 유형 3 코드 4 메시지(destination unreachable don't fragment (DF) bit sent and fragmentation required)를 보내도록 중간 라우터를 구성합니다. 이렇게 하려면 라우터 소프트웨어나 펌웨어를 업그레이드하거나, 라우터를 구성하거나, 라우터를 교체해야 할 수 있습니다.
  3. 문제가 있는 경로를 통해 통신하는 Windows 호스트에서 PMTU 검색 기능을 사용할 수 없도록 설정합니다. 이렇게 하면 기본 MTU가 576바이트로 구성됩니다. 이 방법을 사용하면 네트워크 성능이 심각하게 저하될 수 있습니다.
  4. 호스트 인터페이스의 MTU를 블랙 홀 라우터가 처리할 수 있는 가장 큰 크기로 설정합니다. 이렇게 하면 해당 연결을 통해 가장 큰 크기의 패킷이 전송되지만 로컬 트래픽 및 문제가 없는 라우트된 연결을 통한 트래픽에서 더 작은 패킷을 사용하게 됩니다. 여기에서는 문제가 있는 호스트에서 사용할 수 있는 MTU 및 가능한 모든 링크의 상태를 확인했다고 가정합니다.
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
120642 Windows 2000 또는 Windows NT용 TCP/IP 및 NetBT 구성 매개 변수

128797 DEC 250 및 DEC 500 라우터를 통해 파일을 전송할 수 없다

136970 Windows NT 3.51의 PMTU 블랙 홀 감지 알고리즘 변경

138575 FDDI 링 간의 이더넷 세그먼트를 통한 통신이 실패한다

140375 여러 네트워크 토폴로지의 기본 MTU 크기

자세한 내용은 다음 웹 사이트에서 Internet RFC 1191 및 RFC 1435를 참조하십시오.Windows NT Server Resource Kit의 6장, "TCP/IP 구현 정보(TCP/IP Implementation Details)"도 참조하십시오. 이 문서를 보려면 다음 Microsoft 웹 사이트를 방문하십시오.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
속성

문서 ID: 159211 - 마지막 검토: 2008. 1. 15. - 수정: 1

피드백