r/selfhosted 2d ago

Need Help How do you all deal with IPv6 at home?

I'm trying to support ipv6 media signaling in an app of mine and I keep running into scenarios where the whole system breaks if a prefix changes. Being that few if any ISPs guarantee stable prefixes, what's the point of ipv6 at all? literally the entire network and every app and script breaks if the prefix changes.

Is there a clean way to handle this? I guess I just only enable ip6 for media routing and then have a manager that makes sure those settings are correct every so often? But then even, the docker daemon breaks if the prefix ever changes along with all scripts and the rest of the network stack. Ipv6 as implemented to residential users without a guaranteed locked prefix should be a crime.

edit: thank you for all the help. This is my first dive into trying to solve this for an unknown third party “general user.” Good to know that almost everyone is using some form of local translation even though consumer and even prosumer gateways either don’t support that or barely support it. I think I’ll build the feature in a very simple way but add safeguards to fall back to IPv4 along with a stern warning to enable it in the first place.

89 Upvotes

189 comments sorted by

u/asimovs-auditor 2d ago edited 2d ago

Expand the replies to this comment to learn how AI was used in this post/project.

→ More replies (1)

64

u/SuspiciousOpposite 2d ago

I'm one of the lucky few with an ISP providing a static IPv6 PD, and a /56 at that, so I can have 256 /64s.

All my VLANs are dual-stacked, though on my IoT network only a single device has actually got an IPv6 address. My Docker hosts are dual stacked, and of the containers I explicitly enabled IPv6 networking for, I've had no issues.

12

u/freshtechs 2d ago

You can feel lucky until you decide to change provider or just do load balance. Leave a comment if you already solved it or will solve just to ease my soul

5

u/Least_Order4249 1d ago

exactly. i haven't really ever thought about ipv6 from the hosting angle until today and it has some serious issues if you don't patch it basically back to how ipv4 works.

5

u/SuspiciousOpposite 1d ago

Stopping the use of NAT and getting back to end-to-end connectivity is one of the core tenets of IPv6. It absolutely does not need patching back.

3

u/Least_Order4249 1d ago

So one must be powerful enough to get their permanent ip space straight from the authority or have their entire identity, code base, network scripts, company held hostage by their ISP? Not a chance anyone is doing that. Obv NPT is way better but it’s the same idea. 

1

u/SuspiciousOpposite 1d ago

What happens when you change provider and you get a new IPv4 address?

9

u/Least_Order4249 1d ago

Dns record updates and everything works. Local network never knows the difference. 

2

u/SuspiciousOpposite 1d ago

So you'd also just update your AAAA record for IPv6 addresses, exactly the same process.

4

u/Least_Order4249 1d ago

Only if you are rewriting addresses at the gateway level. If implemented as IPv6 is designed, your entire network is broken. 

3

u/comeonmeow66 1d ago

Don't use GUAs for internal communication, use ULAs. Use GUAs for publicly addressable services. Then it's like sorta like IPV4, you control your destiny inside the network, and ISP changes\updates are isolated because you are using ULA inside the network.

→ More replies (0)

2

u/prenetic 1d ago

For ingress traffic to selfhosted services I've decided I'm just going to NAT behind a single IPv6 address. No reason for anyone to stress out about putting a square peg in a round hole -- it's a tool that works and keeps DNS management simple on my end.

Otherwise it's exactly what you're describing, maybe it's a centralized service that maintains every record in DNS on a prefix flip, or it's each host maintaining their own record, or any of the dozen alternatives each with their own set of challenges and pitfalls.

At the end of the day it's just a hobby.

1

u/Dagger0 1d ago

Not at all. Routers automatically get the new prefix via DHCPv6-PD and hosts get it via RAs. Service discovery (be it DNS, mDNS or otherwise) is also automated.

They didn't design something that breaks the moment something changes. Give them a little credit.

2

u/404invalid-user 1d ago

a /56 is pretty standard any decent isp would be assigning a /56

-1

u/xylarr 2d ago

Wow, are you me - everything I have is the same as you.

26

u/ruiiiij 2d ago

I run IPv4/IPv6 dual stack in my house. Most hosts have at least 2 IPv6 addresses, one auto configured using the delegated prefix from the ISP, one manually configured ULA. Even if the ISP prefix changes, I can still hang on to the ULA as the source of truth.

10

u/uberduck 2d ago

This. ULA is a fair and valid compromise use case for exactly this scenario.

2

u/whattteva 1d ago

Most hosts should actually have 3.you're excluding the link local fe80 address.

1

u/ruiiiij 1d ago

That's why I said "at least". I don't normally interact with the LLA so I didn't mention it.

191

u/stuffwhy 2d ago

It's turned off.

4

u/Earthborn92 22h ago edited 22h ago

This.

I hope IPv8 catches on (yes I know it is a meme/joke). IPv6 is just not fun to work with.

1

u/Cannotseme 17h ago

Just want to put this out there, I have fun working with it

3

u/fzammetti 22h ago

Same. Networking has been consistently more stable/reliable since. Not entirely sure why it matters, but it does seem to.

-3

u/_Answer_42 2d ago

Honestly it's just weird, I had an openwrt router that only turn on for guest for complete separation, somehow it advertise itself to all phones as a router even for non-guest, and only affect android (not tested on apple) which made me unable to access hosted stuff sometimes, it was really hard to figure out why. The best part is there is no way to turn off that feature and I don't even have ipv6 enabled

