<br> # 5.2.1 IPv4-in-IPv4 (IP-in-IP) P.185 The Protocol field in the IPv4 header contains a number indicating the type of data found in the payload portion of the datagram. The most common values are 17 (for UDP) and 6 (for TCP). This provides a demultiplexing feature so that the IP protocol can be used to carry payloads of more than one protocol type. Although this field originally specified the transport-layer protocol the datagram is encapsulating, it is now understood to identify the encapsulated protocol, which may or not be a transport protocol. For example, other encapsulations are possible, such as IPv4-in-IPv4 (value 4). The official list of the possible values of the Protocol field is given in the assigned numbers page \[AN]. [https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers](https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers "https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers") IP Protocol Number=4 [https://en.wikipedia.org/wiki/IP_in_IP](https://en.wikipedia.org/wiki/IP_in_IP "https://en.wikipedia.org/wiki/IP_in_IP") ==IP in IP는 하나의 IP 패킷을 다른 IP 패킷에 캡슐화하는 IP 터널링 프로토콜입니다.== IP 패킷을 다른 IP 패킷에 캡슐화하기 위해, 터널의 시작점인 `Source IP`와 터널의 끝점인 `Destination IP`를 포함하는 외부 헤더가 추가됩니다. 이 과정에서 내부 패킷은 (`TTL` 필드가 감소하는 것을 제외하고) 수정되지 않습니다. `Don't Fragment`와 `Type Of Service` 필드는 외부 패킷에 복사되어야 합니다. 외부 헤더를 포함한 패킷 크기가 `Path MTU`보다 크면, 캡슐화하는 쪽에서 패킷을 분할합니다. 캡슐화를 해제하는 쪽에서는 패킷을 재조립합니다. <br> - Claude ==IPv4-in-IPv4 (프로토콜 필드 값 4)는 IP 터널링 기술의 한 종류로, IPv4 패킷 내부에 또 다른 IPv4 패킷을 캡슐화하는 방식입니다. 이는 주로 VPN (가상 사설망), 네트워크 주소 변환(NAT), 모바일 IP 등의 시나리오에서 사용됩니다.== IP 터널링은 한 네트워크 프로토콜의 패킷을 다른 네트워크 프로토콜로 캡슐화하여 전송하는 기술입니다. 이를 통해 패킷은 외부 네트워크를 통과할 수 있으며, 외부 네트워크에서는 내부 패킷의 내용을 알 수 없습니다. IPv4-in-IPv4 터널링에서는 외부 IPv4 헤더의 프로토콜 필드 값이 4로 설정됩니다. 이는 패킷의 페이로드가 또 다른 IPv4 패킷임을 나타냅니다. 내부 IPv4 패킷은 자체의 헤더와 페이로드를 가지고 있으며, 이는 외부 IPv4 패킷의 페이로드로 처리됩니다. 예를 들어, 회사 네트워크 내부에 있는 호스트가 인터넷을 통해 데이터를 안전하게 전송해야 하는 경우, VPN 기술을 사용할 수 있습니다. 이 때 IPv4-in-IPv4 터널링을 사용하면, 내부 IPv4 패킷이 외부 IPv4 패킷에 캡슐화되어 인터넷을 통과합니다. 수신 측 VPN 서버는 외부 IPv4 헤더를 제거하고 내부 IPv4 패킷을 추출하여 원래의 목적지로 전달합니다. IPv4-in-IPv4 터널링은 다음과 같은 장점을 제공합니다: 1. 보안: 내부 패킷의 내용이 외부에 노출되지 않아 데이터 기밀성을 유지할 수 있습니다. 2. 네트워크 확장: 서로 다른 네트워크를 연결하여 하나의 논리적인 네트워크로 구성할 수 있습니다. 3. 주소 충돌 회피: 내부 네트워크의 IP 주소와 외부 네트워크의 IP 주소가 겹치더라도 터널링을 통해 충돌을 피할 수 있습니다. ==다만 터널링은 오버헤드를 발생시키므로, 패킷 처리 속도가 느려질 수 있습니다.== 또한 MTU (Maximum Transmission Unit) 문제로 인해 패킷 단편화가 발생할 수 있으므로, 이에 대한 고려도 필요합니다. <br> ## IPv4-in-IPv4 (프로토콜 필드 값 4)를 사용하는 실제 사례와 기술 예제는 다음과 같습니다: ### 1. 6to4 터널링 (6to4 Tunneling): 6to4는 IPv6 패킷을 IPv4 네트워크를 통해 전송하기 위한 터널링 기술입니다. 6to4에서는 IPv6 패킷이 IPv4 패킷 내부에 캡슐화되어 전송됩니다. 이때 외부 IPv4 헤더의 프로토콜 필드에는 값 41 (IPv6-in-IPv4)이 사용되지만, 내부 IPv6 패킷 내의 Next Header 필드에는 값 4 (IPv4)가 사용될 수 있습니다. 이는 IPv6 패킷 내부에 또 다른 IPv4 패킷이 캡슐화될 수 있음을 나타냅니다. ### 2. 모바일 IP (Mobile IP): 모바일 IP는 모바일 디바이스가 네트워크 간을 이동할 때 연결을 유지할 수 있도록 하는 프로토콜입니다. 모바일 IP에서는 모바일 디바이스의 홈 에이전트(Home Agent)와 외부 에이전트(Foreign Agent) 간에 터널링이 사용됩니다. 이때 IPv4-in-IPv4 터널링이 사용될 수 있으며, 외부 IPv4 헤더의 프로토콜 필드에는 값 4가 사용됩니다. ### 3. 멀티캐스트 터널링 (Multicast Tunneling): 멀티캐스트 라우팅 프로토콜 중 일부는 IPv4-in-IPv4 터널링을 사용하여 멀티캐스트 트래픽을 전송합니다. 예를 들어, Distance Vector Multicast Routing Protocol (DVMRP)은 멀티캐스트 패킷을 유니캐스트 터널을 통해 전송할 때 IPv4-in-IPv4 터널링을 사용할 수 있습니다. ### 4. 가상 사설망 (Virtual Private Network, VPN): 일부 VPN 솔루션에서는 IPsec 대신 또는 IPsec과 함께 IPv4-in-IPv4 터널링을 사용할 수 있습니다. 이는 주로 간단한 터널링 기능만 필요한 경우에 사용됩니다. 예를 들어, OpenVPN은 IPv4-in-IPv4 터널링을 지원합니다. ### 5. 네트워크 주소 변환 (Network Address Translation, NAT): 일부 NAT 구현에서는 IPv4-in-IPv4 터널링을 사용하여 NAT 트래버설을 수행합니다. 이는 주로 NAT 장비 간의 터널링에 사용되며, 내부 네트워크의 패킷을 외부 네트워크로 전송할 때 사용될 수 있습니다. 이러한 사례들은 IPv4-in-IPv4 터널링이 다양한 시나리오에서 사용될 수 있음을 보여줍니다. 하지만 현재는 IPsec이나 다른 터널링 프로토콜이 더 널리 사용되는 추세이며, IPv4-in-IPv4 터널링은 상대적으로 제한적인 상황에서 사용됩니다. <br> # References [TCP/IP Packet Format | AnalysisMan](https://www.analysisman.com/2024/03/tcpip-packet-format.html) <br> # Links [[_MOC_2_Network]] <br> # Tags #network #protocol #tcpip <br>