Possible Software Bug with DNS Resolution
Hello TP-Link Community,
I came across a potential bug with the Kasa Smart home software that I wanted to report.
TL;DR the KC120 Camera software gets DHCP with multiple DNS Servers, but does not have the mechnisim to fail over to a secondary DNS Server when the primary fails.
Long Version:
At home I run Ubiquiti Wireless and a USG Gateway for my network. For DNS I run 2 Raspberry PIs with PI-Hole installed. About a month ago my "primary" DNS server at home died after years of faithful service and I had to move to just one. I did not promote the IP address of the secondary I just moved my configs and left off the old servers IP. Well about a week ago I moved my UniFI Controller and had to restore from a previous backup of the config, which included the old server as the primary. At that point the Kasa KC120 stopped reporting to the cloud. (Though at the time I didn't realize that was the issue). It wasn't until 5-6 days after the loss did I notice that my KC120 was blinking green (which indicates that the device HAS internet, but cannot talk to the cloud resources from TP-Link). After reseting my KC120 numerous times (it would always go through the steps to connect to the Wifi but then it would send the error "Cannot Connect to Wifi" however the the Camera would be blinky Green, which would indicate that DHCP had resolved. I also verified that the KC120 was on the network by performing some port scans using NMAP, which was an interesting find for another post). I was tailing my PI-Holes DNS logs and I was seeing the KC120 making requests to TPLink and other sites, so I knew that the host was responding on the network. It wasn't until I connected my KC120 to a wifi hotspot seperate from my Unbuquiti set up did it work flawlessly, which led me to the incorrect setting in my UniFi controller. After removing the bum DNS Server the camera came online with no issues.
Seems like there might be an issue with error handling within the application to account for SERVFAIL
repsonses.
Anyway, thanks for reading!