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 a systematic engineering approach to software development. 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. 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. 220.127.116.11 ) as well as its local address as the gateway. As such, your IP configuration looks a little like this:
IPv4 Address. . . . . . . . . . . : 18.104.22.168
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.