D-Link DSL 320B

D-Link DSL-320B: A truly awful modem

Posted by

The irony of this post is that, only a few days ago, I was singing the praises of the D-Link DSL-320B. Sadly, I was more than a little wrong. This modem has turned out to be a shocking piece of software engineeringWikipedia: Software engineering is an engineering-based approach to software development.[1][2][3] A software engineer is a person who applies the engineering design process to design, develop, test, maintain, a... and has stolen many hours of my life, that I will never get back.

When in 1483 Bridged IP mode, the modem was actually fine. It connected to the ISP and allowed the routing of a subnet over it. When I switched to a new ISP, which used PPPoA, the story was somewhat different. The setup is such that the PPPoA connection gets issued its own IP address, outside of the routed subnet, and then the subnet is routed over this. This modem implements a system called half-bridgingWikipedia: A network bridge is a computer networking device that creates a single, aggregate network from multiple communication networks or network segments. This function is called network bridging.[1] Bridgin...… in a horrible horrible way. A way which, in fact, kills kittens. Poor poor kittens.

When you first connect a computer to the modem, its DHCPWikipedia: The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to d... server issues the computer with an IP address from the DHCP range – lets say 192.168.1.2. It also issues the computer with its own local address as the gateway – lets say 192.168.1.1. Once the PPPoA connection has established it re-issues the DHCP lease, giving the computer the public IP address (e.g. 62.132.23.205 ) as well as its local address as the gateway. As such, your IP configuration looks a little like this:

IPv4 Address. . . . . . . . . . . : 62.132.23.205
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 192.168.1.1

The more observant of you will be scratching your head with bewilderment now. The computer is now in a subnet all of its own, as dictated by the subnet mask, but is using an IP in an entirely different subnet as its gateway. It seems to use a system of sending ARPWikipedia: The Address Resolution Protocol (ARP) is a communication protocol used for discovering the link layer address, such as a MAC address, associated with a given internet layer address, typically an IPv4 ... replies frequently, to ensure that the computer always knows the MAC address of the 192.168.1.1 host – since it won’t ARP for it itself. This didn’t seem to work with my BSD based router, which plain refused to add a gateway which was not on the same subnet. I don’t really blame it. It seems this modem was designed for Windows.

Anyway, the plot thickened further. To allow bridging, the modem uses a route which routes all packets out of the PPP interface. This route is only added after the second DHCP lease has been successfully issued. It does not appear to be possible, inside its interface or via telnet, to add this route manually. As such, it was possible to con the modem into working as a full bridge by using a Windows computer to get a DHCP lease and then connecting the modem to a network of devices which used IPs in the routed subnet. This was a poor solution as the DHCP lease expired every 10 or so hours, thus this process needed to be repeated frequently to get Internet connectivity back. Further to that, if you turned off the DHCP server, it was impossible to connect to the Internet using the modem in PPPoA mode.

As a side note, if you set the MTU of this modem’s PPPoA connection to 1500, it resets itself to factory settings. Useful, eh?

In the end, I opted to buy a  Thomson Speedtouch 546 which works wonderfully.

7 comments

  1. I just bought one. I first updated to firmware 1.25. Then I tries to disable the DHCP server and I was not able to enable it again. The “Apply” button had no effect. Same for changing the DHCP address range. I finally succeeded by hacking the html dom with the Chrome inspector (yes, the javascript code looks buggy).
    Then it worked well, until I had a look to the IP address. My computer had the public address, grrrrh. I really don’t like to expose my computer to internet like this! I don’t know why, when I switch on the router, the computer get a 192.168.1.x address but then, suddenly, it switches to the public one. Is there a NAT or not in this box?
    I finally put it in bridge mode (PPPoE) and use an other router as NAT + DHCP server. In this mode, it works. I installed lot of routers in my life but I never saw a so horrible product!

  2. Is there a typo in your network info? If not then you may want to check over the subnet mask that you have set as 255.255.255.255 which would suggest that all octets are being used for network and so nothing is left for host portion of address. This would be unworkable.
    Hope this helps.

    1. That’s how the modem configures it. That subnet mask is quite common on point-to-point connections such as PPPoE or PPPoATM as all traffic is simply sent over the link – not to a specific gateway.

Leave a Reply to Phil Lavin Cancel reply

Your email address will not be published. Required fields are marked *