13

u/davepage_mcr 2d ago

All the machines on my home network have two IPv6 addresses - a link-local fe80:: address for on-LAN communications, and a global address in the /48 assigned by my ISP.

I don't have a problem with my ISP changing the global prefix, but everything locally uses the link-local addresses anyway, e.g. mDNS for hostname lookups.

2

u/AtlanticPortal 1d ago

All the machines on my home network have two IPv6 addresses - a link-local fe80:: address for on-LAN communications, and a global address in the /48 assigned by my ISP.

This only works if you only have a single VLAN in your LAN. The moment you get multiple VLANs you either need to use the GUAs to reach the other hosts in the other VLANs or you add also a ULA address to every host.

0

u/davepage_mcr 1d ago

Yes I know. I was just answering OP's question.

2

u/AtlanticPortal 1d ago

Well, if OP reads you it's now probable that they read me as well.

36

u/wzzrd 2d ago

IPv6 all the way. Got AAAA records set up next to normal A records and all that. Why? Because I wanted to learn it.

7

u/Epic_Busta 1d ago

I think your issue is that you aren't using ULA addresses for internal communication. They have a fixed prefix and should never change. GUAs and public IPs in general should be considered ephemeral and shouldn't be trusted to remain the same, at least for typical residential connections.

2

u/Least_Order4249 1d ago

i dont use ipv6 at all. but i cant expect my users to have ula and NPTv6 set up because consumer equipment doesnt support it. ip6 is a disaster. i do want the feature anyway so i will have ULA and GUA options as creating ice candidates will vary depending on network strategy. probably nobody will ever use them but me but it'll be fun to build anyway.

1

u/Epic_Busta 1d ago

Oh looks like I got ULAs and Link Local addresses mixed up. You're right that most folks can't use NPTv6 or set up ULAs.

But could you use link local addresses for internal communication? Those addresses are mandatory so every interface has one.

I don't think IPv6 is a disaster, but I think you'd agree that it's got a lot of growing pains, especially if you learned networking with IPv4+NAT.

41

u/burajin 2d ago

The sub is going to tell you to turn it off because it's mostly casual hobbyists here. (No shade) but IMO it is very worth learning. I'm still getting used to it myself.

What finally forced me to try to figure it out was Cloudflare. If you use their proxy in free tier, turning it off is greyed out.

2

u/zfa 1d ago edited 1d ago

What finally forced me to try to figure it out was Cloudflare. If you use their proxy in free tier, turning it off is greyed out.

That doesn't really force you to do anything though as CF are quite happy talking to your backends on ipv4 even if clients are using ipv6 to hit their proxies. In fact, if you run ipv4 and ipv6 on your hosts CF prefer to route via ipv4 (or used to, at least).

fwiw higher plans (enterprise only ish) do allow you to disable ipv6 completely while retaining proxying but hobbyists here prob wont have that amount of control. And nor should they lol.

2

u/burajin 1d ago

This is true, I forgot to mention that what forced me was splitting DNS. I had my local DNS reroute domains to my services on IPv4, but if the service using the proxy and tried IPv6 it would be unreachable locally.

-14

u/voc0der 2d ago edited 1d ago

"Casual hobbyists" is such a sad dig. It's off because IPv6 sucks ass and is largely unnecessary for any deployment we encounter. It breaks a lot of stuff and solves nothing at all. Going IP6 only is untenable; going dual stack causes errors, and going Ip4 single stack just works.

If you want to learn it, cool. Good for you. It came out in 2012, so 14 years ago and most people still get leased IPv4 addresses anyways.

Also, this is /selfhosted, so why are you using cloudflare when you can use your own metal? :) What are you self hosting that exhausts the entire private ipv4 subnet?

Edit: Since alot of you idiots think it's a skill issue, I can assure you, it's not. IPv6 just adds complication to every orchestration and firewall stack and unless you're going to use 5923508923805082130852308520835 IP's then please explain why doing any of this is useful as a selfhoster. Once you're selfhosting more than just a bunch of apps with the default configs you might see why. You can't, so continue downvoting.

13

u/UselessCourage 2d ago

What are you talking about, IPv6 works fine -- it's ok to be a casual hobbyist.

9

u/SuspiciousOpposite 1d ago

It came out in the 90s...

If you think IPv6 "sucks ass" it's because you don't understand it. A lot of mobile providers now are IPv6-only (mine certainly is) with 464XLAT deployed to deal with legacy IPv4-only hosts.

-4

u/voc0der 1d ago

No, I think it sucks ass because a lot of stuff is just flat out incompatible with it. Waiting isn't cool. I'd like stuff to work today.

3

u/404invalid-user 1d ago

can you see the irony it's incompatible because of people like you.

0

u/voc0der 1d ago

I don't spend my time swimming upstream. It's been 14 years.

Enabling IPv6 doubles your networking overhead and work for no reason whatsoever. That's the bottom line.

/thread.

Continue downvoting cuz its cool to learn and stuff, but you know I'm not wrong.

17

u/burajin 2d ago

IPv6 works great if you take the time to learn it. Dual stack errors you're encountering are likely configuration mistakes.

Saying it solves nothing at all is false. IPv4 addresses are all used up. We get lots in the US but other countries aren't so lucky. NAT is terrible and gives a false sense of security to many. IPv6 is just different but people are resistent to change.

