This one is a bit odd. I’ve been running VyOS 1.5 nightlies for a while now but recently ran into a problem with getting my VyOS router to take a DHCP lease from a new cable modem.
My previous modems have both been Motorola/Arris Surfboards, but this new one is A Netgear Nighthawk CM2000. For whatever reason, connecting a PC directly to the new modem is able to get a lease and get onto the internet, but the moment I have it fully reset and try to connect my VyOS router to it, it won’t pick up a DHCP lease for the life of me.
TCP Dump on the WAN interface does see outbound DHCP requests, but never sees anything back. I’m not sure if it’s just something weird with VyOS’s DHCP implementation or if it’s the modem that is the problem.
Again, previous modems have worked flawlessly with my configuration.The only difference here is a new modem from a different vendor (Netgear). I’ll go to Netgear support if suggested, but figured I would ask if anyone has had a similar experience.
Anyone experience similar issues? Any suggestions with how to proceed? This one is frustrating.
What happens if you kick the dhcp client on VyOS after the modem has been up for five minutes or so?
I had a problem a few years ago when Spectrum forced me to replace my modem and the LAN interface would come up immediately, but the modem hasn’t completed its authorization and negotiation with the CMT. The dhcp client would time out, but would eventually get an IP after a back-off period.
A little more testing has been performed. I went to Xfinity and got their modem and activated it and put it into bridge mode. I am not able to get a DHCP lease on any recent 1.5 nightlies. Currently I have 1.5-rolling-202407070023 (previously 1.5-rolling-202405220019) as active.
Funny enough, when I roll back to a previous image (1.5-rolling-202311210100) I am able to get a DHCP lease without issue. It’s incredibly weird. As far as I can tell, TCPdump looks the same for the DHCP datagrams.
What changes, if any, have taken place to the DHCP client between 202311210100 and now that could be impacting this? If I have to, I will roll back to the older version but that would not be preferred since there’s some critical bugs/vulns that are likely fixed in the newer releases.
That is correct. I can get a lease with anything else with no issue. But when running the two previously mentioned newer rolling images, it never gets a response. I can see the request going out, but no response comes back. I’m at a bit of a loss as to what the issue is, especially since my laptop has (with firewall on!) no problem getting a DHCP lease, and when I’m running the older build, the VyOS router has no problem either.
I went ahead and compared the previous rolling version and the newer version and the only changes i’m really seeing are some changes to DHCP server configuration syntax. Everything else seems to be the same. Here’s a heavily sanitized copy of the configuration of the router from 1.5-rolling-202407070023 which is the one that is unable to get a DHCP lease for the WAN interface.
Any thoughts would be greatly appreciated. Thanks.
Can you please capture some DHCP traffic using tcpdump from both a working image and then a non-working image? Please use -w to save to a file, not ASCII pastes.
Then we could look at the two traffic captures and see what’s different about them as a potential pinpoint of the issue.
If there is a preferred file sharing service like dropbox,gdrive, or something like that I can share that way. I used to have access to Slack years ago but it seems the admins have done away with Slack for community members.
I had a good look at both those and yea, I have to agree, I can’t see why one would work and one wouldn’t. I recall seeing discussion about offloads being on/off in later version of Vyos, prehaps check what Ethernet Offload settings are active on the different Vyos versions, maybe that’s playing into it?
The one thing that strikes me as strange is in the newer example you receive a REQUEST without an OFFER. I’m not sure how that is possible.
And the REQUESTs do ask for an IP Address as you can see (and probably already know) in the attached screenshots.
I reviewed the original (not anonymized) pcap and that request / mac is coming from the cable gateway itself. You’ll notice the MAC in packet 7 and 8 is different from packet 6. The MAC ending in 70:94 is my vyos router, everything else is either coming from the CMTS or is the Cable gateway. It does seem that the anonymizer was consistent with it’s efforts, so the anonymized MAC and IP should be the same in both captures.
I will be testing out the other part (minimal config) later tonight. I may also brave tech support and do another factory reset on the modem / reactivate it with support depending on how much I want to punish myself. More to come there.
For what it’s worth, I signed up for Spectrum when my AT&T fiber was down for 10 days. I tried using a VLAN on my Unifi switch to connect it to Vyos and nothing worked. I finally ended up using an unused interface directly on one of my XCP-NG servers… and for some reason, that worked.
I had the problem with VyOS 1.4-rolling-202401141908 (very nearly final), right away, but I upgraded to VyOS 1.5-rolling-202408230022 and it has had the same behavior.
I did finally get it working going from the Spectrum modem to a Unifi 16 port then TP Llink 8 port over a VLAN to the XCP-NG server in my office. But I was gone over vacation and Spectrum buried the cable… and when I came back I could not get it to work. I set my MacBook Pro to use the same VLAN from my office, taking the same path and it got DHCP from the "Border Router I guess I didn’t try seeing if it could get a DHCP from Spectrum’s modem.
I don’t have any tcpdumps handy, but I can say this. When Vyos first reboots, it uses DHCP and gets a 192.168.x.x addresses. A minute or two later, it resets DHCP and then my Vyos gets a 24.70.x.x./20 address.
I saw this with my MacBook too… It initially gets a DHCP address of 192.168… then a minute later DHCP resets and it gets the direct IP.
My ATT fiber is working again, and their annoying “modem” lets me get as many DHCP addresses as I want. I can share a tcpdump if anyone is interested, I just want to add this tidbit.