Hi,

I am trying to familiarize myself with the behavior of Lua Records. 
Except for the 'ifurlup(url, addresses[, options])' function, I was able to 
follow the examples in the documentation in our Lab. 
https://doc.powerdns.com/authoritative/lua-records/index.html

Now I'm struggling with the 'ifurlup(url, addresses[, options])' function.

This is my Lua record:
ldapmaster.lua.ethz.ch 60 IN LUA A 
"ifurlup('http://ldapsmaster1.ethz.ch/check.html', {{'129.132.65.36'}, 
{'129.132.183.152'}})"

If the URL http://ldapsmaster1.ethz.ch/check.html responds with a 200 response 
code, I expect the following DNS response:
ldapmaster.lua.ethz.ch. 60 IN A 129.132.65.36  

If the URL http://ldapsmaster1.ethz.ch/check.html responds with a 404 response 
code, I expect the following DNS response:
ldapmaster.lua.ethz.ch. 60 IN A 129.132.183.152 

Unfortunately, the DNS responses are inconsistent:
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.183.152
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.183.152
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.183.152
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.65.36
$ dig @127.1 ldapmaster.lua.ethz.ch +short
129.132.183.152


Tcpdump clearly shows that the web server responds with a 404 response code

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
09:59:38.533784 IP 172.20.8.116.33260 > 129.132.65.36.80: Flags [P.], seq 
1:113, ack 1, win 229, options [nop,nop,TS val 620276954 ecr 3324300551], 
length 112: HTTP: GET /check.html HTTP/1.1
09:59:38.534502 IP 129.132.65.36.80 > 172.20.8.116.33260: Flags [P.], seq 
1:376, ack 113, win 227, options [nop,nop,TS val 3324300553 ecr 620276954], 
length 375: HTTP: HTTP/1.1 404 Not Found
09:59:43.532520 IP 172.20.8.116.48350 > 129.132.65.36.80: Flags [P.], seq 
1:113, ack 1, win 229, options [nop,nop,TS val 620281952 ecr 3324305551], 
length 112: HTTP: GET /check.html HTTP/1.1
09:59:43.533344 IP 129.132.65.36.80 > 172.20.8.116.48350: Flags [P.], seq 
1:376, ack 113, win 227, options [nop,nop,TS val 3324305552 ecr 620281952], 
length 375: HTTP: HTTP/1.1 404 Not Found
09:59:48.533005 IP 172.20.8.116.48354 > 129.132.65.36.80: Flags [P.], seq 
1:113, ack 1, win 229, options [nop,nop,TS val 620286953 ecr 3324310552], 
length 112: HTTP: GET /check.html HTTP/1.1
09:59:48.534626 IP 129.132.65.36.80 > 172.20.8.116.48354: Flags [P.], seq 
1:376, ack 113, win 227, options [nop,nop,TS val 3324310554 ecr 620286953], 
length 375: HTTP: HTTP/1.1 404 Not Found
09:59:53.532831 IP 172.20.8.116.60652 > 129.132.65.36.80: Flags [P.], seq 
1:113, ack 1, win 229, options [nop,nop,TS val 620291953 ecr 3324315552], 
length 112: HTTP: GET /check.html HTTP/1.1
09:59:53.533388 IP 129.132.65.36.80 > 172.20.8.116.60652: Flags [P.], seq 
1:376, ack 113, win 227, options [nop,nop,TS val 3324315552 ecr 620291953], 
length 375: HTTP: HTTP/1.1 404 Not Found

Why does my example not work as expected?
I must be missing something, am I misunderstanding the docu?


My lua zone lua.ethz.ch <http://lua.ethz.ch/>:

$ORIGIN .
latlon.lua.ethz.ch      60      IN      LUA     TXT "latlon()"
latlon.lua.ethz.ch      60      IN      LUA     LOC "latlonloc()"
ldapmaster.lua.ethz.ch  60      IN      LUA     A 
"ifurlup('http://ldapsmaster1.ethz.ch/check.html', {{'129.132.65.36'}, 
{'129.132.183.152'}})"
lua.ethz.ch     86400   IN      NS      ns2.ethz.ch.
lua.ethz.ch     86400   IN      NS      ns1.ethz.ch.
lua.ethz.ch     3600    IN      SOA     soa-ns.ethz.ch hostmaster.ethz.ch 2 
10800 3600 604800 300
whoami-ecs.lua.ethz.ch  60      IN      LUA     TXT "'ip: '..who:toString()..', 
netmask: '..(ecswho and ecswho:toString() or 'no ECS')"
whoami.lua.ethz.ch      60      IN      LUA     TXT "who:toString()"
whoami-port.lua.ethz.ch 60      IN      LUA     TXT "who:toStringWithPort()"
whoami.v4.lua.ethz.ch   60      IN      LUA     TXT "who:toString()"
whoami.v4.lua.ethz.ch   60      IN      LUA     A "who:toString()"
whoami.v6.lua.ethz.ch   60      IN      LUA     TXT "who:toString()"
whoami.v6.lua.ethz.ch   60      IN      LUA     AAAA "who:toString()"



My pdns.conf:

config-dir=/etc/pdns
setuid=pdns
setgid=pdns
8bit-dns=yes
allow-axfr-ips=127.0.0.0/8,172.20.7.128/25,::1
api=yes
api-key=xxxxxxxxxxxxxxxxxxxxxx
cache-ttl=10
consistent-backends=yes
default-api-rectify=yes
default-soa-content=a.misconfigured.dns.server.invalid hostmaster.@ 0 10800 
3600 604800 3600
default-soa-edit=INCREASE
default-soa-edit-signed=INCREMENT-WEEKS
default-ttl=3600
distributor-threads=3
enable-lua-records=yes
local-address=0.0.0.0, ::
local-port=53
loglevel=5
max-queue-length=100000
only-notify=
primary=yes
receiver-threads=4
reuseport=yes
secondary=no
server-id=ansp1-in-dvc
webserver=yes
webserver-address=127.0.0.1
webserver-allow-from=127.0.0.1,::1
webserver-loglevel=none
webserver-max-bodysize=2
webserver-port=8081
launch=gpgsql



Kind regards
Daniel






Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to