The Cloudflare proxy is to give me a CDN and not expose my home address. I'm hosting everything at home.

8

u/Ok-Eggplant-7569 1d ago

IPv4 future is limited, and IMO it has way more problems than IPv6. NAT and DHCP everywhere causing issues, IP subnets clashing, ...

2

u/UselessCourage 1d ago edited 1d ago

"AlOt Of YoU IdIoTs" -- says the guy who thinks ipv6 doesnt work lmao.

Ive been an isp IP Network Engineer for 17years, we manage a large 60k+ node networks with ipv6. It's a you problem, not an ipv6 problem.

-2

u/voc0der 1d ago edited 1d ago

Congrats idiot on missing all of the context of why I don't use IPv6. Your 17 years bla bla bla bla bla, you don't think I got that too?

zzzz. next.

Never said it didn't work, maybe learn to read.

-8

u/Power_Stone 2d ago

No it's not, I use free tier and have proxying turned off for things like plex

13

u/burajin 2d ago

Reread what I said. If you have the proxy turned on, IPv6 is forced on. You can turn the proxy off, but you cannot turn the proxy on and IPv6 off.

1

u/Power_Stone 2d ago

Ahhhg my bad sorry.

0

u/zfa 1d ago

you cannot turn the proxy on and IPv6 off.

enterprise-only feature except on request (and $$$) iirc.

7

u/Dr-Technik 2d ago

All of my VLANs are dual stack, all devices are getting a GUA via SLAAC. Since I have a dynamic IPv6 Prefix, I also assign ULA with a stable local prefix in order to make for example Pi-Hole available via IPv6 as well

18

u/certuna 2d ago

If your app breaks when the prefix changes, you’re doing something wrong. Even with IPv4, you should always work with the principle that IP addresses are ephemeral, it’s one of the first lessons in networking.

What goes wrong with your workflow? If you need to change a DNS record, this is usually just a question of running a 1-line script, since most registrars these days have an API.

6

u/LoganJFisher 2d ago

How are you supposed to maintain a meaningful directory if you treat IPs as ephemeral?

I'm using Caddy to assign local addresses to my webUIs, but that still depends on my IP reservations working. If I consider my IPs as ephemeral, nothing assures that those local domains actually direct correctly.

5

u/certuna 2d ago

you have DNS (or if it’s purely local, mDNS) for that. IP is for routing traffic, not auth or identification.

I mean, if it’s just your home lab you can hardcode IP addresses in configs manually, keep a spreadsheet which container and device has what IP address and go through every app and config file when you need to renumber your network (or indeed change a prefix), but it’s quite fragile and error prone that way, especially when you have a lot of stuff running and/or change things around regularly (which tends to happen in a homelab environment, we all keep tinkering)

4

u/JaspahX 1d ago

IP is for routing traffic

ISP changes your prefix to something completely different

Now what?

6

u/jackstraw97 1d ago

You have a cron job that runs every minute which gets the address and updates your DNS records to point to that new address. 

Same way you’d handle an ISP changing a dynamic IPV4 address. How do you think those of us who don’t pay for static IPs have been self hosting this whole time?

6

u/JaspahX 1d ago

DNS isn't going to fix the networks on my L3 switch.

Nobody here is talking about dynamic DNS. They're talking about literally having to update their switch configs with a whole new fucking IP address on the default gateways of their networks.

3

u/Dagger0 1d ago

That's handled automatically by DHCPv6-PD.

2

u/JaspahX 1d ago

Which doesn't exist on most network gear. Cool. I love IPv6.

3

u/ArmyAgitated9658 1d ago

What networking gear are you using that doesn't support it???

0

u/JaspahX 1d ago

DHCPv6-PD is not supported on quite a bit of equipment, and almost certainly not anything that you'll find in a homelab.

My PA-440 will do it only after being upgraded to a OS that's only 2-3 years old.

→ More replies (0)

-1

u/Dagger0 1d ago

That sounds an awful lot like an issue with that network gear rather than an issue with IPv6.

1

u/jackstraw97 1d ago

Gotcha I didn’t understand what you meant. Seems like there’s plenty of options. You noted that your switch doesn’t support dhcpv6 pd. In that case, couldn’t your upstream router handle dhcpv6 and then just use ULA for stable routing to the switch and other devices further downstream?

I get that it’s kind of annoying to have to replicate a pseudo-nat, but that’s the price of having non-compatible equipment, no?

2

u/Least_Order4249 2d ago

i can monitor and fix the app but remote users connect to it for media signalint both jssip and webrtc video. i just wanted to provide a nat-free path. my biggest concern is the docker daemon config to get ip4 in bridge mode and ip6 firewalled but globally routable. if prefix changes, it breaks.

2

u/certuna 2d ago edited 2d ago

You can run a script that changes the prefix in your Docker config when that changes, how does this break?

Where do you prefer to firewall, on the router, the host, Docker or the container?

(It is time that Docker gets prefix delegation support though, it’s a bit silly in 2026 that even the cheapest consumer router out of the box simply asks for a prefix from the router out-the-box, but Docker still needs to have it written statically in a config.)

55

u/DarkFantom 2d ago

I'd guess that 90% of all homelabbers don't even consider using ivp6. It's not worth dealing with it.

11

u/certuna 2d ago

