Every month or so all my devices lose internet and the only way to connect them all back is to disconnect them from the DNS server that Pihole is running.
I set my Pihole to have a static IP but for some reason after around a month or maybe longer, it just fails. This has happened 4 times over the last while and the only fix is to essentially uninstall everything on my Pihole, disable it, and then reconfigure it from scratch again.
I’m not sure what’s going on so any help would be appreciated.
If you can’t access your server and your router’s web interface, that’s a subnetting/DHCP allocation issue. Nothing to do with Pi-Hole.
For reference, there’s 2 ways to allocate static addresses to devices:
- Define DHCP range, and configure the application to use a static address outside of the allocation pool.
- Give out static addresses by MAC.
“Skill issue bro” /s
A 30 day DHCP lease expiration would explain OP’s issue.
I vote for 60 day lease time, iirc the clients try to get a new lease when half of the time is over, so they can keep the ip.
Maybe, but I suspect it’s working like this:
- Pi boots then requests locally configured IP from DHCP server
- DHCP server grants 30 day lease for requested IP
- Pihole runs fine for awhile, DNS requests are properly handled
- IP lease expires, DHCP server returns IP to available address pool but doesn’t reassign it to anything yet
- time passes
- Random wireless device connects to router, DHCP server assigns IP to new device
- DNS requests to Pihole fail because the IP was assigned to the recently connected wireless device
This would explain why Pihole appears to cause problems every month, sometimes a little longer.
Basically, no static IPs at all. Lol
Definitely a skill issue haha. I’m brand new to this stuff so I’m trying to learn as fast as possible. Appreciate the help and the explanations!
It’s alright, most computer geeks (even professional ones) can’t even figure out how IP addressing works. That’s why networking is its own sub group in enterprise environments.
If you’re a computer geek (even a professional one) and struggle with IP addressing, you won’t be having much of a career.
LMAO I know a whole bunch of people who don’t know a subnet mask from a hole in their ass and they’re doing just fine in their IT careers. You are overestimating the requirements for a great many corporate jobs.
Ya it’s me I’m the guy in IT who is currently confusing a subnet mask for my own ass.
Just think of it as a routing optimisation that is only relevant for ipv4 networks.
Router simple, router need to make decisions quick, quickest decision is made when can smush the subnet mask against an IP address and determine if the computer is on a local network so router can send traffic direct or is on other network so router needs to send traffic to other router
There’s a difference between corporate IT and being a computer geek.
I agree that many IT careers are relatively simple support jobs.
They mentioned computer geeks which implies, to me, people who are deep into computers. In that light, if you’re struggling with concepts of IP addressing then the more-complicated facets of computers and networks will preclude you from an engineering role.
Is this some kinda weird ass gatekeeping-esque computer geek thing? What you said is so wrong it’s not even funny.
I’m not gate-keeping. I’m simply suggesting that IP addressing is one of the less-complicated things when it comes to computer-geekery.
Nah you’re literally gatekeeping what it means to be a computer geek.maybe it’s not gatekeeping per se, but you sure are wrong and look like an assI’m wrong? You’re saying that IP addressing is one of the most complicated things about computers/networking?
deleted by creator
That’s a good idea that I hadn’t considered. I’ll see if I can get Pihole running on an old android phone I have lying around.
Edit: I now have PiHole running on an old Pixel 3a and have decommissioned my PiHole docker container on my home server.
My server and a raspberry are running adguard home
Both have autoupdate with autoreboot. If I need to change something, connect, disconnected, everything will continue working
I have a google router and It allows me to enter 2 DNS servers incase the first DNS Server doesnt work.
That’s pretty standard for nearly every router and Internet connected device. There is almost always a setting for Primary and Secondary DNS servers. Sometimes you can even set more (ie. 2 IPv6 DNS servers in addition to the 2 IPv4 DNS servers)
You should probably also sync them. I use orbital sync for this. https://github.com/mattwebbio/orbital-sync
Or gravity-sync. I use two Pi-holes with gravity-sync and it’s very reliable and effortless.
I run pihole on a proxmox cluster (lxc containers), 2 separate IPs and I setup keepalived and made the virtual IP the primary dns ip that my dhcp server hands out, pihole1 is the master and pihole2 secondary. I use gravity sync to keep both piholes in sync. Works very well and I can reboot one at a time without losing dns at all. Techno tim on YouTube has a guide on how to setup keepalived on 2 pihole servers that helped me set it up.
This is not an answer to the question at all
Yeah it is? There’s a reason your dns confutation has a backup IP address.
That is true. But a simple service like dsn doesn’t go sideways every month usually. If he gets two of these services running, he just had double the trouble.
First thought: Is your PiHole’s static IP within the range of addresses your DHCP server hands out?
My Pihole lives on my server computer and so the DNS is the same IP address as that computer
Irrelevant, unless your pihole is running on your DHCP server. Does the server running pihole have a statically assigned IP that is within the DHCP range being assigned to other devices?
Static addresses should be outside of your DHCP range, ideally. If you can’t change the range, and assuming sequential handouts of IPs from your router among other things, you can try setting the server’s static IP to a bigger number.
Are we getting a repeat of the guy who’s wifi didn’t work because of a smart bulb?
Wait, smart bulbs run rogue dhcp servers now?
They’re called too-smart bulbs, now.
Lol
Lmao even
I assume the issue was the bulb was getting assigned by DHCP the same address that was supposed to be reserved for their PC, thus their wifi appearing not to work for their PC.
Haha not quite. Sounds like an interesting post though. I’ll have to look that one up. From all the help given to me here though it looks like my “static” ip is within dhcp range so my router is giving everyone else my key to the castle and therefore invalidating my key.
Yea, duplicate IP addresses lead to some funny business. Toss a coin to see if a network packet will arrive basically.
The solution is to adjust the DHCP range or use static DHCP on the router. The latter just means that the router will assign the same IP to the specified computer every time.
Oh my, I didn’t catch that one but will be searching for it!
I love* solving wonky user issues. People do the darndest things.
*Subject to tolerance and patience levels of both user and self
That sounds horrible.
The static address should be assigned from the dhcp server.
Assigning a static address on the nic is a recipe for issues.
Set up a static assignment in your dhcp server.
I’m not able to log into my router in order to edit any of my dhcp settings 😭 little caveat there.
Then that’s likely your issue.
Your router occasionally gives out the ip of your pihole to someone else, and everything shuts the bed.
Try picking x.x.x.254 as the pihole address or x.x.x.2
Often routers won’t use either the top end or low end of the available addresses.
The machines on your network that are dhcp, do they go below 100? Do they go above 200?
You’re going to be guessing a little here.
What is your “net mask”
Ya I’m pretty sure you’re correct here and this is my issue. Since I’m not able to log into my router and define my dhcp range, I’ve picked an IP near the end of the range (254).
All my other devices are assigned .23, .25, etc.
Fun learning experience haha
Your ip-mask will tell you what IPs are accessible on the network
Likely goes nowhere because it’s probably 255.255.255.0 but it’s possible to be something else.
Are you on the same subnet as your router or are you on the subnet that your custom dhcp server is handing out? If your router is 192.168.1.1 and your ip is on the 192.168.2.x range, they aren’t going to be able to communicate.
Ya I’m on the same subnet
Are you using https?
That sucks, it’s be good if you could disable DHCP overall and do it on the PiHole.
Hm interesting. Basically my server is a windows computer (ya windows is not a good server OS I know, was lazy and experimenting) and in the windows network settings I assigned it a static IP that was within my DHCP range.
I wasn’t aware you could set it outside the range but this makes sense that it should be outside of the range so that my router doesn’t give my servers IP address to something else.
As you can tell I’m not super knowledgeable about networking but your help is making things make more sense. I appreciate it!
That definitely sounds like you’ve found the issue, hopefully changing the IP solves it!
windows network settings
Haha yeah a big strong network person would be running proxmox or Ubuntu server or Debian or something and having a better time. I’m my defense, I’m both lazy and stupid so while (almost) everything is working, I’m keeping windows
Nothing wrong with a Windows box as your server. Use what you know. Windows skills are a great asset in the world.
This issue is OS-independent, meaning you would have the same problem on a Raspberry Pi as you did on your Windows box.
GLHF
It’s definitely more difficult when you don’t have control over the DHCP server. Is it part of a router provided by your ISP?
Yeah the router is provided by the ISP and it has very limited options on it but it is running the DHCP server.
Do you run your PiHole on top of Docker? There’s an issue with docker and Raspberry Pis which makes the network crap out periodically. So if your PuHole becomes unavailable until you restart your Pi it might be this:
https://github.com/raspberrypi/linux/issues/4092/
Solution is to add “denyinterfaces veth*” to the dhcpd.conf
Oh my gosh. I have been trying to figure this issue out with my docker containers for months. If this is the fix, THANK YOU.
I have had this issue for about a year, while trying different monitoring and logging solutions to try and find out what’s going on.
This was such a bitch! Now I’m spreading the word, so that other won’t suffer as long as I have.
PuHole 🤣
Hahaha! I’m keeping this typo 😂
My first thought on this was immediately “did you also reserve that static IP address on your router to make sure it remains assigned”. From what I’ve read that does seem to be the issue, so that’s a little validating.
I managed to get into my router and my Pihole server shows up as static and I’ve assigned it an address at the higher end of the DHCP range so we’ll see when the lease expire 🤷
Don’t set the static IP within the DHCP range (well you can, but it then depends on how smart your dhcp server is, just avoid the situation).
You run a risk of the same IP being assigned to another device.
As long as the router has the IP explicitly reserved for the device your PiHole is running off of then it won’t be reassigned.
Are you assigning the static address on your pi, or are you assigning a static address on the router?
This. I’ve always done dynamic IPs on my devices and set static IPs for them on my router. Never had an issue.
This is the way. Although, to clarify, you should assign static IPs on your DHCP server, which for most SOHO networks, that’s going to be your router.
If you assign statics on your hosts, your DHCP server will assign them the preferred address if available, but if it’s already assigned then the DHCP server is going to give your device the middle finger and assign them whatever the fuck it wants.
Not sure if I’m misunderstanding you, but the router/DHCP server doesn’t assign an IP at all to a host that you’ve assigned statically. Any given host can be statically assigned or use DHCP, not both.
The real problem with statically assigning IPs to hosts, is that your DHCP server won’t know that and could give a new device the same IP address as your statically assigned host, causing an IP conflict, if you statically assigned the host with an IP that’s inside the DHCP scope.
What you have to do is only assign static IPs that are outside the DHCP scope, or set all hosts to use DHCP and then use reservations in your DHCP server to make sure they get the same one each time.
For infrastructure critical services I recommend reservations on the DHCP server and then set static assignment on the device for the IP reserved in DHCP. This way if the device ever fails over to DHCP for any reason the IP will not change. I’ll usually also leave some small address space outside the DHCP scope available for static assignment if needed, usually at the front and usually around 20 IPs max as it’s easier to let DHCP do the heavy lifting.
Static IPs are important on infra critical devices if you ever find yourself in a situation where the DHCP services are not available, you don’t want them to be a single point of failure.
Just my 2 cents.
Probably a bit of both to be honest. Thanks for clarifying.
Taking a look at your Pihole logs is going to be helpful. Also knowing what kind of device is running the Pihole software may also help.
I had Pihole running on a raspberry pi 3 years ago, and I had pretty consistent issues. I’ve run it on other hardware since without a problem.
It could be an issue with the SD card, if you’re using a raspberry pi. I’ve also read that the log file can grow large enough to cause issues with your Pihole instance.
So there are a number of possibilities.
What’s the other hardware you run it on without issues?
I ran it on a linux-based NAS as well as a Windows server. I don’t use Pihole currently, however.
what do you run if i may ask?
I’ll have to take a peak at the logs. I’ve been running the server nearly headless but with this issue I cannot access my server over my lan so I’m going to have to physically plug a screen and keyboard into it later.
Yep, not having DNS/DHCP is a pain in the ass. When mine went down it would take my network with it because the Pihole was handling both. Expected but also a pain in the ass.
One last piece of advice: Pihole has great support. I’ve gotten a ton of answers and assistance from the Pihole Sub on Reddit. I don’t know if it’s still active since the migration away from Reddit, but you may ask.
I’d rather ask here and start building up the knowledge base off Reddit but you’re right.
I think I know my problem though (something I’m not able to fix aaaaa)
I agree. Unfortunately I don’t think u/jfb-pihole is on Lemmy and they’re one of the devs (I think) for Pihole. Best of luck with your issue!
I would HIGHLY recommend that for something as essential as DNS, you should be running it on its own hardware. Considering, as you’ve experienced, that any issues result in a complete loss of normal access to the internet.
You can run pihole on something as small as a Raspberry Pi zero w, then just set it with a static IP and forget about it.
Considering you said you’re currently using WSL I suspect there is an extra layer of networking bullshit that is breaking your routing. If you haven’t already looked at this document, it might have the information you need https://learn.microsoft.com/en-us/windows/wsl/networking#accessing-windows-networking-apps-from-linux-host-ip
But for the sake of stable DNS services you will thank yourself for just getting a dedicated device of any power level to ONLY handle DNS.
I’m very happy with my little PiHole on a Pi Zero 2 W running DietPi, easy set up and then you can just forget about it apart from periodic updates. No issue with it being via WiFi either, which makes placing it much easier.
Where does he mention wsl?
Down in a reply to some other comments https://lemmy.ca/comment/3915756
I am horrified, but equally impressed 😂
Your static IP probably isn’t set on the router
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters CGNAT Carrier-Grade NAT DNS Domain Name Service/System HA Home Assistant automation software ~ High Availability IP Internet Protocol NAS Network-Attached Storage NAT Network Address Translation PiHole Network-wide ad-blocker (DNS sinkhole) RPi Raspberry Pi brand of SBC SBC Single-Board Computer SSD Solid State Drive mass storage SSH Secure Shell for remote terminal access
10 acronyms in this thread; the most compressed thread commented on today has 12 acronyms.
[Thread #209 for this sub, first seen 11th Oct 2023, 11:55] [FAQ] [Full list] [Contact] [Source code]
I had similar issues when SLAAC wasn’t properly configured for my network. Every however many days my ISP forced a modem reboot and if the delegated prefix happened to change I’d start having pihole problems. I finally tracked that down, made sure SLAAC was working everywhere and assigned my pihole container a SLAAC token so its address relative to everything else on the network didn’t change and I’m good to go. These days the pihole is always …253 and ::253.
For those that don’t know SLAAC is the “new DHCP” IPv6, I had to remember what it was.
Yeah, SLAAC is stateless autoconfig for ipv6. It’s a little like DHCP in that the client gets an address automatically but it’s handled by the client machine rather than having a DHCP server running.
SLAAC capable machines give themselves an address based on the ipv6 prefix advertised on the network then do a duplicate address check with all of the other devices to make sure they’re unique and away you go. There’s no central tracking of all dynamic addresses on the network segment, hence the stateless part of the name, but you can poll them with a neighbor request or broadcast ping when you want to see what’s there. The benefit is that basically everything you plug into your network probably supports SLAAC out of the box without needing to run server software anywhere to delegate addresses so new v6 clients just work without specific configuration.
If the client supports it you can specify a SLAAC token that the machine will combine with the advertised network prefix rather than generating its own, which is how I have pihole showing up at ::253 as well as its DHCPv4 assigned …253. It’s a convenient configuration.
I’d ignored SLAAC the first time around and given everything static v6 addresses without realizing that my provider would periodically change my prefix. That was fun to untangle, things worked if they made v4 requests but failed over v6 whenever my prefix changed so the failure mode appeared to be somewhat random depending on whether the service or application supported dual stack and was trying to connect over broken v6. Fun times.
How do you tell if your ISP has that?
Check your router and see if you received an IPv6 delegated prefix along with your v6 address. Most of the major national home Internet providers in the US should support it now - if your provider supports ipv6 they’re probably giving you a delegated prefix.
Usually you just enable ipv6 SLAAC + RA or “auto configuration” or something similar on the router and you’re done there.
Once that’s working your router should broadcast route advertisements, turn “auto configuration”/SLAAC + RA/etc on on a client and see if it gets an ipv6 address. You use this instead of DHCPv6 so don’t mistake the two.
Fiddle with the options after that, if a client supports a token you can give it something like “::DEAD:BEEF” to set its address to prefix::DEAD:BEEF.
Beyond that Google “ipv6 SLAAC” and read about it and then read any ipv6 documentation for your software/devices.
Ooo ok, yea, I already have a delegated prefix from spectrum. I’ll look into SLAAC as this is the first time I saw that. Thanks.
I haven’t done any research on pi-hole (I use firewalla) but is a raspberry Pi even powerful enough to support a small home network?
What kind of CPU/RAM usage for a your unit normally have?
My RPi4 is running PiHole, mailu and HomeAssisstant, without hickups.
Clue in name.
Ya from my research raspberry pi is powerful enough to act as a DNS server for a home. I probs wouldn’t put a 4k plex library on it but it should do the job.
In my case however I’m not running a raspberry pi. I have installed PiOS into Windows using WSL (like a lunatic) in an effort to not reformat my whole server computer and install something more practical (like Ubuntu server).
I’m running a bare metal esxi server and one of the containers is running my pie hole and it is relatively Rock solid.
I think the original poster should probably just set a Cron job to reboot the pihole every 3 days or so at like 3:00 in the morning and that would solve the problem.
That’s a decent idea for a workaround but I think I found my issue and have set my static IP address for my server to be outside my DHCP range. Here’s hoping it works. I’ll know in 90 days haha.
I give my pihole container about 1GB of RAM and one core and it’s good to go (two cores helps with maintenance tasks though.) An entire RPi just to run pihole is such overkill.
It’s not that much of a strain since it only handles DNS traffic.
When you go to e.g. programming.dev, you computer needs to know the actual IP and not just domain name so it asks a DNS server and recieves an answer like 172.67.137.159 for example. The pihole will just route the traffic to a real DNS server if it’s a normal website or give a unkown ip kind of answer if it’s a blacklisted domain. Actually transmitting the website which is the bulk of trafic is handled without the piholes involvement.
Give an alternative a go, see if you have better luck. There’s adguard home, blocky, and Technitium DNS for you to consider.
Alternatively, the window trick should work.
I had reliability issues with PiHole and moved to AdGuardHome a couple of years ago. It has never, ever crashed and the updates takes a couple of seconds. It rocks.
How do you set the static IP for the pi? From your router’s DHCP server, or from pi’s network configuration?
I set it directly on the computer hosting Pi since my router doesn’t let me log into it.
Do you know if your router is acting as a DHCP server? Most do, and if you’ve set up the Pi as one without logging in and turning off your router’s, you’ve set up two conflicting DHCP servers, and that would explain your issues.
I’m assuming my router is acting like a DHCP server as it’s all on default settings and my other devices are handed an IP address something like 192.168.5.xx
I’m not able to log into my router anymore (tried all the ways: 192.168.2.1, 1.2, 5.1, etc) so you’re probably correct that with both dhcp servers up and running they’re probably conflicting.
I just want to reiterate what others have said: do some googling about your router make and model. Look for the instructions for “hard reset” or “factory reset”. Follow those instructions. Once you do, you should be able to find the default login online.
Once you’re able to log into your router, I’d suggest keeping it as your DHCP server and simply following the instructions to set up a pihole with it. Everything seems to work more smoothly without the pihole as DHCP server.
Ya a factory resets pretty much the only thing I haven’t tried yet and it’s simply because I don’t want to have to reset up all my lights and smart devices but I fear that might need to happen.
I don’t think I have my Pihole set up to by my dhcp server, just my dns
You can avoid that by using the same Wi-Fi network name and password that your current network uses. Your devices won’t know the difference.
Gotcha. That makes sense!
With Pihole off, look for your gateway address. That will be your router address. Are you using windows on your usual pc? Ipconfig command should show you your gateway, easily.
Then tap that into your browser to log in to your router and deactivate dhcp from it.
Ya that was something I tried initially, looking up the default gateway using ipconfig and then trying that address.
It didn’t work before but maybe this time I’ll try again, ensuring that piholes not running.
Use https://x.x.x.x not http://
Tried both. Usually http:// is the one that works for me for my other services on different ports. It’s very likely a conflict with my routers dhcp 🙃
Plug a pc straight into the router and do an ipconfig /all. It will tell you the router gateway if you don’t have a static ip. Go to the gateway ip and turn off dhcp.
Then go to your server dhcp and put a dhcp exclusion for the pi hole ip and anything else you have static’ed
This doesn’t work for me unfortunately :/ I suspect my router needs a factory reset since I’m not able to log into it at all
The fact you’re not able to log into your router is the first problem you need to solve here. If you’re having network issues, the router is always the first thing that needs to be working perfectly. Otherwise whatever else is going on is probably being affected by the router in some way.
What you’re doing right now is sort of like saying “Hey, does anyone know how to get this bad smell out of my car? Nothing I do seems to work. Oh, BTW, the engine is on fire, it’s been like that for a while, I don’t know how to put it out. Anyway, so the thing with this smell is…”
My take was that there was some corrupted setting that wouldn’t let me access the router as I’m having no other network issues but you’re right in that I wouldn’t have any of these issues if I could just log into the router and actually properly set a static IP.
Figured I’d ask the void if they recognized the smell since there are people much smarter than me out there
There is a chance that the dhcp server on your router actually hand out the same ip address to other client, causing the pi to become inaccessible due to ip address conflict. Assigning the static ip address from the router will prevent this issue.
If your router is from your ISP, maybe you can ask them to give you access to the lan configuration options. ISP routers usually have two accounts, the full admin account which usually aren’t handed out to their subscribers, and a user account that would let their subscriber configure various lan settings.
At one point my router would let me log into it using its IP address but now it does not let me no matter what IP I type.
This all would have been much simpler had I been able to log in and set a static IP on my home server from there and disabled DHCP 🤪
What’s the router’s brand and model? Googling it might give you the answer. The administrative page for the router might be hosted on custom ports instead of port 80.
Yeah I tried doing that initially. It’s a Bell Homehub3000 and all the login addresses suggested online that I tried were no dice. I probably have to factory reset the router but that would mean redoing my entire smarthome and IOT setup which I’m really not looking to do 😅
That’s suck. I actually had similar issues where the router’s login page would refuse to log me in, even though I actually can login to the router using SSH. No other fix but to reset the router and start again, but time I export the router’s settings (most router has settings import/export feature) after I got everything setup so I don’t have to do it from scratch when the router crap out again.
For me it’s as if there is no router login page which is kiiiiiilling me haha. All of my silly issues would be gone if I could just set a hard static IP for my server 😄
I have a 5G CGNAT ISP router, but distanced myself from it by adding my own full access router connected via a LAN cable to my ISP one and using its wifi instead of the ISP’s wifi. This prevents the ISP router from stealing IP addresses (it can literally do whatever it wants to its IP ranges as long as it feeds internet through the LAN cable), and gives me full control over local network IP addresses (as I also am not provided any login to the ISP router).
Might be an extra NAT, but that kinda becomes moot being behind CGNAT that can’t open external ports anyway.
I used to do something similar by having another router and my main one in bridging mode but this new router from my ISP seems to be idiot proof and won’t let me access the login screen. A factory reset is in my future I think.
What model is the router?
Not a solution to your current problem, but an alternative to consider depending on your network setup.
I’ve been running unbound as my DNS via OPNSense. Same capabilities for blocklists, plus some nice privacy benefits with DoH/DoT. I think you can use unbound with pihole too, fwiw, i just don’t have a need for that.