SkillAgentSearch skills...

Tun464

A lightweight tunnel to transit IPv4 packets over an IPv6 network or the IPv6 internet.

Install / Use

/learn @twd2/Tun464
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

tun464

This is a lightweight tunnel (or so-called translator) to transit IPv4 packets over an IPv6 network or the IPv6 internet.

Not like ipip6 or other tunnels, it minimizes the MTU overhead by embedding IPv4 addresses into IPv6 addresses. It can reach 1472 (1500 - 40 - 8 + 20) of MTU, while ipip6 would usually decrease MTU to 1452 (1500 - 40 - 8).

A /96 IPv6 prefix is needed for each site since an IPv4 address will be embedded into the low 32 bits of an IPv6 address. For example, consider 192.0.2.1 and 192.0.2.2 are communicating through this tunnel, and the configured prefixes are 2001:db8:1:4646::/96 and 2001:db8:2:4646::/96. For the IPv6 network, it looks like that 2001:db8:1:4646::c000:201 and 2001:db8:1:4646::c000:202 are communicating with each other.

Prerequisites

  • Build essentials: GCC, make, ...

Usage

On one site:

make run
make setup

On the other site:

make run2
make setup2

Demo

demo

In the above figure, the hops reported to be in 100.64.0.0/10 are actually IPv6 routers, and their "IPv4 addresses" are not real.

References

Related Skills

View on GitHub
GitHub Stars19
CategoryDevelopment
Updated1y ago
Forks0

Languages

C

Security Score

60/100

Audited on Nov 2, 2024

No findings