Test out new ipv4-expose idea and document it

This commit is contained in:
lol3rrr
2026-02-22 01:45:39 +01:00
parent c46662cce1
commit 485570ee63

View File

@@ -1,6 +1,6 @@
+++
title = "Homelab - IPv4 Expose"
date = 2026-02-16
date = 2026-02-23
description = "How I expose my IPv6 only Homelab for IPv4 clients"
draft = true
@@ -63,12 +63,28 @@ Fixed forwarding for everything received on the v4 ip, no way to forward based o
The idea with this is to basically perform some static NAT64, to map ports on the ipv4 side to specific addresses and ports on the ipv6 side.
This would allow me to have one entry for every port that I want to expose, regardless of the IPv6 or port of the service.
Rough plan (not tested or applied):
- Follow the [basic NAT64 tutorial](https://www.jool.mx/en/run-nat64.html)
- Configure the [BIB](https://www.jool.mx/en/bib.html) Entries using the [bib commands](https://www.jool.mx/en/usr-flags-bib.html)
- For teamspeak this should be something along the lines of `jool bib add 2001:4dd5:ae46:81:f652:14ff:fe94:dc00#9987 51.158.177.228#9987 --udp`
1. Same
2. Same
3. Same
4. Same
5. Configure [Jool](https://www.jool.mx/en/index.html)
1. `/sbin/modprobe jool`
2. `jool instance add "example" --netfilter --pool6 2001:0bc8:1640:6554:0:0:0:0/96`[^nat64_setup]
3. `jool -i "example" pool4 add --udp 51.158.177.228 1-65535`[^pool4_setup]
4. `jool -i "example" pool4 add --tcp 51.158.177.228 1-65535`[^pool4_setup]
6. Same
7. Example Setup of bib[^bib_explained] entries (for teamspeak3 in this case)
1. `jool -i "example" bib add 2001:4dd5:b276:1:f652:14ff:fe94:dc00#9987 51.158.177.228#9987 --udp`[^bib_add_command]
2. `jool -i "example" bib add 2001:4dd5:b276:1:f652:14ff:fe94:dc00#30033 51.158.177.228#30033 --tcp`[^bib_add_command]
## TODOs
- Automate the jool setup
- Automate the configuration of the corresponding entries
## Future Work
- Automate the jool setup (ansible playbook or maybe even using cloud-init)
- Automate the configuration of the corresponding entries (likely a custom integration with consul)
## References
[^nat64_setup]: [basic NAT64 tutorial](https://www.jool.mx/en/run-nat64.html)
[^pool4_setup]: We need to configure the [pool4](https://www.jool.mx/en/pool4.html) used by jool using the given [pool4 commands](https://nicmx.github.io/Jool/en/usr-flags-pool4.html)
[^bib_explained]: [BIB](https://www.jool.mx/en/bib.html)
[^bib_add_command]: [bib commands](https://www.jool.mx/en/usr-flags-bib.html#add)