Create two virtual machines using virtual box (or one and then clone it).
Set a static IP address to each one.
I recommend starting from NAT networking mode (Virtual Box VM configuration), use ipconfig to fetch the details and then set it as static configuration.
For example, the default IP address for the first VM is 10.0.1.15 under virtual box (IP setting within the VM, use the guest OS to configure).
It's 10.0.2.15 for the second, and so on.
As long as they have 255.0.0.0 set as netmask it's fine. You just need all IPs to start with 10 and to be unique to each machine.
You can spawn both VMs using a single virtual box, DL2 should be able to connect if you set both VMs to use internal network mode (Virtual Box VM configuration). You can try it first before attempting over the internet.
How to use UDP Tunnel:
Go to the network settings and change the network mode to Generic Driver (Virtual Box VM configuration).
Set the driver's name as: "UDPTunnel" without quotes.
Unhide the advanced settings and write this to the Generic Settings:
dest=<the IP address of the other host running the VM>
sport=<a source UDP port that you have open waiting for frames from any other VM>
dport=<the destination UDP port of the other host running a VM>
This is an example (you need to update the numbers with your actual numbers):
Consider your external IP address is 1.2.3.4 (the external one you can see when browsing
http://whatsmyip.org/) and you have port 4444 open for incoming UDP datagrams.
And your friend who would like to play DL2 with you has the external IP address 5.6.7.8 and has port 5555 open for incoming UDP datagrams:
Your VM configuration would be:
dest=5.6.7.8
sport=4444
dport=5555
Your friend's VM network configuration would be:
dest=1.2.3.4
sport=5555
dport=4444
Pay attention to the changes, one's source is the other's destination. The destination address is the other's address.
You can make both use the same port number to avoid confusion, but no one can use the same IP address when playing over the internet.
Reference.
After it's set, DL2 should be able to run using TCP over LAN. When it asks for the destination address, you can leave it blank and hit enter. Since all frames are carried by Virtual Box to every connected VM, they will act like they are in a LAN that supports broadcasting (and thus, being able to search others without the full address).
This also makes possible to play DL2 mp using IPX and DL1 using a protocol that encapsulates NetBIOS (usually and recommended IPX as well, not so usually NetBeui and TCP/IP).