PowerDNS / pdns

PowerDNS Authoritative, PowerDNS Recursor, dnsdist
https://www.powerdns.com/
GNU General Public License v2.0
3.7k stars 908 forks source link

ifurlup doesn't health check until its first resolve. #9529

Open networkprofession opened 4 years ago

networkprofession commented 4 years ago

Short description

ifurlup doesn't health check until its first resolve.

Description

1)I don't know if its a bug or not but If you use ifurlup feature half of time in first hit goes to second set's of ip instead of first set I would like to have ifurlup immediately start health checks instead of waiting someone to trigger it.

`C:\Users\pc1>ping www.example.com first try

Pinging africa.example.com [35.197.173.11] with 32 bytes of data: AU dns (second set's of ip) Reply from 35.197.173.11: bytes=32 time=1136ms TTL=57 Reply from 35.197.173.11: bytes=32 time=1245ms TTL=57 Request timed out. Reply from 35.197.173.11: bytes=32 time=1135ms TTL=57

Ping statistics for 35.197.173.11: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 1135ms, Maximum = 1245ms, Average = 1172ms

C:\Users\pc1>ping www.example.com second try

Pinging africa.example.com [35.236.3.24] with 32 bytes of data: US dns (First set's of ip) Reply from 35.236.3.24: bytes=32 time=632ms TTL=53 Reply from 35.236.3.24: bytes=32 time=630ms TTL=53 Reply from 35.236.3.24: bytes=32 time=630ms TTL=53 Reply from 35.236.3.24: bytes=32 time=633ms TTL=53

Ping statistics for 35.236.3.24: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 630ms, Maximum = 633ms, Average = 631ms `

Habbie commented 4 years ago

Hello, currently this behaviour is by design. Doing what you ask would mean that pdns would have to scan the database at startup.

This ticket might also be a duplicate, but I can't find the other one right now, so I'll leave this open. Note that we have no current plan to change this.

laurretang commented 3 years ago

so as function ifportup

sfoutrel commented 1 year ago

Hello, it seems that it does not use the healthcheck result on first resolve. I added a loglevel=9 in my config and even when logging DOWN for an ip it return it as result on first resolve, but second resolve gives a UP ip as answer.

Habbie commented 1 year ago

The first health check happens -after- the first resolve.