목차

소개

트래픽이 GRE(Generic Routing Encapsulation) 터널을 통과할 때 ping 명령과 텔넷을 성공적으로 사용할 수 있지만 FTP(File Transfer Protocol)를 사용하여 인터넷 페이지 또는 전송 파일을 다운로드할 수는 없습니다. 이 문서에서는 이 문제의 일반적인 이유를 설명하고 몇 가지 해결 방법을 제공합니다.

사전 요구 사항

요구 사항

이 문서에는 GRE에 대한 기본적인 이해가 필요합니다. GRE에 대한 자세한 내용은 다음 문서를 참조하십시오.

사용되는 구성 요소

이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.

명령 조회 도구(등록된 고객만 해당)를 사용하여 이 문서에 사용된 명령에 대한 자세한 정보를 찾습니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.

패킷 조각화 및 ICMP 메시지

이 문서에서는 이 네트워크 다이어그램을 예로 사용합니다.

56a.gif

위의 다이어그램에서 클라이언트가 인터넷의 페이지에 액세스하려는 경우 웹 서버와의 TCP 세션을 설정합니다. 이 프로세스 중에 클라이언트와 웹 서버는 최대 세그먼트 크기(MSS)를 발표하고, 이는 서로 이 크기까지 TCP 세그먼트를 수락할 수 있음을 나타냅니다. MSS 옵션을 수신하면 각 디바이스는 전송할 수 있는 세그먼트의 크기를 계산합니다. 이를 SMSS(Send Max Segment Size)라고 하며, 두 MSS 중 작은 값과 같습니다. TCP 최대 세그먼트 크기에 대한 자세한 내용은 RFC 879 leavingcisco.com 참조하십시오.

인수를 위해 위의 예에서 웹 서버가 최대 1500바이트의 패킷을 전송할 수 있다고 결정한다고 가정해 보겠습니다. 따라서 클라이언트로 1500바이트 패킷을 전송하고, IP 헤더에서 "DF(Don't Fragment)" 비트를 설정합니다. 패킷이 R2에 도착하면 라우터는 터널 패킷에 패킷을 캡슐화합니다. GRE 터널 인터페이스의 경우 IP MTU(Maximum Transmission Unit)가 실제 발신 인터페이스의 IP MTU보다 24바이트 작습니다. 터널 인터페이스의 IP MTU를 의미하는 이더넷 발신 인터페이스의 경우 1500에서 24 또는 1476바이트가 됩니다.

R2는 1500바이트 IP 패킷을 1476바이트 IP MTU 인터페이스로 전송하려고 합니다. 이는 불가능하므로 R2는 1476바이트(데이터 및 IP 헤더)의 패킷 1개와 44바이트(24바이트 데이터 및 20바이트의 새 IP 헤더)의 패킷을 생성하여 패킷을 프래그먼트화해야 합니다. R2, GRE는 이러한 패킷을 모두 캡슐화하여 각각 1500 및 68바이트 패킷을 가져옵니다. 이제 이러한 패킷은 1500바이트 IP MTU가 있는 실제 아웃바운드 인터페이스로 전송될 수 있습니다.

그러나 R2에서 수신한 패킷에는 DF 비트가 설정되어 있습니다. 따라서 R2는 패킷을 프래그먼트화할 수 없으며 대신 웹 서버에 더 작은 패킷을 전송하도록 지시해야 합니다. ICMP(Internet Control Message Protocol) 유형 3 코드 4 패킷(Destination Unreachable; 필요한 프래그먼트화 및 DF 세트). 이 ICMP 메시지에는 웹 서버에서 사용할 올바른 MTU가 포함되어 있습니다. 이 MTU는 이 메시지를 받고 그에 따라 패킷 크기를 조정해야 합니다.

참고:  debug 명령을 사용하기 전에 디버그 명령에 대한 중요 정보를 참조하십시오.

debug ip icmp 명령을 활성화하여 R2에서 보낸 ICMP 메시지를 볼 수 있습니다.

ICMP: dst (10.10.10.10) frag. needed and DF set unreachable sent to 10.1.3.4

차단된 ICMP 메시지

웹 서버 경로를 따라 ICMP 메시지가 차단될 때 일반적인 문제가 발생합니다. 이 경우 ICMP 패킷은 웹 서버에 도달하지 않으므로 클라이언트와 서버 간에 데이터가 전달되지 않습니다.

솔루션

이 네 가지 솔루션 중 하나는 문제를 해결해야 합니다.

추가 솔루션

위 옵션을 사용할 수 없는 경우 다음 옵션이 유용할 수 있습니다.

결론적으로, 위에서 언급한 프래그먼트화 문제 때문에 GRE 터널을 통해 인터넷을 탐색할 수 없는 가장 일반적인 원인은 바로 GRE 터널 때문입니다. 해결책은 ICMP 패킷을 허용하거나 위의 솔루션 중 하나에서 ICMP 문제를 해결하는 것입니다.

관련 정보