I've noticed a few people are having problems with "Strict NAT" and having trouble playing online.
Various posts I've read on the web have recommended all sorts of things... I'm going to add my own 2 cents, as I have some major disagreements with most of what's being said.
The two most commonly recommended fixes (including the one from infinity ward themselves) are complete bull in my opinion.
Now infinity ward recommend that you enable UPnP on your router. Don't. In fact I'd go as far as saying "F*ck that." UPnP is a known vulnerability. If you configure your network properly, forward ports properly etc, you'll have a safer more reliable connection. But if you want to listen to the people who thought it'd be a good idea to remove dedicated servers and mods go to http://www.infinityward.com/nat.php
Other sites suggest adding your PC to the DMZ. Don't. DMZ stands for "DeMilitarized Zone". As such, anything in the DMZ is effectively NOT protected by the router in any way. This is fine for an Xbox360 or PS3, but I wouldn't do it with a PC. Again, a properly configured network connection, with properly forwarded ports is safer, and more reliable.
So what do I suggest? Well obviously properly configuring your network and forwarding the ports. But for the less tech savvy crowd that's easier said than done. There's not an awful lot of work involved, but there are many terms and phrases that may be confusing, and many of the guides out there offer faulty information.
Now to the point: I'm going to help you get your network/ports setup, and I'm going to give a few pointers on bits of the other guides out there that in my opinion are crap...
You will need to have access to your router's login details, and I'm writing this guide assuming you've already updated everything, including motherboard drivers (especially network drivers).
You also need to have your network setup in a standard configuration, for instance; Phoneline-DSL lead-modem (if yours is seperate from your router)-Router-ethernet lead-PC
Other configurations, such as connecting through another PC that inturn connects to the router, or going through multiple routers or a hardware firewall etc, will require more work.
This guide is here for informative purposes. It may contain errors, or because of your network setup it may not work for you. Some ISP's may even require that you have DHCP or UPnP enabled. If that's the case I can't help you. Some ISP's even block p2p connections, in which case you're SOL
This is how mine's setup, and it works flawlessly, NAT type "open"
1. Disable DHCP, UPnP, and DMZ in your router. Make sure NAT is enabled.
2. You need to set astatic IP for your PC. There's a guide on how to do this at Portforward.com configuring a static IP. Which is all well and good, but there's an awful lot of pointless junk in it. You don't need to open CMD for one thing, it's easier (and less daunting to the average user) to login to your router and get the info it would give you from there.
Make a note of your "Domain Name Server" IP addresses, these are the DNS numbers you'll want to put in the following section.
Make a note of your Router's IP address, also known as the "Default Gateway".
Now, using the guide for Windows 7 as an example, you want to open your Network and Sharing centre (right click network icon in the toolbar, select "Open Network and Sharing Center", then follow the portforward guide from step 7. Pay special attention to step 10:
===The ip address you choose should be very similar to the router's ip addres. Only the last number of the ip address should be different. If the router's ip address is 192.168.1.1, I might choose 192.168.1.10. The ip address you choose should end with a number between 1 and 254, and should not be the same as the router's ip address. Every device that connects to your network needs to have it's own ip address.
3. Forward ports through your router. Now the guide at portforward I haven't used for MW2. In fact I haven't forwarded any ports specifically for MW2. I do however have the CoD4 ports forwarded, so use the CoD4 guide, and do the port range 28960-29000 for both UDP and TCP. When it asks which server you want to forward the connection to, that will be your PC's IP address
Note that the above range doesn't even include the ports that portforward.com suggest (27014-27050, these aren't for MW2, but for Steam), but I've got an open NAT, and if you're reading this you probably haven't. In fact I don't even have them ports open for anything else either. I never forwarded any ports for MW2, or CoD:WaW either. The portforwarding rules for CoD4 have them both covered. So use the CoD4 guide, and forward the above ports for both directions
Now if you've done all this correctly you should have an open NAT. If not, carry on reading:
4. Make sure iw4mp.iw4sp.exe's are allowed through your firewall. Depending on your firewall you may also have to forward the ports through it, do the same ports as you have in your router, again for both UDP and TCP (you want traffic to go both ways).
5. Still having trouble? Make sure your antivirus software isn't blocking the game from accessing the web. You'll need to go into the AV advanced settings and add iw4mp/iw4sp.exe's to your exceptions, so that your antivirus just ignores them.
For multiple users behind one router, I've recommended this for CoD4 for a lot of people, and it's worked:
I thought the same would apply to MW2, but it's not quite right. You need to set it slightly differently. thanks to Edoc for this bit of info:To setup for multiple users:
1) Right-click on the Call of Duty 4 icon you use to start the game.
2) Select Properties.
3) In the Target field you'll see a line like "C:/Program Files/Activision/Call of Duty 4 - Modern Warfare/iw3mp.exe", add the net_port command to specify a unique communication port for each system. The complete field should look like this:
"C: Program Files Activision Call of Duty 4 - Modern Warfare iw3mp.exe" +set net_port 28960
4) Click OK.
5) Repeat for each system behind the NAT, adding one to the net_port selected (28961,28962,28963 etc.. )