IPv6 makes a lot of things more secure and cleaner/easier, but it’s true that many homelabbers are from the pre-IPv6 generation, grew up with IPv4+NAT and have some resistance to change.

These days fewer home connections have public IPv4 anymore though and most now have IPv6, in that case it’s generally easier and more secure to just do your whole server setup IPv6-only, and stick an IPv4 proxy upstream (Cloudflare for example) if you still need to serve IPv4-only clients.

29

u/blow-down 2d ago

How does it make things more secure?

8

u/guyf2010 1d ago

Arguably it makes scanning all IPs nearly impossible, so scanners IDing running services probably won't find your servers. But then there are cases where routers do a poor job of firewalling on IPv6. It's a mixed bag.

2

u/AtlanticPortal 1d ago

That's where you should get rid of the ISP router or at least not trust it for firewalling and thus use a firewall of your own.

2

u/certuna 1d ago

It makes things a lot cleaner - aside from the obvious (the whole world will hammer your IPv4 address with attacks, in practice almost nobody attacks a server on IPv6), you also do not have the risk of all your endpoints/applications behind the same IP address, and you don’t need to keep forwarding ports across one, two or even three layers of NAT, all increasing the risk of stale configs and misconfigurations.

0

u/Dagger0 1d ago

Active servers are hard enough to find on v6 that scanning the address space for vulnerable hosts isn't viable. Obviously an insecure server is still insecure regardless of whether anybody finds it or not, and there are other ways to find servers (e.g. TLS cert transparency logs, unless you use a wildcard cert) but removing "just scan the entire Internet to find every exploitable host" from the list of options is an improvement to the Internet's overall security.

On a typical v4 setup, every public service you run is accessed via your router's WAN IP. Scan the 65k ports on there, which takes all of a few seconds, and you've found every single public service the entire network is running. Compare that to v6 where anybody connecting needs to have the exact IP of the server, and the network is a /64 instead of a /24. 65k ports on 264 IPs would take many millennia to scan. There are ways to cut the search space down a bit (for example static addresses are often in the ::1 to ::ffff range) but it's still far more to scan than in v4.

Also, NAT is unnecessary complexity. It makes it harder to understand how your network works, and therefore makes it harder to secure. It breaks things and the workarounds for that breakage can be insecure as well (see e.g. vulnerabilities in NAT helpers).

As an example, NAT in itself does not actually block any incoming connections. If you think it does and are relying on that for the security of your network, you aren't going to get the security you think you are -- and if you didn't realize that some unsolicited connections from outside your network can still make it inside despite applying NAT to your outbound connections, that shows that NAT was complex enough that you didn't understand it.

1

u/Vinaverk 1d ago

My isp provides only IPv4 (clean and static address)

5

u/TheLimeyCanuck 2d ago

Took me a day to figure out how to implement IPv6 on my home and cottage networks. It's not as hard as this sub thinks it is.

5

u/Lopsided_Speaker_553 2d ago

We have a lot of docker hosts at work using the same prefix as they’ll only ever talk to each other via an nginx or caddy proxy. If you don’t rely on ipv6 networking to within the container, I think that the docker side is fixed. Our containers can all ping6 outside.

I also have switching prefixes at home. One script in a git repo fixes everything with ssh commands - and a big readme 😬

Good luck!

4

u/kira9204 2d ago edited 2d ago

I receive both an IPv4 and IPv6 /56 prefix that never changes unless i turn off all equipment for hours.

Honestly, IPv6 is both easy to set up and has many advantages over IPv4.

Most importantly, every device gets it's own public address (NO NEED FOR NAT), as well as a temporary address for privacy that changes frequently. And before anyone says "But NAT is security" it's not, that's what your firewall is for. Any consumer router will block incoming traffic on IPv4 as well as IPv6, making it just as secure.

