D-Link FAQ > Archive
Difference between "Virtual Servers" and "Port Forwarding"
mahi:
Up to now I used a Linux computer to route my Internet connection. Sadly, the machine died and since I wanted to do something about its power consumption I ended up with a D-Link DIR-855... So far I'm quite impressed and satisfied with this unit. However, one thing confuses me... Port forwarding seems to be divided in two parts: "Virtual Servers" and "Port Forwarding".
What is the difference between "Virtual Servers" and "Port Forwarding"? From the online help I can only conclude both are more or less the same. The main difference seems to be the fact that "Virtual Servers" can only forward a single port (with possibility to change the port number) whereas "Port Forwarding" can forward whole ranges (without possibility to change the port number).
So you'd think if you'd only need to forward a single port both "Virtual Servers" and "Port Forwarding" will give the same result. But that's not true in my case... One application, eMule (0.49b), refuses to work correctly with "Port Forwarding" but will work with "Virtual Servers" or a combination of both.
With only "Port Forwarding" eMule connects fine to the ed2k network, but refuses to connect to the kad network (Kademlia). Even bootstrapping with a recent nodes.dat makes no difference.
The ports in eMule:
- TCP: 4562
- UDP: 4572
The "Port Forwarding" rules I made in the D-Link DIR-855:
- Enabled: <yes>
- Name: eMule
- IP Address: 192.168.1.8
- TCP Ports To Open: 4562
- UDP Ports To Open: 4572
- Inbound Filter: <none>
- Schedule: <always>
When I test the ports in eMule, the eMule website shows no problems. All ports are correctly forwared. Everything seems to be set correctly, but the kad network won't work...
Just as an experiment I decided to play with "Virtual Servers". I disabled the earlier created forwarding rules and made two new virtual servers (two because I have to forward two ports and unlike with "Port Forwarding" "Virtual Servers" can do only one).
The "Virtual Servers" rules I made in the D-Link DIR-855:
- Enabled: <yes>
- Name: eMule TCP
- IP Address: 192.168.1.8
- Traffic Type: TCP
- Private Port: 4562
- Public Port: 4562
- Inbound Filter: <none>
- Schedule: <always>
- Enabled: <yes>
- Name: eMule UDP
- IP Address: 192.168.1.8
- Traffic Type: UDP
- Private Port: 4572
- Public Port: 4572
- Inbound Filter: <none>
- Schedule: <always>
From my understanding the above should be identical to the earlier given "Port Forwarding" rule, correct?
However, as soon as I clicked "Save Settings" (even without rebooting) eMule immediatly connected to the kad network. Just to be sure I've switched between the "Virtual Servers" and "Port Forwarding" several times and whenever the "Port Forwarding" rule was active, the kad network died.
Further experiments showed the problem only applies to the UDP port. I can forward the TCP port using "Port Forwarding" or "Virtual Servers" - it doesn't matter, both work. However, the UDP port will only work with "Virtual Servers"...
Rulesed2kkadPort Forwarding TCP and UDP (TCP and UDP in one rule)yesnoPort Forwarding TCP + Port Forwarding UDPyesnoVirtual Server TCP + Port Forwarding UDPyesnoPort Forwarding TCP + Virtual Server UDPyesyesVirtual Server TCP + Virtual Server UDPyesyes
Is this a bug in the router's firmware? Or is there a difference between "Port Forwarding" and "Virtual Servers" I do not know of? I see no reason why the "Port Forwarding" shouldn't work in my case. Other applications luke µTorrent all work fine with just "Port Forwarding".
Hardware Version: A2
Firmware Version: 1.12EU
madhatter:
Have a look here. I know it says a dir-655 but the principles the same.
http://portforward.com/english/routers/port_forwarding/Dlink/DIR-655/eMule.htm
mahi:
It doesn't work when I use the settings proposed by that page (which are the same as in my first "Port Forwarding" example). I can only make it work when I add the UDP port to the "Virtual Servers" instead of "Port Forwarding".
My question isn't how to make it work (because I have it working), but why it doesn't work with "Port Forwarding" while - as far as I know - it should...
ttmcmurry:
Port Forwarding creates a 1:1 relationship between your public IP address and a single private IP address. For example:
Forward Port 3389 (Microsoft Remote Desktop Protocol RDP) to 192.168.0.198 means:
your.public.ip.address:3389 gets forwarded to 192.168.0.198:3389
But let's assume you have more than one system behind your router you want to access RDP. If you're simply forwarding 3389 to .198, given the 1:1 nature of port forwarding, then you are limited to only one system you can access. In comes virtual server.
Virtual server creates 1:many relationship between your public IP address and multiple private addresses. It can be used in conjunction with Port Forwarding. Assuming you are still using the port forwarding rule above, and you want to add two more RDP ports forwarded you can do this:
Forward Port 64001 to 192.168.0.197:3389
Forward Port 64002 to 192.168.0.196:3389
You could do the same with FTP servers, Web servers, etc.
mahi:
I see. That's an application I didn't think of yet.
However, I still don't get why "Port Forwarding" goes wrong in my situation. If there's only one "Virtual Server" redirecting my.public.ip.address:4572 (UDP) to 192.168.1.8:4572, it should be the same as "Port Forwarding" rule 4572 (UDP) to 192.168.1.8. But apparantly it isn't. At least not for eMule (other applications seem to work just fine with either "Port Forwarding" or "Virtual Servers"). eMule refuses to connect to the kad network with UDP "Port Forwarding", but works fine with forwarding the UDP port through "Virtual Servers".
This was tested with only the rules mentioned in my first post in the router configuration - so there were no possibly conflicting rules.
Navigation
[0] Message Index
[#] Next page
Go to full version