Skip to main content

Open-IPv8-Lab

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

Feature CLI Spec
IPv8 64-bit addressing (ASN prefix + host) ipv8lab addr §3, 4, 6
28-byte packet header ipv8lab packet §5.1
Packet fragmentation / reassembly ipv8lab frag §5.1
Two-tier routing with VRF ipv8lab 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

Feature CLI Spec
Zone Server (OAuth8, ACL8, DHCP8) ipv8lab zone §1.3, 1.4
Multi-zone simulation ipv8lab multizone —
mTLS encryption layer ipv8lab mtls —
Cloud Provider VPC mapping ipv8lab vpc §17

Routing & Traffic

Feature CLI Spec
BGP8 path selection with CF metric ipv8lab bgp8 §8.4
Cost Factor (7-component metric) ipv8lab cf §1.6
XLATE8 north-south traffic flow ipv8lab xlate8 §1.4
XLATE8 Even/Odd Load Balancing ipv8lab xlate8lb §15.1
NAT8 address translation ipv8lab nat8 —
CGNAT Behaviour simulation ipv8lab cgnat §15
ARP8-driven version selection ipv8lab arp8 §2
Inter-Company Interop ipv8lab interop §4.6–4.7

Security & Compliance

Feature CLI Spec
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 Enforcement ipv8lab 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

Feature CLI Draft
WHOIS8 protocol (server, client, HMAC signing) ipv8lab whois8 whois8-00
NetLog8 protocol (wire framing, collector, relay) ipv8lab netlog8proto netlog8-00
BGP8, OSPF8, IS-IS8, RINE, ARP8, XLATE8, WiFi8, SNMPv8 — 7 companion drafts

Operations & Tooling

Feature CLI
PCAP export for Wireshark ipv8lab pcap
Traceroute8 diagnostic ipv8lab traceroute
NetFlow8 flow monitoring ipv8lab netflow8
QoS / traffic shaping ipv8lab qos
Packet fuzzer ipv8lab fuzz
Docker multi-node testbed ipv8lab docker
TUI dashboard (Textual) ipv8lab tui
Web dashboard ipv8lab dashboard
Performance benchmarks ipv8lab bench
Packet capture / replay ipv8lab capture
Socket API mock (AF_INET8) ipv8lab socket
Address Usage Model table ipv8lab usage
Interior Link Convention ipv8lab 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

Doc Description
Examples 10 step-by-step walkthroughs
CLI Reference All 35 commands with usage examples
Python API Using ipv8lab as a Python library
Spec Coverage Full draft-thain-ipv8-02 mapping
Architecture Module categories & dependencies
Overview Project overview
Addressing IPv8 address format (Sections 3, 4, 6)
Packet Format 28-byte header (Section 5.1)
Routing Simulator Two-tier routing (Sections 8.7, 8.8)
Testbed Local testbed setup
Glossary Key terms and abbreviations
FAQ Frequently asked questions & troubleshooting
Roadmap Version history & future plans
Changelog Release-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.

Metadata

Release files for open-ipv8-lab 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for open-ipv8-lab 0.13.0
File Size Uploaded
open_ipv8_lab-0.13.0.tar.gz 254.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for open-ipv8-lab 0.13.0
File Interpreter ABI Platform
open_ipv8_lab-0.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 476.7 kB

Release files / open_ipv8_lab-0.13.0.tar.gz

Download URL open_ipv8_lab-0.13.0.tar.gz
Size 254.9 kB
Tags Source
SHA-256 checksum
How to use checksums
97bbc30da6fb3dedb14f703478a34a9817dc5d4eb06bd68eb6917952f86cdcdf
BLAKE2b-256 checksum
How to use checksums
222a779b47df7965e46f71f333aa6177883fe51cb607dd83a03fd0bec5c9c4e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release files / open_ipv8_lab-0.13.0-py3-none-any.whl

Download URL open_ipv8_lab-0.13.0-py3-none-any.whl
Size 221.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ebe1d8d0c53351135e64657fa0e1326db976a444595062a401788f5e2ef6eef7
BLAKE2b-256 checksum
How to use checksums
91f83fc20f3a89c682b6ee84e91579330f614883434d1ad0012197e3a3da32b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.13.0 This release

2 release files

0.12.9

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.0

2 release files

0.11.1

2 release files

0.11.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page