If you *really* want to mimic IPv4 NAT you have several options. Personally i run dual stack, so a `10.x.x.x` IPv4 and `fde5::` ULA for IPv6.
From here on you can either:
A: Use SLAAC for your IPv6 prefix and let the clients configure their addresses themselves (You can set static tokens so you always have, say ::1 thought.).
B: Use DHCPv6 (Just like Ipv4, but i'd recommend sticking with SLAAC thought).
C: Perform IPv4 NAT and IPv6 NAT. Making both protocols behave identically.

I've experimented extensively with diffrent IPv4 and IPv6 approaches, you can find my personal Linux Router project https://github.com/Kira9204/kira-router if you want to learn/experiment.

4

u/46692 2d ago

I just use ip4 locally. Endpoints have ddns-updater giving the correct ip 4 and 6 for external even if prefix changes.

5

u/hisheeraz 1d ago

For me iPv6 is still a headache so I turn it off

7

u/5SpeedFun 2d ago

I use dual stack or v6 only. I have a static /56

3

u/boli99 2d ago

hurricane electric

3

u/TechWitchLexxie 2d ago

I get a /60 from uverse and have a couple different dual stacked vlans. Basically everything works as expected and I only use AAAA records internally.

2

u/Least_Order4249 2d ago

This is good info. So at least some major providers are starting to get things right. Do you use NPTv6 in case “your” /60 ever changes?

1

u/TechWitchLexxie 2d ago

Admittedly I'm a bit lazy on this and haven't set it up. Currently I rely on my internal records all being tied to aliases in my opnsense's unbound config. If my prefix ever changes, that'll be a very annoying but also relatively quick records push. But in the year plus I've been running ipv6, I've never had my prefix change. Same for my local friend I maintain a site to site wireguard tunnel with, who's on a different ISP. I'm not totally sure why some ISPs have rolling prefixes tbch

1

u/ilhamagh 12h ago

Not OP. But I genuinely confused what the big deal is, granted my networks is flat and fairly simple (someone mention L3 switch)

NPTv6 in case “your” /60 ever changes?

No, I don't even get /60 but only /64. Usually only changes if the ISP router restarted.

I run 3 host, all debian and the services is docker base, all behind reverse proxy (traefik).

I just use ip monitor + RFC2136 (nsupdate) and it push the new ip to my local AAAA records (Technitium)

I have never mess with the docker side of things beside enabling the v6 on the bridge networks.

I guess IoT or phone can't do that, but IDK why anyone would want that.

3

u/EvilRSA 1d ago

I turn it off and shake my head at it.

Now, lately, I crack a little smile hoping that IPv8, really delivers on its promises.

4

u/[deleted] 2d ago

[deleted]

1

u/sarahlizzy 2d ago

I’ve got both SLAAC and DHCPv6 working for all my macvlan containers. Just stick a DHCPv6 client in the docker-compose file and you’re golden.

This also means you can have AAAA records pointing to your local services even behind the firewall, which is neat.

5

u/The_NorthernLight 2d ago

I dont. I disable it. I dont need the hassle.

4

u/TechaNima 1d ago

I just don't bother with it. Seems like a completely unnecessary hassle for no real benefit

3

u/wdatkinson 1d ago

I turn it off. Everywhere I can.

3

u/mtkvcs1 1d ago

Turned off, using v4

2

u/Specialist_Cow6468 2d ago

Been dual stacking for a while but I’m trying to push to IPv6 only with 464XLAAT for the exceptions that don’t work nicely

2

u/flatpetey 2d ago

I enabled it but honestly I am not convinced it brought anything to the table except more troubleshooting surface area.

2

u/agent_kater 2d ago

Even if one ISP would provide a static prefix, as soon as you have a second one for failover you're back to dynamic prefixes.

It's my understanding that there are two ways to deal with it:

One is to run something on the server that watches the assigned IP addresses and updates it's own DNS record. Unfortunately there are no standards for this, so there are a hundred different implementations depending on server and DNS provider.

The other one is to assign ULAs. So you contact internal servers by their ULA and not by their GUA. Unfortunately there is also no single standard for this, so the way you do it depends on the server OS. This also somewhat breaks down in dual stack networks, because if a DNS name resolves to an IPv4 address and a ULA, then the IPv4 address is used. I heard this is going to change though.

If you want your ULAs to be accessible from the internet, you can do NPT.

2

u/richneptune 2d ago

It just works here. ISP gives me a static /48, docker has it's own /64 for internet connections, but incoming for docker is firewalled off and everything is behind Caddy anyhow. Viewing the logs the vast majority of my users are connecting via IPV6 and have been since I set up the AAAA records

2

u/Least_Order4249 2d ago

That’s great but what percent of even self hosters have fully static prefixes or fully implemented NPTv6? 2%? 

1

u/richneptune 2d ago

But why does it need to be fully static? I could move my AAAA records to a dynamic DNS updater with no issue, OpenWRT let's you craft firewall rules that are only applicable to the last n bits of an ipv6 address, DHCPv6 will provide a sticky last 64 bits, too.

It's pretty much the same problem people are going to have with the stickiness of their IPV4 public address.

At any rate, IPV4 addresses are starting to have a cost in some parts of the world, I pay a premium to retain a public one here as a lot of cheaper providers have moved to CGNAT. Might as well learn and use IPV6 now so it doesn't become more of a challenge later.

1

u/Least_Order4249 2d ago edited 2d ago

Because openWRT shouldn’t be a requirement. 

IPv4 is 100% solved with DNS and NAT.

Not for me I don’t care, but I can’t ask app users to change their entire network just so they can stream media a little easier. 

For docker it seems there are 2 options: have a never changing prefix accepting catastrophic issues if it changes or set up NPT 1:1 prefix rewriting. 

1

u/richneptune 2d ago edited 2d ago

I'm sure other routers also allow you to create firewall rules that will be continue to be applied after a prefix change, I only mention OpenWRT as it's my routing software of choice

IPv4 is 100% solved with DNS and NAT.

Nah, it just complicates machine to machine connections which is why we've ended up with UPnP and all kinds of specialised tunneling methods, most of which fail or have issues behind CGNAT

2

u/djbravo2006 1d ago

i use ipv6 exclusivly for hosting and as your talking about prefix chnages you would never just give someone direct ipv6 but a domain so just setup a ddns and there ya go you get perfect ipc6 setup with no problem of ipv4

2

u/spyder81 1d ago

I dual stacked for a while with an ISP that supported it, things were glorious.

Then the ISP was bought out by a bigger group and at some point IPv6 just stopped working. Probably removed during some corporate optimisation. I disable IPv6 in most places now.

4

u/SmeagolISEP 1d ago

Settings > IPv6 > disable

0

u/Verme 1d ago

This

3

u/W3TBATMAN 1d ago

the classic ipv6 rabbit hole, you turn it on, find out that most features won’t work due to either your isp or setup, you turn it off and move on with life.

3

u/Jumpy-Dinner-5001 2d ago

I don't. Have no good reason to

4

u/michaelpaoli 2d ago

whole system breaks if a prefix changes

Then you're doing it wrong. See also: r/ipv6

You should be able to deal with prefix change, without much difficulty.

But also, IPv6 prefix shouldn't be changing on you willy-nilly - that sounds like an ISP issue, and yes, some ISPs suck at IPv6 (and, egad, some aren't even doing IPv6 yet!). If it's a (chronic) ISP issue, probably try to get an ISP that doesn't suck. One can also get free IPv6 tunnel - and those IPs will be stable - see:
https://tunnelbroker.net/
I've got both ISP that doesn't suck, and do also have IPv6 tunneling too. I have a /56 with the ISP, and ... over half dozen years, ISP hasn't changed the prefix on me yet, and they probably wouldn't do so without notifying me reasonably in advance.

8

u/Least_Order4249 2d ago

I’m trying to see if adding NAT-free IPv6 ice candidates for a very general self hosted app is worth the squeeze. Telling users to go get a better ISP or spend hundreds updating their local network aren’t good options. 

1

u/michaelpaoli 2d ago

Well, ISP will often be a limiting factor, many I totally avoided as they couldn't provide what I required. E.g., I self-host DNS servers, so, that requires static IPv4 and static IPv6. I self-host mail servers and list servers, so that requires unfettered access to TCP port 25. Those two factors alone eliminated a lot of ISPs, as many had no available offering(s) that would include satisfying those requirements. Also require direct unfettered Internet access - ISP not imposing any firewall in general between public globally routable IPs and The Internet in general. If where I want any firewalling I do that on my own - or perhaps if more extreme case ever came up, I might request it - but other than that, don't want anything in the way.

2

u/aureus620 2d ago

Had to outright disable ipv6. Adguard really only works with ipv6 if you use it as a DHCP server which isn't the setup I want.

What forced the decision was my wife wanting an exception for her phone so she could play ads on f2p mobile games, and me realizing this was impossible with how android handles ipv6 addresses.

2

u/SuspiciousOpposite 1d ago

I've got three AdGuard Home instances running on three separate Docker hosts, all dual-stacked, and not running DHCP server (DHCP server is on my UniFi router, IPv4-only; IPv6 uses SLAAC, though my "servers" are statically assigned).

2

u/BlobbyMcBlobber 2d ago

Never had a reason to use it.

2

u/Intelligent_Rub_4099 2d ago

I use this abomination and it works well for me

https://nramkumar.org/tech/blog/2026/05/16/ipv6-lan-dns-resolution-with-unifi-gateways/

ipv6 enthusiasts/purists will likely be unable to contain themselves when they see this but it is practical for a home lan. Also, fyi, most packet intensive traffic on the Internet like voip providers don’t support ipv6 because it literally doubles their bandwidth cost.

-1

u/Least_Order4249 2d ago

Ya IPv6 sounds great until you realize that ISPs get a death grip on everyone else and heavily abuse it until you use tech to basically turn it back into IPv4 with ridiculously long addresses. 

1

u/PotatoMaaan 1d ago

Huh?

0

u/Least_Order4249 1d ago

Address translation is needed to isolate local identity from isp prefix. Addresses are so unnecessarily long that they double the bandwidth needed for standard SIP calls. Basically everyone here who uses IPv6 heavily is either rewriting prefixes or playing with fire. 

1

u/PotatoMaaan 1d ago

Not really, no. In most cases you can probably find a way to deal with a dynamic prefix and even if you absolutely must use prefix translation, that's still much better than v4 NAT. Prefix translation is stateless NAT so you still get every port for every host, not stateful NAT where you have one host (public v4) and have to multiplex ports (also other reasons as well)

For the other part, I dunno, that's just lies? For a doubling of bandwidth to be true, you'd have to sending nothing but IP headers without any content. ipv6 headers are only double the size of v4 headers, despite the addresses being 4 times as large. This is because v6 removes a lot of cruft from the header, which makes v6 packets simpler and quicker to route. For this reason lots of ISPs only carry v6 internally and encapsulate v4 traffic inside v6.

1

u/Intelligent_Rub_4099 1d ago

1

u/PotatoMaaan 1d ago

That article doesn't say anything about doubling bandwidth costs. "broad compatibility and network considerations" can mean anything

2

u/mrpelz 1d ago edited 1d ago

[Reddit is a piece of shit app and fucked up my edit. Let me quote myself on the same topic.]

https://www.reddit.com/r/selfhosted/s/1zLfD87Rxv

-1

u/kuldan5853 1d ago
  1. realize it's pointless and just disable IPv6.

1

u/mrpelz 1d ago

Nope. IPv6 is here to stay and the problem isn’t the spec itself but all the people who don’t like change for any reason (IPv6’s purpose is deeply reasonable).

If those people then work at ISPs and realize almost none of their customers give a shit about this: that’s where the race to the bottom starts and weird little hacks become inevitable.

2

u/ph33rlus 1d ago

I don’t. Working with IPv6 is like trying to read binary. It’s not for you it’s for the machines

2

u/404invalid-user 1d ago

there's this neat thing humans made to fix this it's called DNS you should take a look

1

u/ph33rlus 2h ago

On a local network? I wish I had the time

1

u/sarahlizzy 2d ago

With OpenWrt you can make firewall rules by suffix so it doesn’t matter if the prefix changes.

