Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Test Request: UPnP Fix for Multiple Consoles playing the same game / static port outbound NAT

    Gaming
    28
    133
    45.7k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jimpJ
      jimp Rebel Alliance Developer Netgate
      last edited by jimp

      There has been some progress by the miniupnpd project on support for pf to handle rules like the Linux "masquerade" style. This may help improve how multiple consoles behave when playing the same game, or even to allow single consoles to work without setting up static port outbound NAT rules, provided the game/client sets up UPnP entries for the ports it needs.

      We have compiled a test version of miniupnpd for pfSense 2.5.0 snapshots containing the in-development code which can be used to test if this helps in your environment. [Note: This version will not work on 2.4.5, do not attempt to use it there]

      The package to download, and instructions on how to use it, are at https://redmine.pfsense.org/issues/7727#note-43

      Please post feedback and discussion here on the forum and not on the Redmine issue.

      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

      Need help fast? Netgate Global Support!

      Do not Chat/PM for help!

      1 Reply Last reply Reply Quote 12
      • F
        Firetop
        last edited by Firetop

        Hey there!

        Thanks again everyone! But weirdly, it doesn't appear to be working correctly for me for some reason, as one console can still get on the game (diablo 3) with the same configuration (Static outbound ports, uPnP ACL, NAT reflection, etc) but any other console cannot join the lobby... I noticed some IPv6 stuff in the logs, so I disabled IPv6 from the WAN interface as I don't use it anyways.

        Now I get this in the logs:

        @Jun 2 06:33:11 miniupnpd 26938 no HTTP IPv6 address, disabling IPv6
        Jun 2 06:33:11 miniupnpd 26938 Listening for NAT-PMP/PCP traffic on port 5351
        Jun 2 06:33:11 miniupnpd 26938 PCPSendUnsolicitedAnnounce() IPv6 sendto(): Bad file descriptor
        Jun 2 06:40:05 miniupnpd 26938 ioctl(s, SIOCGIFADDR, ...): Can't assign requested address
        Jun 2 06:40:05 miniupnpd 26938 ioctl(s, SIOCGIFADDR, ...): Can't assign requested address
        Jun 2 06:40:05 miniupnpd 26938 Failed to get IP for interface pppoe0
        Jun 2 06:40:05 miniupnpd 26938 SendNATPMPPublicAddressChangeNotification: cannot get public IP address, stopping
        Jun 2 06:40:05 miniupnpd 26938 PCPSendUnsolicitedAnnounce() sendto(): No route to host
        Jun 2 06:40:05 miniupnpd 26938 PCPSendUnsolicitedAnnounce() IPv6 sendto(): Bad file descriptor
        Jun 2 06:40:11 miniupnpd 26938 SendNATPMPPublicAddressChangeNotification: sendto(s_udp=10, port=5351): No route to host
        Jun 2 06:40:11 miniupnpd 26938 PCPSendUnsolicitedAnnounce() sendto(): No route to host
        Jun 2 06:40:11 miniupnpd 26938 PCPSendUnsolicitedAnnounce() IPv6 sendto(): Bad file descriptor@
        

        (I feel obligated to say I did restart the service and the whole pfsense install after the patch, still no luck)
        Seeing this version of miniupnpd creates the equivalent outbound NAT rule, maybe I need to disable the manual outbound NAT rules I've already got in place for this to be properly tested?

        Oh! and the following commands give no output unfortunantly: "pfctl -a miniupnpd -s rules" either does "pfctl -a miniupnpd -s nat"....
        I also see no miniupnp rules/requests appear in the logs either under: Status > UPnP & NAT-PMP for me :(

        Any other commands I can try on SSH or the command prompt /GUI to troubleshoot this some more for you guys?
        Thanks!

        1 Reply Last reply Reply Quote 0
        • jimpJ
          jimp Rebel Alliance Developer Netgate
          last edited by

          To make sure you're checking the right way for the rules, see what shows up in pfSsh.php playback pfanchordrill.

          Granted I don't have IPv6 on my WAN, but I am not seeing anything like those errors. It may be specific to PPPoE, though.

          Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

          Need help fast? Netgate Global Support!

          Do not Chat/PM for help!

          F 1 Reply Last reply Reply Quote 0
          • kiokomanK
            kiokoman LAYER 8
            last edited by

            i have pppoe the service start
            i have only this on my log
            i don't have any console to try, i can test later with something else

            Jun 3 17:44:00 miniupnpd 54810 Listening for NAT-PMP/PCP traffic on port 5351
            Jun 3 17:44:00 miniupnpd 54810 setsockopt(udp, IPV6_RECVPKTINFO): Invalid argument
            Jun 3 17:44:00 miniupnpd 54810 HTTP IPv6 address given to control points : [2001:470:26:5dc::1]
            Jun 3 17:44:00 miniupnpd 54810 HTTP listening on port 2189

            ̿' ̿'\̵͇̿̿\з=(◕_◕)=ε/̵͇̿̿/'̿'̿ ̿
            Please do not use chat/PM to ask for help
            we must focus on silencing this @guest character. we must make up lies and alter the copyrights !
            Don't forget to Upvote with the 👍 button for any post you find to be helpful.

            1 Reply Last reply Reply Quote 0
            • F
              Firetop @jimp
              last edited by

              @jimp said in Test Request: UPnP Fix for Multiple Consoles playing the same game / static port outbound NAT:

              pfSsh.php playback pfanchordrill

              Ahhhhh! Thank you for that command and break-down.
              I see the results now, but the contents are still blank/empty as seen below:

              miniupnpd rules/nat contents:
              

              Now I currently do have each xbox on it's own static IP and static port Outbound NAT setup. I did read in your first post that it could likely allow single consoles to work without setting up static port outbound NAT rules, but I have multiple, should I be testing this updated miniupnpd version with those static port Outbbound NAT rules disabled or keep them enabled for the multiple consoles in this example?

              Capture.PNG

              I am no expert in this by any means, but do have an environment where this can be tested as much as needed.
              Simply let me know what you need, and I will provide! (logs, config files, etc) to help troubleshoot this.

              Also just to mention, I did have IPv6 on WAN, but disabled it to stop the IPv6 related errors in miniupnpd which seems to have somewhat worked as it does this now:

              miniupnpd 26938 no HTTP IPv6 address, disabling IPv6
              

              But I still get the following with IPv6 disabled on all interfaces:

              Jun 2 06:33:11 miniupnpd 26938 Listening for NAT-PMP/PCP traffic on port 5351
              Jun 2 06:33:11 miniupnpd 26938 PCPSendUnsolicitedAnnounce() IPv6 sendto(): Bad file descriptor
              Jun 2 06:40:05 miniupnpd 26938 ioctl(s, SIOCGIFADDR, ...): Can't assign requested address
              Jun 2 06:40:05 miniupnpd 26938 ioctl(s, SIOCGIFADDR, ...): Can't assign requested address
              Jun 2 06:40:05 miniupnpd 26938 Failed to get IP for interface pppoe0
              Jun 2 06:40:05 miniupnpd 26938 SendNATPMPPublicAddressChangeNotification: cannot get public IP address, stopping
              Jun 2 06:40:05 miniupnpd 26938 PCPSendUnsolicitedAnnounce() sendto(): No route to host
              

              Thanks

              1 Reply Last reply Reply Quote 1
              • jimpJ
                jimp Rebel Alliance Developer Netgate
                last edited by

                Whether or not it helps is contingent upon the game (and/or console) managing the ports it uses with UPnP. Some do, some do not.

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                F 1 Reply Last reply Reply Quote 0
                • F
                  Firetop @jimp
                  last edited by Firetop

                  @jimp

                  I was able to get everything working following this guide: https://forum.netgate.com/topic/144291/howto-multiples-xbox-play-together-without-upnp-dmz

                  I only have 2 xboxs that usually conflict using the same games even though we have 5 in the house. I was unable to get any progress with this miniupnpd version though unfortunately.
                  This seemed to solve the issue for those 2 consoles as found here:

                  Capture.PNG

                  Capture1.PNG

                  1 Reply Last reply Reply Quote 0
                  • jimpJ
                    jimp Rebel Alliance Developer Netgate
                    last edited by

                    OK, this thread is just for feedback about the test version of miniupnpd, but it's a good data point to know that it didn't help your situation. I'd expect the static method to be unchanged since this is only a change to how UPnP forms its rules. If the consoles are doing static/custom ports and not UPnP then this won't help.

                    Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                    Need help fast? Netgate Global Support!

                    Do not Chat/PM for help!

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      Firetop @jimp
                      last edited by

                      @jimp

                      Fair enough, I am still willing to test this with other games and consoles, but the errors mentioned above seemed to cause this version of miniupnpd to shutdown.
                      I did notice some extra changes in Github, would these make a difference if compiled for testing?

                      Thanks again Jim :)

                      1 Reply Last reply Reply Quote 0
                      • jimpJ
                        jimp Rebel Alliance Developer Netgate
                        last edited by

                        Not yet, we'd have to build a new version with the new changes manually patched in like we did before. Time is short at the moment so unlikely to happen any time in the next few days.

                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                        Need help fast? Netgate Global Support!

                        Do not Chat/PM for help!

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          Firetop @jimp
                          last edited by

                          @jimp

                          No worries at all Jim :) Take your time. I at least have a static config that works for the 2 conflicting consoles for now.
                          I will keep watch for any updates or requests for testing in the future.

                          1 Reply Last reply Reply Quote 0
                          • M
                            Marc05
                            last edited by

                            I tested this with two PS4's.

                            The network test on a PS4 is set to a constant port of 9308. Hence, running the PS4's network test on the first console gives NAT Type 2, and running the same test on the second console gives NAT Type Failed (sometimes NAT Type 3). Running the game Destiny 2, I can see ports being opened in UPnP in the GUI, with and without the patch.

                            Here is the command output without the patch:

                            [2.5.0-DEVELOPMENT][admin@gw.ruhex.net]/root: pfSsh.php playback pfanchordrill
                            
                            ipsec rules/nat contents:
                            
                            miniupnpd rules/nat contents:
                            rdr quick on igb0 inet proto udp from any to any port = 9308 keep state label "10.0.5.40:9308 to 9308 (UDP)" rtable 0 -> 10.0.5.40 port 9308 # First PS4 network test
                            rdr quick on igb0 inet proto udp from any to any port = 3074 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.40 port 3074
                            rdr quick on igb0 inet proto udp from any to any port = 3075 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.43 port 3075
                            rdr quick on igb0 inet proto udp from any to any port = 22389 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.40 port 22389
                            rdr quick on igb0 inet proto udp from any to any port = 14626 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.43 port 14626
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 9308 flags S/SA keep state label "10.0.5.40:9308 to 9308 (UDP)" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 3074 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.43 port = 3075 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 22389 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.43 port = 14626 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            
                            natearly rules/nat contents:
                            
                            natrules rules/nat contents:
                            
                            openvpn rules/nat contents:
                            
                            tftp-proxy rules/nat contents:
                            
                            userrules rules/nat contents:
                            

                            Same tests/game with the patch:

                            [2.5.0-DEVELOPMENT][admin@gw.ruhex.net]/root: pfSsh.php playback pfanchordrill
                            
                            ipsec rules/nat contents:
                            
                            miniupnpd rules/nat contents:
                            nat quick on igb0 inet proto udp from 10.0.5.40 port = 9308 to any keep state label "10.0.5.40:9308 to 9308 (UDP)" rtable 0 -> x.x.x.x port 9308
                            nat quick on igb0 inet proto udp from 10.0.5.40 port = 22388 to any keep state label "DemonwarePortMapping" rtable 0 -> x.x.x.x port 22388
                            nat quick on igb0 inet proto udp from 10.0.5.43 port = 3076 to any keep state label "DemonwarePortMapping" rtable 0 -> x.x.x.x port 3076
                            nat quick on igb0 inet proto udp from 10.0.5.43 port = 14625 to any keep state label "DemonwarePortMapping" rtable 0 -> x.x.x.x port 14625
                            nat quick on igb0 inet proto udp from 10.0.5.40 port = 3075 to any keep state label "DemonwarePortMapping" rtable 0 -> x.x.x.x port 3075
                            rdr quick on igb0 inet proto udp from any to any port = 9308 keep state label "10.0.5.40:9308 to 9308 (UDP)" rtable 0 -> 10.0.5.40 port 9308
                            rdr quick on igb0 inet proto udp from any to any port = 22388 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.40 port 22388
                            rdr quick on igb0 inet proto udp from any to any port = 3076 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.43 port 3076
                            rdr quick on igb0 inet proto udp from any to any port = 14625 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.43 port 14625
                            rdr quick on igb0 inet proto udp from any to any port = 3075 keep state label "DemonwarePortMapping" rtable 0 -> 10.0.5.40 port 3075
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 9308 flags S/SA keep state label "10.0.5.40:9308 to 9308 (UDP)" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 22388 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.43 port = 3076 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.43 port = 14625 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            pass in quick on igb0 inet proto udp from any to 10.0.5.40 port = 3075 flags S/SA keep state label "DemonwarePortMapping" rtable 0
                            
                            natearly rules/nat contents:
                            
                            natrules rules/nat contents:
                            
                            openvpn rules/nat contents:
                            
                            tftp-proxy rules/nat contents:
                            
                            userrules rules/nat contents:
                            

                            I'm not certain if this is an improvement given that I no longer have the game I could reproduce the issue with 100% of the time (Ghost Recon Wildlands). I do see that additonal NAT rules are added however, and I'd assume that these are an improvement, though @jimp would have to say if that's true or not.

                            1 Reply Last reply Reply Quote 0
                            • Z
                              zman442
                              last edited by

                              So if am reading this correctly through the various posts I see two issues, uPNP isnt working at all and more than one console or system attempting to play the same game or service can fail if they need to use the same port on the firewall? I just installed pfSense this weekend and immediately started running into issues with our Nintendo Switch, Amazon tablet etc.

                              Can someone smarter than myself help me understand how this works with consumer grade firewalls like eero, netgear, comcast, etc...without issue but pfSense chokes on it? This isn't a knock on pfSense by any means as the increase level of visibility and control and plethora of additional features is worth the extra steps provided they work as I am looking to invest in the 7100 model router/firewall but I am just having hard time wrapping my head around an issue thats apparently been around for at least three years and still isnt fully functional. I have read that other routers apparently can be affected by the NAT traversal issue but on my old router I could use two Nintendo Switch's on the same network and same game without NAT issues.

                              I would love to help test but with the flack I am receiving from my kids I will be forced to put back the other router for now.

                              Regards

                              1 Reply Last reply Reply Quote 0
                              • jimpJ
                                jimp Rebel Alliance Developer Netgate
                                last edited by jimp

                                There are plenty of topics covering those questions already, this thread is only for testing this fix.

                                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                Need help fast? Netgate Global Support!

                                Do not Chat/PM for help!

                                F 1 Reply Last reply Reply Quote 2
                                • F
                                  Firetop @jimp
                                  last edited by Firetop

                                  This post is deleted!
                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    vMAC
                                    last edited by

                                    So I'm willing to upgrade to 2.5.0 image to test. My only concern is if I switch to the new image will I be able to get back to a stable version without having to wait for a new version? For instance can I go to 2.5.0 and then downgrade back to 2.4.5_1?

                                    jimpJ 1 Reply Last reply Reply Quote 0
                                    • jimpJ
                                      jimp Rebel Alliance Developer Netgate @vMAC
                                      last edited by

                                      @vMAC said in Test Request: UPnP Fix for Multiple Consoles playing the same game / static port outbound NAT:

                                      So I'm willing to upgrade to 2.5.0 image to test. My only concern is if I switch to the new image will I be able to get back to a stable version without having to wait for a new version? For instance can I go to 2.5.0 and then downgrade back to 2.4.5_1?

                                      There is no downgrade procedure. Take a config backup first and keep an installer handy for 2.4.5-p1. If something goes wrong on 2.5.0, reinstall 2.4.5-p1 and restore the 2.4.x backup.

                                      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                      Need help fast? Netgate Global Support!

                                      Do not Chat/PM for help!

                                      1 Reply Last reply Reply Quote 1
                                      • jimpJ
                                        jimp Rebel Alliance Developer Netgate
                                        last edited by

                                        We have added the 2.2.0-RC1 version of miniupnpd to the repository for pfSense 2.5.0 and so it should be included in snapshots shortly, later today or tomorrow, for additional (and easier) testing.

                                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                        Need help fast? Netgate Global Support!

                                        Do not Chat/PM for help!

                                        1 Reply Last reply Reply Quote 1
                                        • A
                                          andrew_r
                                          last edited by

                                          I updated my 5100 from the web UI this morning (from the latest stable official release to the latest devel release.)

                                          I can confirm that, with the correct NAT rules, I seem to be able to get multiple consoles online successfully using UPNP. My household has 3 switches, 2 XBox Ones and 2 PS4s, and I was able to get them all connected simultaneously with suitable NAT levels and no error reports.

                                          I can provide more detailed information to @jimp if necessary.

                                          I'll be doing some more testing later today to make sure I haven't missed anything, but so far so good.

                                          Andrew

                                          jimpJ 1 Reply Last reply Reply Quote 0
                                          • jimpJ
                                            jimp Rebel Alliance Developer Netgate @andrew_r
                                            last edited by

                                            That's good news!

                                            @andrew_r said in Test Request: UPnP Fix for Multiple Consoles playing the same game / static port outbound NAT:

                                            with the correct NAT rules

                                            Do you mean the correct NAT rules generated automatically by UPnP, or did you have manual rules setup for those consoles?

                                            Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                            Need help fast? Netgate Global Support!

                                            Do not Chat/PM for help!

                                            A 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.