Why would I bridge my SpeedTouch modem you say? Personally it’s due to the annoying fact that the network gets unstable if I don’t do it. The device(s) (I’ve had multiple modems, different vendors) simply can’t hold the network stress on my network. Bridging my SpeedTouch modem lets it only having to deal with communicating towards the DSLAM and forwarding packets as a dummy device to my other router which is capable of dealing with routing traffic on my local network. For this purpose, I got a Linksys WRT54G router running with Tomato firmware which gives me a handful of nice features. Read more to see how I did it…
I found a good post on the ngtforum.net by the user Dyneslott which tells you which commands you have to enter at the SpeedTouch’s console to setup a bridge between your router and SpeedTouch modem.
Connect your computer to the SpeedTouch’s LAN switch. I recommend reseting your device before you start, as this resets any weird settings you might have enabled on the device and reverts its settings back to either ISP’s or SpeedTouch default settings for the modem. You do this with pushing and holding down the reset button while you power-on the device and wait until the device enters “kernel mode”. (indicated with normally 1 green and 1 red light (blinking if I remember correctly) after approximate 10-15 seconds after you powered on the device).
Do a simple
route (linux) ipconfig /all (windows)
Fetch your device’s IP address by looking at the default gateway. (this should be your device as long as you are directly connected to your device. If you go thru another switch or something, make sure you don’t have any other DHCP servers running from other routers which might give you other networking details and points you to another device instead )
In my situation with Nextgentel, the default IP address is 10.0.0.1 for my SpeedTouch modem. SpeedTouch’s default IP address is normally 192.168.1.1.
Telnet into your SpeedTouch:
telnet 10.0.0.1Username: Administrator Password: <blank> (nothing)
After we’re in, we want to run these commands:
ppp relay flush
atm phonebook flush
- Flushes/Removes any configuration about any PPP interface (used to “dial up” to your provider)
- Flushes/Removes any ethernet (LAN-switch), atm (DSL/WAN), PPP (“dial up” configurations) on your device.
- Saves the state to the config, so it survives a reboot of the modem.
atm phonebook add name=BrPPPoE_ph addr=1.33
In Norway, the default VPI/VCI is normally 1.33 etc. Nextgentel table is:
- VPI=0, VCI=100, PPPoA VC MUX
- VPI=1, VCI=32, PPPoA VC MUX
- VPI=8, VCI=35, PPPoA VC MUX
- VPI=1, VCI=33, PPPoE VC MUX
- VPI=8, VCI=35, PPPoE VC MUX
In short VPI/VCI simply is routing information for your ISP on how to forward packages between their ATM switches. Read more about VPI/VCI on Wikipedia. If you don’t know your VPI/VCI settings, you could find this either by contacting your ISP, maybe find it in this list or by setting up your router according to your ISP’s instructions and then fetch the details from the modem. (protip: atm phonebook list in SpeedTouch’s console).
- Setting up a WAN/ATM’s configuration towards your DSLAM with the name “BrPPPoE_ph”.
- You might be required to setup the ATM configuration with more details, like which protocol encapsulation it should use on the ATM interface etc. See “help ifconfig” for all the properties.
atm ifadd intf=BrPPPoE_atm
- Adding an ATM interface with the name “BrPPPoE_atm”.
atm ifconfig intf=BrPPPoE_atm dest=BrPPPoE_ph ulp=mac
- Configuring up the ATM interface to use the configuration you just setup under “BrPPPoE_ph” (atm phonebook configuration, contains the configuration for your VPI/VCI, etc)
atm ifattach intf=BrPPPoE_atm
- Attaching/Enabling the interface “BrPPPoE_atm”
eth bridge ifadd intf=BrPPPoE_br
- Adding an ETH(ernet) interface under the name “BrPPPoE_br”
eth bridge ifconfig intf=BrPPPoE_br dest=BrPPPoE_atm
- Configuring Ethernet interface “BrPPPoE_br” to forward packages between itself and BrPPPoE_atm interface.
eth bridge ifattach intf=BrPPPoE_br
- Attaching/Enabling the interface “BrPPPoE_br” - Bridge should now be enabled.
- Saves the configuration to the device, so it survives a cold reboot of the modem.
Here’s a quick copy/paste friendly version:
ppp relay flush eth flush atm flush ppp flush atm phonebook flushsaveall atm phonebook add name=BrPPPoE_ph addr=1.33 atm ifadd intf=BrPPPoE_atm atm ifconfig intf=BrPPPoE_atm dest=BrPPPoE_ph ulp=mac atm ifattach intf=BrPPPoE_atm eth bridge ifadd intf=BrPPPoE_br eth bridge ifconfig intf=BrPPPoE_br dest=BrPPPoE_atm eth bridge ifattach intf=BrPPPoE_br saveall
SpeedTouch modem should now be up and running in bridge mode, connect your DSL-line into the DSL/WAN-port (red port in the image above in the article) . Connect port 1 on the LAN switch to your router(in my case, Linksys WRT54G)’s WAN port.
My network topology now looks like this (ugly picture, but hey, it hopefully explains how I wired it all together):
Pro tip for Tomato users (Linksys WRT54G) to access your SpeedTouch device in another subnet then your local network:
Administration -> Scripts -> Init:
sleep 10ip addr add 10.0.0.2/30 dev $(nvram get wan_ifname) brd +
/usr/sbin/iptables -I POSTROUTING -t nat -o $(nvram get wan_ifname) -d 10.0.0.0/30 -j MASQUERADE
I’m now able to reach my modem which is set in bridge thru my WRTG54G router. In other words, I can now ping from 192.168.X.0/24 towards 10.0.01