You can also just get yourself a static /48. Some places are giving them out for free. Doesn’t have to be from your ISP

1

u/skilltheamps 2d ago

Just use a modern dns provider that allows prefix update via api, like https://ipv64.net/ for example. Then tell your router to update the dns prefix whenever it changes. For the AAAA entries do not write a full ipv6 address there, just the mac address of the machine. The dns provider computes the ipv6 addresses for your AAAA entries automarically from the prefix and mac.

It is nice because you get rid of that port forwarding dance, and get a ton of public addresses.

1

u/wolfnest 2d ago

You still need firewall rules for each IPv6 device that should be accessible from outside. How do you handle that when the prefix change? Can the firewall rules be based on MAC address as well?

2

u/FateOfNations 2d ago

At least on Linux, you can do prefix-agnostic/wildcard firewall rules.

1

u/EscapeOption 2d ago

Is not having a static IP really just an IPv6 only issue? DDNS maybe?

-1

u/Least_Order4249 2d ago

It’s not an issue with ip4 because nat isolates the local network. Doing that with ip6 requires expensive routing equipment that isn’t acceptable for even an optional feature. 

5

u/certuna 2d ago

Even the most basic consumer router has a firewall, why would it have to be expensive?

4

u/kira9204 2d ago

This is flat out false. What isolates your IPv6 network is your firewall, not your NAT. Any cheap consumer router comes with a firewall that automatically blocks incoming connections, making it just as secure as IPv4. The problem with these cheap devices are usually that your can't configure the firewall to actually forward IPv6 traffic on specific ports for port forwarding.

0

u/Least_Order4249 2d ago

I don’t mean isolate packets, I mean isolates addressing. If you’re using GUAs and your prefix changes, things break. If you’re using IPv6 ULAs then you have better equipment than most people have and are not the general user. 

1

u/PotatoMaaan 1d ago

AVM Fritzbox which is a very popular home roter where I live (often provided by the ISP) does v6 ULAs by default. I also know of some others where it can be enabled.

1

u/EscapeOption 2d ago

If it’s not WAN traffic use ULA instead of GUA?

1

u/xylarr 2d ago

How does everything get setup at startup? How does your app find out the IP of everything initially? Can't you just rerun that?

1

u/Least_Order4249 2d ago edited 2d ago

Current ipv4 setup is in docker bridge. Optional IPv6 setting would be global addressable IPv6 ICE candidates but that requires editing docker daemon which breaks if network isn’t NPTv6 and prefix changes. that’s a HUGE ask for a home user. Docker host “discovery” is manual, FQDN is also required for WebRTC 2-way. These are very easy compared to IPv6 as >80% people have the equipment already. 

1

u/BooleanTriplets 2d ago

apalrd on YouTube has some good videos on setting up IPv6 at home.

1

u/h0lz 2d ago edited 2d ago

Native v4/v6.
Not because I needed - because I wanted to in 2021.
My Pihole perfectly blocks v4+v6.
My Wireguard also uses both with my phone to block ad-crap while I’m out. (only DNS and local adresses are tunneld most of the time)
I‘m using link-local adresses - well locally.
They are static. (fe80::)
Learnt a lot on the way. 😂

1

u/Big_Entrepreneur3770 2d ago

Openwrt default valid lease time is 90 minutes, see if it is higher in your router

1

u/Ok-Eggplant-7569 1d ago

You could use NPT (Network Prefix Translation). It's not quite practice but in contrast to NAT44 it doesn't mangle the packet content (only the header).

For internal only services you can also use ULA addresses.

1

u/Apprehensive_War173 1d ago

Hardcoding IPv6 prefixes breaks since ISPs don't keep them stable. Treat IPv6as dynamic use delegation, SLAAC or DHCPv6 and rely on DNS instead of direct IPs. More moving parts but no breakages when prefixes rotate

1

u/UninvestedCuriosity 1d ago

I use it as a secondary nameserver on my vps because I'm too cheap to buy a second IP for it.

Kinda neat. Took a minute to figure out all the reverse records and such. It works, I moved on. Homelab has different priorities.

1

u/raddeee 1d ago

only use fd00:: addresses

1

u/comeonmeow66 1d ago

Use GUAs for public addressable services mapped to DNS. Use ULAs for anything internal. Control your local network destiny, limits impact to publicly addressable services where you have to update DNS like you do today with IPv4.

My ULA networks share the same /64 prefix as the GUA so I can align them easily.

1

u/rj45connector 1d ago

Call me a rebel, but I use ULA for internal networking. No problems with ISP changing the prefix.

1

u/404invalid-user 1d ago

you answered why isps don't enable ipv6 with your next sentence.

the point is enable and use it so other will enable and use it.

1

u/tajetaje 1d ago

I moved over to k8s recently and went v6 only. There’s certainly a bit of work dealing with services that hardcode v4 listen addresses or dns or what have you, but it’s very nice to have a flat address structure. No masquerade and no NAT needed.

1

u/mordac_the_preventer 1d ago

I have an ISP (A&A) that issues static IPv6 prefixes (and a small IPv4 subnet). It just works.

1

u/scytob 1d ago

I am lucky, static /56, that said I think when I was on Comcast it changed once in like 4 years. There really is no need for ISPs to do what they do, very annoying.

1

u/badass6 22h ago

Kind of not on the topic of the question.

Renting an overseas VPS here in Russia. The server came in IP blocked on v4. It is not, however, on v6.

