0

I am having issues on the older Call Of Duty: World at War game. I really need expert help with an issue that few people might have an idea on how to fix.

My issue is related to port forwarding. It worked perfectly for enough time in the past in this game and I could host Co-op without issues. Currently, the port forwarding entry (using default 28960 port) is perfectly at the router, but it seems like since 1-2 years ago the server allocation stopped integrating well with Windows 10 or something for me (can't really know the cause). I can definitely port forward other unrelated services perfectly and they are reachable from the Internet.

The netstat -aon output is as follows, while having a Co-op server active:

C:\WINDOWS\system32>netstat -aon|find "28960"
  UDP    192.168.1.9:28960      *:*                                    5344

The state field misses the LISTENING value, which means the binding fails for some reason. Also, I'm launching the game with the command option +set net_ip 192.168.1.9 to pick my LAN network as this is proven needed for other services since I have multiple network interfaces which seem to take priority over LAN one by default.

Compare the output to a working unrelated service, reachable to the Internet:

C:\WINDOWS\system32>netstat -aon|find "27017"
  TCP    192.168.1.9:27017      0.0.0.0:0              LISTENING       14740
  UDP    192.168.1.9:27017      *:*                                    14740

By the way this game doesn't auto-open servers with UPnP, they must be port forwarded. Also, disabling Windows firewall doesn't make a difference.

Would you be able to help me? It has been enough time since this problem arose randomly, and I'm totally lost.

EDIT: I've just found out here that not seeing state on UDP ports is normal as the protocol is state-less. I didn't realize that was the cause, though I knew that concept. So that's something at least. However the game might still should be supposed to allocate a TCP socket on the same port.

Adrián
  • 101
  • 1
  • Is your windows firewall active, or do you have another firewall on your computer that is blocking the communication? – LPChip Apr 30 '22 at 19:06
  • Even fails with Firewall disabled, I don't have anything else that could block it. The point after my update now summarizes to confirming if a TCP should be allocating or not, which I don't remember from the past. – Adrián Apr 30 '22 at 19:46
  • 1
    Call of Duty: World at War requires on Windows to port-forward the following: TCP: 28960, UDP: 3074, 28960. Are you forwarding all of them? – harrymc Apr 30 '22 at 20:05
  • Port forwarding needs to be done on the router, not the PC _(manually configure the port forwards in the router's firewall, don't use UPnP, as it's not secure and there is no secure implementation of UPnP)_ – JW0914 Apr 30 '22 at 20:15
  • I've forwarded 28960 TCP&UDP. 3074 UDP is already UPnP'ed by the game, as I recently found out by my router. Also @JW0914 I'm aware of that. – Adrián Apr 30 '22 at 21:30
  • @Adrián There appears to be a fundamental misunderstanding, as port forwarding only occurs on a WAN facing device [the router], it does not occur on the PC/game system - port forwarding is DNAT _(NAT only occurs on the WAN facing device - the router)_. UPnP on a PC/game system has nothing to do with the router's DNAT or UPnP _(UPnP on a router should **never** be enabled - there is no secure implementation of it, so DNAT rules should be manually created in the router's firewall)_ – JW0914 May 01 '22 at 12:32

1 Answers1

0

UPDATE: Never mind, I think everything was based on wrong assumptions. A friend of me told me he couldn't see my server in the in-game server browser for some reason, so I instantly related it to the network interfaces conflict issue (which is real instead in the other game server, which picks an incorrect one by default). But effectively, and as suggested by @JW0914 (thanks), CoD: WaW already binds the required ports to listen on all interfaces through 0.0.0.0. I have checked the server works without overriding game's net_ip by waiting enough time in the server pre-lobby and onserving few players joining.

My previous (wrongly based answer):

Alright, so I fixed the problem in a way. I'll expose a speculative reasoning to the real cause.

Basically the game uses port 28960 UDP for the server itself (by default; not UPnP'ed), then 3074 UDP and UPnP'ed apparently for informing the master server (from Activision).

However, even when the game provides the net_ip console variable to manually set an IP and supposedly cope with a wrong interface being chosen by the game in presence of multiple active network interfaces (as is my case), I just found out this parameter might only modify the main server IP itself, not the one for the master server (3074), as interpretable from the following output:

192.168.1.9:28960          *:*                                    13860

C:\WINDOWS\system32>netstat -aon|find "3074"   UDP    0.0.0.0:3074    
*:* ```

(The `0.0.0.0` IP being a the result of the game always using
`localhost` alias for such port, regardless of game's `net_ip` value).

I can also kind of confirm the theory by checking that on a different
game server, which shows the chosen interface on startup and by demand
(unlike CoD: WaW game when not overriding `net_ip`), other adapter
interfaces are chosen unless explicitly setting the IP at startup.

So, the way the problem fixed was by disabling my other interfaces. It
is also important to note that after this conclusion, the **game
server would have been properly exposed all the time** (that is,
relating to the UDP 28960 port), but **not the informative** port for
the master server (UDP 3074), **preventing my server to appear in the
in-game browser**. I should have mentioned the issue and
troubleshooting context was whilst in the game lobby (as the game
requires > 1 connected players to start the action itself).

By the way, [adjusting provider priorities][1] and/or interface
metrics at `ncpa.cpl` (Control Panel's Network Connections) doesn't
seem to have an effect on these games. If anyone knows a way to make
these priorities have effect on all applications, I'd appreciate.
Adrián
  • 101
  • 1
  • 1
    HI @adri%c3%a1n - port forwards affect in-bound access to your network from the internet side of your router - not outbound connectivity - so the 3074 for "informing" sounds unlikely .. if 3074 needs to be open it's because the master server needs to connect to your server, rather than the other way round ... – Mr R Apr 30 '22 at 23:51
  • "if 3074 needs to be open it's because the master server needs to connect to your server". Exactly, this is what I implied already. The game might expose that fixed port (non-configurable) for the master server to connect to it and the game to inform the real possible active server/s and their ports back to the master. I never said 3074 was outgoing. – Adrián May 01 '22 at 01:47
  • 1
    _localhost_ and _0.0.0.0_ are entirely different. _0.0.0.0_ means “all interfaces” while _localhost_ means no external interfaces, only loopback. A service listening in _0.0.0.0_ would be perfectly reachable. – Daniel B May 01 '22 at 11:30
  • @Adrián There appears to be a fundamental misunderstanding, as port forwarding only occurs on a WAN facing device [the router], it does not occur on the PC/game system - port forwarding is DNAT _(NAT only occurs on the WAN facing device - the router)_. UPnP on a PC/game system has nothing to do with the router's DNAT or UPnP _(again, UPnP on a router should **never** be enabled - there is no secure implementation of it, so DNAT rules should be manually created in the router's firewall)_ – JW0914 May 01 '22 at 12:30
  • @Daniel B That seems logical, but all I know is that setting the `net_ip` in the game manually has an effect in the main netstat entry (`28960`) changing from `0.0.0.0` to the specific IP, whilst the entry for the master server port doesn't change, which smells to me as if the problem would fix if it changed to the manual IP as well when in the presence of multiple interfaces. Why else disabling the other network interfaces may fix it then? – Adrián May 01 '22 at 19:11
  • @JW0914 I don't get your point. Similarly to what I answered to Mr R, I already understand the port forwarding nature. Is there something I expressed bad in the answer that led you to think I'm not aware? Same thing goes for UPnP. When I say "UPnP'ed", I'm referring that game already sends a request to the router to create an UPnP NAT rule (which the game does). Plus, from my experience, most routers come with UPnP enabled (at least in my country), making it fun to me how you seem to think it's something that comes disabled. Please, retain from assuming possible country/regional limitations. – Adrián May 01 '22 at 19:18
  • @JW0914 In addition to your comment, I've checked that on the other "always-working" game server I mentioned, setting its IP to `0.0.0.0` makes it correctly exposed externally too (having my other interfaces active), so thanks, I didn't really know. However, basing again on a non-overriding IP configuration for the affected game, what other reasoning could you think of for it not to work only when using multiple interfaces? – Adrián May 01 '22 at 20:32
  • Everyone, see my edited answer – Adrián May 01 '22 at 21:08