(Warning, long rant ahead)

This weekend I dropped SBC and got Charter net access.  Turns out my
apartment was not on the line assigned to me, which warranted a service
call to get it working, but that is outside the scope of this discussion.

I currently use a Linksys WRT54G as my border router, which worked fine
with SBC.  But when I plugged it into the cable modem, it would not get an
IP address.  So I plugged my linux laptop in and ran dhcpcd, again,
nothing.  However, when I plugged in my Windows box, it would get an IP
address.  Then unplugging the windows box, plugging in the linksys, and
cloning the windows box's MAC address would then work.  So then I reset my
cable modem and we were back to square 1, despite the MAC address still
being cloned.

A little background about DHCP: "Normal" operation dictates that the
client broadcast a Discover packet, then the server sends an Offer
directly to the client with the ip address being assigned.  The client
sends a Request to the server with that offered ip address, and the server
responds with an ACK.  However, there is a flag in the DHCP packet that
can be set that says all communications should be done via broadcast.  IE,
the Discover, Offer, Request, and ACK packets are all addressed to
ff:ff:ff:ff:ff:ff.

That's the key.  I don't know everything about Charter's network, but this
is what I deduce from playing with Ethereal for an hour or so.  Charter
does "authentication" via DHCP.  In an "unauthenticated" state, the only
thing that the modem sees is ARPs and DHCP broadcasts.  Everything else is
filtered.  However, once you are "authenticated" by grabbing an IP
address, you are able to receive unicast traffic.  That makes the
broadcast bit in the DHCP packet essential.  If the client requests a
unicast reply, it will never see it.

Looking at Ethereal dumps, it appears that my Linksys box does not set the
DHCP broadcast bit.  Neither does dhcpcd in its default mode (this can be
changed by doing "dhcpcd -B eth0", at which time it works fine with
linux).  Windows's default mode is to set the DHCP broadcast bit.
Unfortunately, it looks like the Linksys box does not have an option to
set that bit.

But, you may ask (more likely, you've stopped reading by this poing :),
why is the linksys box able to get an IP address after the Windows box (or
Linux with the -B option set in dhcpcd) gets and IP address first?  Well,
the "tunnel" is already up; the modem is now receiving unicast packets.
The linksys box sends a DHCP Request, requesting a unicast reply.  And
Charter's DHCP server sends a unicast reply.  And all is good.

So what does a person like me do given this situation.  Several things can
be done:
1. Use Windows for the router.
2. Use Linux for the router, specifying the -B option to dhcpcd.
3. Use Linksys for the router, but doing #1 or #2 first to bootstrap the
process.
4. Try to get ahold of an engineer at Linksys and suggest the ability to
set a config option to specify what mode the dhcp client should use,
broadcast or unicast.

For now, I'm doing #3 and #4.  That being said, what do the rest of you
do?  Does only the WRT54G do this?  Did you just give up on using Linksys
products with Charter?  Is Charter's behaviour in this manner specific to
my segment?  Tell me your story, Charter users...

Oh, and BTW, the performance seems good.  Sunday evening and I'm getting
about 750/115 on a 768/128k account, according to dslreports.com.  YMMV.

RF
_______________________________________________
RLUG mailing list
[EMAIL PROTECTED]
http://www.rlug.org/mailman/listinfo/rlug

Reply via email to