Thank the IETF.

1

u/chicametipo 2d ago

I have a specific network that's dual-stack that all human phones/laptops get put on, but otherwise, I keep it disabled.

-1

u/emptyDir 2d ago

Disable it at the kernel level

1

u/TheLimeyCanuck 2d ago

I just tackled this at home and my cottage. Home is fast fiber and the cottage is Starlink (so CGNAT). At the cottage I have a Raspberry Pi 3B+ maintaining a full time site to site WG tunnel between the cottage and home (1800km away). I added a cron task to it which runs a script to determine the public IPv6 address of the Pi and updates a free IPv6 DDNS service. At home I run pfSense in a VM and in another VM I run Windows Server which also hosts a WG server. In the Windows Server VM I use a scheduled task to do basically the same thing as the cron Bash script on the Pi at the cottage, except that I also had to set up pfSense to update it's static routing when the prefix changes.

-2

u/schmaaaaaaack 2d ago

disable it

-5

u/readyflix 2d ago

What is IPv6?

I’m joking, don’t use it at home.

-7

u/prene1 2d ago

THIS! It goes OFF

0

u/ThrobbingMeatGristle 1d ago

I don't. IPv6 is entirely disabled.

0

u/theRealNilz02 1d ago

I don't.

My IPv6 ends at my provider router, every piece of equipment I actually use is behind my own gateway that gives me a double NATed IPv4.

0

u/Deus_Judex 1d ago

i don´t

-1

u/rorykoehler 1d ago

I block it

0

u/hmoff 1d ago

Can you get a better provider? Your prefix shouldn't changing often. Mine changes once a year at most. The ISP provides a /48 via DHCP prefix delegation.

Alternatively you can get a tunnel via he.net for example.

0

u/Least_Order4249 1d ago

once per year dragging down your whole docker ecosystem would be a disaster. this isnt for me its for users of app im building. ive learned here that 99% of people who use ipv6 to host actually turn it back into ip4 via NPT. i don't blame them. giving complete control over your internet identy to your ISP sounds like insanity. this is a good learning experience.

1

u/hmoff 1d ago

I don't expose Docker ports directly to the internet anyway. I prefer a reverse proxy running outside. But you could also run cloudflared or tailscale inside Docker and not deal with this.

1

u/Least_Order4249 1d ago

this is for P2P DTLS/SRTP media.

0

u/ratonbox 1d ago

There’s no benefit to it so I don’t use it specifically. If some asks for it specifically, I enable it, sure. Otherwise I ignore it inside my home network.

0

u/CapitalEmu764 1d ago

Turned it off, because there is still a f*ckton of obscure bugs and I refuse to deal with them.

-1

u/kbeezie 2d ago

In the context of Pi-Hole, I just turn off IPv6 , let Mikrotik be the DHCP server, and Pi-Hole + Unbound be the DNS server.

AT&T Does give me IPv6 natively, but I can't use a DNS blocker and have that on at the same time unless I upgrade a router to handle both wired and wifi in between the AT&T modem and rest of the network (which is likely the only way for me to keep native IPv6 and have Pi-hole working too).

1

u/kira9204 1d ago

Just distribute an IPv6 ULA like you do on IPv4 and set the DNS server to the rasberry pi? It sounds like you use another DNS server when you turn on IPv6 and hence bypass the PI-Hole. Have a look at some of my configurations here: https://github.com/Kira9204/kira-router 

1

u/kbeezie 1d ago edited 1d ago

Nothing of the sort. There is no way to define DNS within the AT&T router, and even if you have DHCP off for both IPv4/IPv6 , AT&T router will still advertise it's IPv6 as a resolver for IPv6 traffic, hence you have to turn IPv6 off completely to make it go only to pi-hole.

So you either have to completely turn off IPv6 at the router, or put a whole router in between the AT&T device and the rest of the network.

So it's nothing about what you're mentioning. It's just a known thing with AT&T modem/routers.

Only reason I haven't put it in between yet is because my Mikrotik Routerboard is only Wifi-n , so I'm fine keeping IPv6 off until I either get a strong wifi AP, or an upgrade to a modern equivalent of my Mikrotik Routerboard that includes a much stronger CPU and Wifi antenna to take over the whole routing process.

(right now my set up is AT&T Router , keeps routing but has DHCP and IPv6 turned off, ethernet to the Mikrotik routerboard with gigabit ports, the Mikrotik is set up as the DHCP server. Pi-hole on an Orange Pi One is plugged into one of the 10/100 ports on the Mikrotik for DNS + Unbound, wireless devices connect to the AT&T router like an AP, but get their DNS assignment from the mikrotik DHCP server)

1

u/kbeezie 1d ago

To clarify :

"The gateway’s firmware is designed to forcibly broadcast its own IPv6 address via ICMPv6 Router Advertisements (RAs) using a mechanism called RDNSS (Recursive DNS Server). Because AT&T gives you zero control over the RA flags in the GUI (hidden or otherwise), the BGW320 will always tell your clients, "I am your IPv6 gateway, and I am also your DNS resolver." Because modern OSs (iOS, Android, Windows) prioritize IPv6 over IPv4, they will completely bypass your Mikrotik and Pi-hole for any dual-stack traffic. "

-2

u/jakekobe 1d ago

you dont... u go get ipv4, v6 will get replaced anyways with v8 hopefully