Tools and configurations to enforce IPv6-only ingress and service routing across the FlatRacoon Network Stack.
Part of the FlatRacoon Network Stack.
Internet (Dual-Stack)
│
┌──────────▼──────────┐
│ IPv6 Ingress │
│ (This Module) │
│ ──────────────── │
│ • NAT64/DNS64 │
│ • IPv4 rejection │
│ • Happy Eyeballs │
└──────────┬──────────┘
│ IPv6 only
┌─────────────────┼─────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ Services │ │ ZeroTier │ │ IPFS │
│ (K8s) │ │ Overlay │ │ Nodes │
└─────────────┘ └─────────────┘ └─────────────┘-
NAT64/DNS64 gateway - Jool-based translation for legacy clients
-
IPv6 ingress controller - Nginx/Envoy configured for v6-only
-
Policy enforcement - NetworkPolicy manifests rejecting IPv4
-
Monitoring hooks - Prometheus metrics for v4 rejection counts
-
Happy Eyeballs support - RFC 8305 compliant client handling
ipv6-site-enforcer/
├── manifests/
│ ├── nat64-deployment.yaml
│ ├── dns64-configmap.yaml
│ ├── ingress-controller.yaml
│ └── networkpolicy-v6only.yaml
├── configs/
│ ├── jool.ncl # NAT64 configuration
│ ├── dns64.ncl # DNS64 resolver config
│ ├── ingress.ncl # Ingress controller settings
│ └── policy.ncl # Network policy rules
├── scripts/
│ ├── enforce-v6.sh # Runtime enforcement
│ ├── audit-v4.sh # Detect IPv4 leakage
│ └── metrics.sh # Collect rejection metrics
├── Justfile
├── README.adoc
├── STATE.scm
├── META.scm
└── ECOSYSTEM.scm| Input | Description | Source |
|---|---|---|
IPv6 prefix |
Allocated /48 or /64 for services |
Network administrator |
NAT64 prefix |
64:ff9b::/96 or custom |
Configuration |
DNS64 upstream |
Resolver for synthesis |
Network configuration |
Ingress rules |
Service exposure policies |
configs/ingress.ncl |
| Output | Description |
|---|---|
IPv6-only ingress |
All inbound traffic forced to IPv6 |
NAT64 gateway |
Legacy IPv4 client compatibility |
Rejection metrics |
IPv4 attempt counts and sources |
Audit logs |
Compliance reporting |
-
zerotier-k8s-link - Overlay uses IPv6 addressing
-
ipfs-overlay - IPFS nodes bind to IPv6 only
-
network-dashboard - v4 rejection metrics displayed
-
bgp-backbone-lab - IPv6 route announcements
{
"module": "ipv6-site-enforcer",
"version": "0.1.0",
"layer": "network",
"requires": ["kubernetes", "jool", "dns64"],
"provides": ["ipv6-only-ingress", "nat64", "dns64"],
"config_schema": "configs/schema.ncl",
"health_endpoint": "/ipv6/health",
"metrics_endpoint": "/ipv6/metrics"
}# 1. Deploy NAT64/DNS64 gateway
just deploy-gateway
# 2. Configure ingress controller
just configure-ingress
# 3. Apply network policies
just enforce-policies
# 4. Verify enforcement
just audit2001:db8:face::/48 # Example allocation
├── 2001:db8:face:0::/64 # Kubernetes services
├── 2001:db8:face:1::/64 # ZeroTier overlay
├── 2001:db8:face:2::/64 # IPFS cluster
└── 2001:db8:face:ff::/64 # NAT64 pool