Using IPv6 tunneling to sidestep gaming NAT issues

  • I am not sure if this is gaming, NAT or this forum but going to guess this one.

    Network situation is:

    • pfsense on baremetal defending a home network with five adults all pretty heavy Internet users.
    • UPnP (as much as I hate to have it enabled) is not doing the job.
    • All clients (that matter) are on wired connections

    We're having some problems mainly with:

    • Overwatch (PC version) - Sporadically lagging very hard. I have not been able to identify the problem.
    • Destiny 2 (PC version) - Issues with match making kind of working or not working at all. This one required static Outbound NAT mappings added and UPnP enabled (wtf?).

    The information I have found on the Destiny 2 problem is, well mostly rubbish and hard to sort through. I found mention of:

    • Destiny not liking pfsenses randomisation of source ports.
    • "Use a DMZ" ...
    • "Plug your XBox directly into the modem"
    • "Port forward 40,000 ports"
    • The various different STUNs that games using having their own quirks.
    • "No it's the servers"
    • "No it's the net code"
      etc. etc.

    If it was NAT I would have expected a game or any program to just not work at all. But that doesn't seem to be the case. It seems to be possible to be in this "half way working" land. Reading about these Destiny problems made me wonder if this NAT traversal issues might be the cause of Overwatch's lag spurts too.

    Even if I did come up with some solid set of NAT rules, there's multiple clients what then? Enable/disable/change forwarding IPs each time someone else wants to play? Anyway, this all seems like a rather deep rabbit hole and I don't really have the time or patience for it.

    So I got thinking, could I solve elegantly with an IPv6 tunnel? I would roll my own as free ones I have used in the past are rubbish and it would be a good learning exercise. It looks like these games do use IPv6 (again hard to find concrete information on that to be sure).

    Has anyone here been in a similar situation and attempted this? Any feed back? Am I wasting my time?