Open-IPv8-Lab

May 15, 2026 · View on GitHub

Open-IPv8-Lab

License SPDX Tests PyPI Docs codecov DOI

Experimental userspace toolkit implementing draft-thain-ipv8-02 — the Internet Protocol Version 8 specification. 58 modules, 35 CLI commands, 1827 tests.

Educational project. Not an official IPv8 implementation, not production networking software.

Created and maintained by Aleksei Aleinikov (@LF3551).


Demo

CLI Overview — address parsing, packet building, hex dump

CLI Overview Demo

Traceroute8 — linear, diamond, loop detection, multi-path

Traceroute Demo


Quick Start

# Install with Homebrew (macOS)
brew tap LF3551/open-ipv8-lab https://github.com/LF3551/Open-IPv8-Lab
brew install LF3551/open-ipv8-lab/open-ipv8-lab

# Install
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Parse an IPv8 address
ipv8lab addr parse 64496.192.0.2.1

# Build a packet
ipv8lab packet build --src 64496.192.0.2.1 --dst 64497.198.51.100.7 --payload "hello"

# Routing simulation
ipv8lab route simulate --config examples/two_asn_demo.yaml

# Zone Server lifecycle
ipv8lab zone init --prefix 127.1.0.0
ipv8lab zone status --json

# Security filtering
ipv8lab ilinkprot bgp8 64496.222.0.0.1
ipv8lab prefixenf check 64496.10.1.0.0 24 --peer-asn 64497

# WHOIS8 registry
ipv8lab whois8 register 64496 "Example Corp" --rir ARIN
ipv8lab whois8 lookup 64496

# Export to Wireshark
ipv8lab pcap demo -o demo.pcap
ipv8lab pcap dissector -o ipv8_dissector.lua

# JSON output on any command
ipv8lab addr parse 64496.192.0.2.1 --json

More examples — 10 step-by-step walkthroughs


Features

Core Protocol Stack

FeatureCLISpec
IPv8 64-bit addressing (ASN prefix + host)ipv8lab addr§3, 4, 6
28-byte packet headeripv8lab packet§5.1
Packet fragmentation / reassemblyipv8lab frag§5.1
Two-tier routing with VRFipv8lab route§8.7, 8.8
ICMPv8 (Echo, Unreachable, Redirect)§9
Multicast / anycast / broadcast§10–12
8to4 tunnelling§13.3
DNS A8 records (even/odd pair)§7

Zone Server & Services

FeatureCLISpec
Zone Server (OAuth8, ACL8, DHCP8)ipv8lab zone§1.3, 1.4
Multi-zone simulationipv8lab multizone
mTLS encryption layeripv8lab mtls
Cloud Provider VPC mappingipv8lab vpc§17

Routing & Traffic

FeatureCLISpec
BGP8 path selection with CF metricipv8lab bgp8§8.4
Cost Factor (7-component metric)ipv8lab cf§1.6
XLATE8 north-south traffic flowipv8lab xlate8§1.4
XLATE8 Even/Odd Load Balancingipv8lab xlate8lb§15.1
NAT8 address translationipv8lab nat8
CGNAT Behaviour simulationipv8lab cgnat§15
ARP8-driven version selectionipv8lab arp8§2
Inter-Company Interopipv8lab interop§4.6–4.7

Security & Compliance

FeatureCLISpec
RINE Prefix Protection (100.x.x.x)ipv8lab rineprot§19.3
Interior Link Protection (222.0.0.0/8)ipv8lab ilinkprot§19.4
/16 Minimum Prefix Enforcementipv8lab prefixenf§19.7
Border router ingress filtering§18
Device compliance tiers§17.1–17.3
PVRST spanning tree§17.4
NIC rate limits§17.5

Companion Protocols

FeatureCLIDraft
WHOIS8 protocol (server, client, HMAC signing)ipv8lab whois8whois8-00
NetLog8 protocol (wire framing, collector, relay)ipv8lab netlog8protonetlog8-00
BGP8, OSPF8, IS-IS8, RINE, ARP8, XLATE8, WiFi8, SNMPv87 companion drafts

Operations & Tooling

FeatureCLI
PCAP export for Wiresharkipv8lab pcap
Traceroute8 diagnosticipv8lab traceroute
NetFlow8 flow monitoringipv8lab netflow8
QoS / traffic shapingipv8lab qos
Packet fuzzeripv8lab fuzz
Docker multi-node testbedipv8lab docker
TUI dashboard (Textual)ipv8lab tui
Web dashboardipv8lab dashboard
Performance benchmarksipv8lab bench
Packet capture / replayipv8lab capture
Socket API mock (AF_INET8)ipv8lab socket
Address Usage Model tableipv8lab usage
Interior Link Conventionipv8lab ilink

Example Output

$ ipv8lab addr parse 64496.192.0.2.1

Input                64496.192.0.2.1
Format               ASN dot notation
ASN                  64496
Routing prefix       0.0.251.240
Host part            192.0.2.1
Full notation        0.0.251.240.192.0.2.1

Testing

pytest -v

1827 tests covering all 58 modules.


Documentation

DocDescription
Examples10 step-by-step walkthroughs
CLI ReferenceAll 35 commands with usage examples
Python APIUsing ipv8lab as a Python library
Spec CoverageFull draft-thain-ipv8-02 mapping
ArchitectureModule categories & dependencies
OverviewProject overview
AddressingIPv8 address format (Sections 3, 4, 6)
Packet Format28-byte header (Section 5.1)
Routing SimulatorTwo-tier routing (Sections 8.7, 8.8)
TestbedLocal testbed setup
GlossaryKey terms and abbreviations
FAQFrequently asked questions & troubleshooting
RoadmapVersion history & future plans
ChangelogRelease-by-release changes

License

Apache License 2.0 · SPDX: Apache-2.0

Attribution

IPv8 Lab — Copyright 2026 Aleksei Aleinikov
https://github.com/LF3551/Open-IPv8-Lab

Use, modification, and distribution are permitted under the Apache License 2.0, provided that the original copyright notice and the NOTICE file are preserved. Attribution to Aleksei Aleinikov (@LF3551) must remain intact.