No offense, but that explaination of routers was confusing for me, and I know how they work. "Namespace"? You've been programming too long. We aren't even getting into DNS, so "namespace" is confusing.
Anyway, routers work by getting a public IP address from the ISP. It then shares this IP address to the rest of the computers on its internal network. How? Well, the guys that invented the IP standard included certain ranges of IPs for private-class addresses. These addresses can't be used on the general Internet, but the good thing is that anybody can use them within their own network. One very common range that most routers use is 192.168.*.*.
The router has a public IP address on the "public side" and a private-class IP address on the local side (or where your network is). Usually this is 192.168.0.1. The router uses something called IP Masquerading to modify any request that you send out to the Internet to use its own public IP, and then it stores your IP (and destination) into a table, so that it knows that you are communicating with that server.
Lemme give you an example of a transaction:
1. You (a computer with an IP of 192.168.0.100) send a request to Microsoft.com via HTTP.
2. The router (being your gateway) finds this request. Since 192.168.* addresses can't get out on the Internet, it replaces the source IP address on the packet with its own public IP (let's say 24.24.24.24), and sends it to Microsoft.com.
3. After it is sent, the router records that 192.168.0.100 is communicating on the HTTP port with Microsoft.com.
4. Microsoft.com recieves the packet and replies directly to the router (since that was the source IP).
5. The router gets an incoming packet from Microsoft.com via HTTP. The router looks up in its table and sees that 192.168.0.100 was the one that was communicating with Microsoft.com. It then replaces the destination IP with 192.168.0.100 and sends it on its way.
6. You receive the reply from Microsoft.com, eventually get a HTTP handshake established, get the web pages, etc., etc., etc.
Okay, knowing that, the firewall part comes in naturally for a router. If a router gets an incoming packet, and the source IP/port of the packet is not in its table of PCs that are communicating on the net, it rejects the packet. Hardware firewalls like a router are vastly superior to software firewalls such as ZoneAlarm, McAfee, Norton's Security, etc.
Anyway, enough of explanations. The DMZ setting will probably work, though I really wonder if that DSL modem is actually a combination modem/router. It may just be a firewall like you said. In that case, just use the DMZ and I think it will work. The DMZ setting (DeMilitarized Zone) will assign a IP address that is not on the firewall. Any packets that come from or are sent to that address will come back untouched. Set the DMZ IP address to the public address on your router.
(Sorry if I was repeating your advise, Mental.)
Rosalina: But you didn't.
Robert: But I DON'T.
Rosalina: You sure that's right?
Robert: I was going to HAVE told you they'd come?
Rosalina: No.
Robert: The subjunctive?
Rosalina: That's not the subjunctive.
Robert: I don't think the syntax has been invented yet.
Rosalina: It would have had to have had been.
Robert: Had to have...had...been? That can't be right.