First, I have to say I'm very happy with the D-Link DI-604 router. It's very inexpensive, and has a lot of features. It's also fast.
I was able to get the router to work with multiple computers, so that all the computers could use mIRC. How to do this with the DI-604 router was not obvious. At least the obvious way didn't work.
The main problem is how to get all the computers to respond to "identd" requests at the correct time (at server log in). The DI-604 has a list of "Applications" that you can use to open ports based on a trigger condition. The obvious thing is to say trigger on ports 6660-6670, and then open port 113 (identd) to the computer that caused the trigger.
Unfortunately the DI-604 handles port 113 in a strange way, so just doing that didn't work.
Here is how I got two computers to work with mIRC.
In the "Virtual Server" list I put this (required to "open" port 113).
Private IP: 192.168.1.5 Protocol: TCP 113/113 always
NOTE: 192.168.1.5 is a non-existent computer on my network
In the "Applications" list I put this (to route identd requests).
Trigger: 6660-6670 Public: 113
Trigger: 7000 Public: 113
In the "Firewall" list I put this (to handle DCC connections).
Source: WAN,*
Destination: LAN,192.168.1.11
Protocol: TCP,4911-4915
Source: WAN,*
Destination: LAN,192.168.1.21
Protocol: TCP,4921-4925
This "Firewall" entry was added automatically by the DI-604 (because of Virtual Server entry).
Source: WAN,*
Destination: LAN,192.168.1.5
Protocol: TCP,113
These settings allow multiple computers to use mIRC, and respond to identd requests when they connect to IRC servers. The majority of IRC servers require an identd response to allow computers to connect.
Port 113 seems to work differently than other ports. I had to add port 113 to the "Virtual Server" list, and specify a non-existent computer address. Then I was able to add an entry in the "Applications" to trigger on the mIRC ports (6660-6670) and assign port 113 to the computer connecting to an IRC server. Just adding an entry for port 113 to the "Firewall" list doesn't work. I don't know if this is true for all application port numbers (1-1023). Also, the "Private Port" and "Public Port" must both be the same (113). You cannot direct "Public Port" 113 to "Private Port" 114, and then add an entry for either port 113 or 114 in the "Applications" list.
I set both of the mIRC computers to enable the "identd" server only on connect. That provides a little better security, since someone can't randomly port scan 113, and then do an identd request to get information. Port 113 still shows up as closed (rather than stealth) unless mIRC has never been used since the router was booted.
The other settings are for DCC. One computer uses public ports 4911-4915 for DCC, and the other computer uses public ports 4921-4925 for DCC. I had to set up mIRC on the two computers to use that range of DCC ports. The DCC ports also show up as closed (rather than stealth). They are not in a range that hackers usually port scan.