[SOLVED] BT VOYAGER 2100/2110 connect issues


Results 1 to 2 of 2

Thread: [SOLVED] BT VOYAGER 2100/2110 connect issues

  1. #1
    Join Date
    Sep 2006
    Posts
    2

    [SOLVED] BT VOYAGER 2100/2110 connect issues

    Several people have reported on troubles here in the past with trying (and failing) to connect to a BT (British Telecom) supplied 2100/2110 wireless xDSL router/gateway from Linux.

    I am (today) in a hotel served by such a box, and so I took a couple of hours to figure it all out.

    The BT-supplied "key" (sticky label on bottom of router) is a WEP128 Passphrase, not a full WEP hex key. Even though it looks sort of like a key. Easy one.

    But the real problems came after sorting out the silly WEP key. The box would not forward any of my packets through to the outside world.

    It seems that these boxes use two *different* MAC addresses for themselves (protocol violation). Linux just keeps trying to use the first ARP discovered MAC destination for the BT Voyager box -- but only the second one actually works.

    Witness this:
    # arping -c1 192.168.1.1 -I eth1
    ARPING 192.168.1.1 from 192.168.1.53 eth1
    Unicast reply from 192.168.1.1 [00:11:F5:BA:67:AA] 1.831ms
    Unicast reply from 192.168.1.1 [00:11:F5:77:38:C2] 2.588ms
    Sent 1 probes (1 broadcast(s))
    Received 2 response(s)

    The first MAC address (ends with :AA) is what Linux will use to talk to the router, but the router instead wants us to use the second one (ends in :C2). Each time Linux tries to send a packet to the first MAC, it gets an unsolicited ARP reply telling Linux to use the second MAC instead. Linux ignores this. Apparently windows does not ignore it.

    To fix the problem, you can simply do the same "arping" command shown above, substituting the correct IP address and ethX interface. Then, force Linux to switch to using the second MAC when sending packets, like I do here:

    arp -i eth1 -d 192.168.1.1
    arp -i eth1 -s 192.168.1.1 00:11:F5:77:38:C2

    Done. Everything works fine now.

    To automate this, I have written an awk script to do all of the above with no need for hardcoded values anywhere. In the "eth1" section of my /etc/network/interfaces file, I added two lines to invoke the script on connect/disconnect. The script is harmless when talking to non-BT routers, so no problems just leaving it all in place.

    Here are the additional lines from the eth1 section of my /etc/network/interfaces file:

    post-up /usr/local/bin/handle_multiple_arps.awk $IFACE set
    pre-down /usr/local/bin/handle_multiple_arps.awk $IFACE delete

    The script itself is available for download (right-click and save) from here:

    http://rtr.ca/handle_multiple_arps.awk

    Cheers

    Mark Lord
    Share on Google+

  2. #2
    Join Date
    Oct 2002
    Location
    Republic of Texas
    Posts
    5,892
    Dude! You rock!
    Need help in realtime? Visit us at #linuxn00b on irc.freenode.net <-yes, those are zeros. http://www.linux.com/article.pl?sid=07/04/14/0631220
    Please follow the JL posting guidelines. || Put those spare cycles to use! Join the Justlinux folding@home team! Team #36480 Join Now! || Link to some of my config files and a few howto's.

    Few of us will do as much for our fellow man as he has done.
    --Andrew Morton on RMS
    Share on Google+

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •