SlideShare a Scribd company logo
©!Men!&!Mice!!http://menandmice.com!

©!ISC!http://www.isc.org
DNS!wildcards
1
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
!
!
!
Demo!time!
2
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
the!DNS!protocol!allows!the!definition!on!“wildcard”!DNS!
records!to!synthesise!DNS!answers!from!authoritative!
servers!
DNS!wildcards!are!domain!names!(owner!names)!with!the!
leftmost!label!being!a!single!asterisk!“*”!
there!are!no!other!wildcard!characters!in!DNS!other!than!“*”!
DNS!wildcards!have!their!own!rules!that!are!different!
from!other!systems!with!wildcards!(regular!expressions,!
Unix!shell!filename!globbing,!DOS/Windows!filename!
wildcards!...)
3
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
DNS!wildcards!have!been!originally!defined!in!the!
“original”!DNS!RFC!1034,!and!have!been!updated!in!
RFC!2672!and!RFC!4592!
RFC!4592!“The!Role!of!Wildcards!in!the!Domain!Name!
System”!is!a!must!read!to!understand!all!nuances!of!DNS!
wildcards
4
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
DNS!wildcard!examples!(from!different!zones):



*.example.com. 3600 IN A 192.0.2.80

*.firma.example.com. 600 IN MX 10 mail.example.net.

*.example. 86400 IN TXT “a wildcard”!
not!wildcard!records!(just!“normal”!domain!names):



*test.example.de. 400 IN A 192.0.2.11

test.*.example.com. 600 IN TXT “not a wildcard”

**.example.com. 600 IN TXT “alsonot a wildcard”



5
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



6
©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
7
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
8
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host3.example. ? IN MX ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
8
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host3.example. ? IN MX ?
Answer:!host3.example. 3600 IN MX 10 host1.example.
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
9
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host3.example. ? IN A ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
9
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host3.example. ? IN A ?
Answer:!NOERROR / NODATA (Answer = 0)
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
10
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!foo.bar.example. ? IN TXT ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
10
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!foo.bar.example. ? IN TXT ?
Answer:!foo.bar.example. 3600 IN TXT “this is a wildcard”
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
11
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host1.example. ? IN MX ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
11
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host1.example. ? IN MX ?
Answer:!NOERROR / NODATA (Answer = 0)
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
12
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!sub.*.example. ? IN MX ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
12
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!sub.*.example. ? IN MX ?
Answer:!NOERROR / NODATA (Answer = 0)
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
13
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!_telnet._tcp.host1.example. ? IN SRV ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
13
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!_telnet._tcp.host1.example. ? IN SRV ?
Answer:!NOERROR / NODATA (Answer = 0)
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
14
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host1.example. ? IN A ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
14
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host1.example. ? IN A ?
Answer:!host1.example. 3600 IN A 192.0.2.1
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
15
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host.subdel.example. ? IN A ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
15
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!host.subdel.example. ? IN A ?
Answer:!referral to subdel.example
subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
16
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!ghost.*.example. ? IN MX ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
16
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!ghost.*.example. ? IN MX ?
Answer:!NOERROR / NODATA (Answer = 0)
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
17
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!*.example. ? IN TXT ?
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
DNS!wildcards
17
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Query:!*.example. ? IN TXT ?
Answer:!*.example. 3600 TXT "this is a wildcard"

Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



©!Men!&!Mice!!http://menandmice.com!
Empty!non!terminal
“empty non-terminal”:

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



18
©!Men!&!Mice!!http://menandmice.com!
Empty!non!terminal
“empty non-terminal”:

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



18
©!Men!&!Mice!!http://menandmice.com!
Empty!non!terminal
“empty non-terminal”:

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



18
©!Men!&!Mice!!http://menandmice.com!
Empty!non!terminal
“empty non-terminal”:

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



18
©!Men!&!Mice!!http://menandmice.com!
Empty!non!terminal
19
“.”
“example.”
“*”
“sub”
“host1”
“_tcp”
“_ssh”
“host2”
“_tcp”
“_ssh”
“subdel”
Example!zone!with!wildcards!(from!RFC!4592):

$ORIGIN example.

example. 3600 IN SOA <SOA RDATA>

example. 3600 NS ns.example.com.

example. 3600 NS ns.example.net.

*.example. 3600 TXT "this is a wildcard"

*.example. 3600 MX 10 host1.example.

sub.*.example. 3600 TXT "this is not a wildcard"

host1.example. 3600 A 192.0.2.1

_ssh._tcp.host1.example. 3600 SRV <SRV RDATA>

_ssh._tcp.host2.example. 3600 SRV <SRV RDATA>

subdel.example. 3600 NS ns.example.com.

subdel.example. 3600 NS ns.example.net.



empty!non!terminalempty!non!terminalempty!non!terminal!
nodes
©!Men!&!Mice!!http://menandmice.com!
The!closest!encloser!is!the!node!in!the!zone's!tree!of!
existing!domain!names!that!has!the!most!labels!
matching!the!query!name!(consecutively,!counting!from!
the!root!label!downward).!!Each!match!is!a!"label!match"!
and!the!order!of!the!labels!is!the!same.!
The!closest!encloser!is,!by!definition,!an!existing!name!in!
the!zone.!The!closest!encloser!might!be!an!empty!non-
terminal!or!even!be!a!wildcard!domain!name!itself.!!In!
no!circumstances!is!the!closest!encloser!to!be!used!to!
synthesise!records!for!the!current!query.
20
Closest!Encloser!and!the!Source!of!
Synthesis!(1/2)
©!Men!&!Mice!!http://menandmice.com!
Closest!Encloser!and!the!Source!of!
Synthesis!(2/2)
The!source!of!synthesis!is!defined!in!the!context!of!a!query!
process!as!that!wildcard!domain!name!immediately!
descending!from!the!closest!encloser,!provided!that!this!
wildcard!domain!name!exists.!"Immediately!descending"!
means!that!the!source!of!synthesis!has!a!name!of!the!form:



*.<closest encloser>.!
A!source!of!synthesis!does!not!guarantee!having!a!RRSet!to!
use!for!synthesis.!!The!source!of!synthesis!could!be!an!
empty!non-terminal.
21
©!Men!&!Mice!!http://menandmice.com!22
Domain Name in Query closest encloser source of synthesis
host3.example. example. *.example.
_telnet._tcp.host1.example. _tcp.host1.example. no source
_dns._udp._host2.example. host2.example. no source
_telnet._tcp.host3.example. example. *.example.
_chat._udp.host3.example. example. *.example.
foobar.*.example. *.example. no source
Closest!Encloser!and!the!Source!of!
Synthesis
©!Men!&!Mice!!http://menandmice.com!
other!wildcard!rules!(1)
•DNSSEC!does!not!allow!wildcard!NS!records



; this is not legal DNS data inside a DNSSEC

; signed zone



*.example.com. 3600 IN NS ns1.example.org.

*.example.com. 3600 IN NS ns2.example.org.
23
©!Men!&!Mice!!http://menandmice.com!
other!wildcard!rules!(2)
•in!SRV!record,!the!full!name!is!the!owner-name.!
There!cannot!be!a!wildcard!on!the!domain!part!of!an!
SRV!record!(same!for!TLSA,!DKIM!...)



; this is not a wildcard for the SRV record

_ldap._tcp.*.example.com. IN SRV 10 20 389 ldap-srv.example.com.
24
©!Men!&!Mice!!http://menandmice.com!
other!wildcard!rules!(3)
•Wildcard!DS!(DNSSEC!delegation!signer)!records!
are!ignored!
•Wildcard!DNAME!records!are!not!allowed!

(represents!a!threat!to!the!coherency!of!the!DNS)!
•If!a!source!of!synthesis!is!an!empty!non-terminal,!
the!answer!will!be!NOERROR!/!NODATA!(Answer!=!
0)
25
©!Men!&!Mice!!http://menandmice.com!
TL;DR
26
Be!careful!with!DNS!wildcard!records!
©!Men!&!Mice!!http://menandmice.com!
Thank!you!
!
Questions?!!Comments?
27

More Related Content

Similar to Dns wildcards demystified

PowerDNS Webinar
PowerDNS Webinar PowerDNS Webinar
PowerDNS Webinar
Men and Mice
 
RIPE 70 Report Webinar
RIPE 70 Report WebinarRIPE 70 Report Webinar
RIPE 70 Report Webinar
Men and Mice
 
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей СавченкоWebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
GeeksLab Odessa
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
MongoDB
 
Tsig 17022011
Tsig 17022011Tsig 17022011
Tsig 17022011
phosika sithisane
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
Nicolas Bettenburg
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享elevenma
 
ION San Diego - ARIN Support for DNSSEC and RPKI
ION San Diego - ARIN Support for DNSSEC and RPKIION San Diego - ARIN Support for DNSSEC and RPKI
ION San Diego - ARIN Support for DNSSEC and RPKI
Deploy360 Programme (Internet Society)
 
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
Puppet
 

Similar to Dns wildcards demystified (9)

PowerDNS Webinar
PowerDNS Webinar PowerDNS Webinar
PowerDNS Webinar
 
RIPE 70 Report Webinar
RIPE 70 Report WebinarRIPE 70 Report Webinar
RIPE 70 Report Webinar
 
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей СавченкоWebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
 
Tsig 17022011
Tsig 17022011Tsig 17022011
Tsig 17022011
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
 
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享20th.陈晓鸣 百度海量日志分析架构及处理经验分享
20th.陈晓鸣 百度海量日志分析架构及处理经验分享
 
ION San Diego - ARIN Support for DNSSEC and RPKI
ION San Diego - ARIN Support for DNSSEC and RPKIION San Diego - ARIN Support for DNSSEC and RPKI
ION San Diego - ARIN Support for DNSSEC and RPKI
 
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
 

More from Men and Mice

Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Men and Mice
 
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOSPart 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Men and Mice
 
Part 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows NetworksPart 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows Networks
Men and Mice
 
Namespaces for Local Networks
Namespaces for Local NetworksNamespaces for Local Networks
Namespaces for Local Networks
Men and Mice
 
How to send DNS over anything encrypted
How to send DNS over anything encryptedHow to send DNS over anything encrypted
How to send DNS over anything encrypted
Men and Mice
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rolls
Men and Mice
 
The CAA-Record for increased encryption security
The CAA-Record for increased encryption securityThe CAA-Record for increased encryption security
The CAA-Record for increased encryption security
Men and Mice
 
SMTP STS (Strict Transport Security) vs. SMTP with DANE
SMTP STS (Strict Transport Security) vs. SMTP with DANESMTP STS (Strict Transport Security) vs. SMTP with DANE
SMTP STS (Strict Transport Security) vs. SMTP with DANE
Men and Mice
 
DNSSEC signing Tutorial
DNSSEC signing Tutorial DNSSEC signing Tutorial
DNSSEC signing Tutorial
Men and Mice
 
BIND 9 logging best practices
BIND 9 logging best practicesBIND 9 logging best practices
BIND 9 logging best practices
Men and Mice
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing Solutions
Men and Mice
 
Fighting Abuse with DNS
Fighting Abuse with DNSFighting Abuse with DNS
Fighting Abuse with DNS
Men and Mice
 
What is new in BIND 9.11?
What is new in BIND 9.11?What is new in BIND 9.11?
What is new in BIND 9.11?
Men and Mice
 
Yeti DNS - Experimenting at the root
Yeti DNS - Experimenting at the rootYeti DNS - Experimenting at the root
Yeti DNS - Experimenting at the root
Men and Mice
 
Windows Server 2016 Webinar
Windows Server 2016 WebinarWindows Server 2016 Webinar
Windows Server 2016 Webinar
Men and Mice
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISC
Men and Mice
 
DNSTap Webinar
DNSTap WebinarDNSTap Webinar
DNSTap Webinar
Men and Mice
 
RIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinarRIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinar
Men and Mice
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runit
Men and Mice
 
PowerDNS Webinar - Part 2
PowerDNS Webinar - Part 2PowerDNS Webinar - Part 2
PowerDNS Webinar - Part 2
Men and Mice
 

More from Men and Mice (20)

Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
 
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOSPart 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
 
Part 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows NetworksPart 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows Networks
 
Namespaces for Local Networks
Namespaces for Local NetworksNamespaces for Local Networks
Namespaces for Local Networks
 
How to send DNS over anything encrypted
How to send DNS over anything encryptedHow to send DNS over anything encrypted
How to send DNS over anything encrypted
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rolls
 
The CAA-Record for increased encryption security
The CAA-Record for increased encryption securityThe CAA-Record for increased encryption security
The CAA-Record for increased encryption security
 
SMTP STS (Strict Transport Security) vs. SMTP with DANE
SMTP STS (Strict Transport Security) vs. SMTP with DANESMTP STS (Strict Transport Security) vs. SMTP with DANE
SMTP STS (Strict Transport Security) vs. SMTP with DANE
 
DNSSEC signing Tutorial
DNSSEC signing Tutorial DNSSEC signing Tutorial
DNSSEC signing Tutorial
 
BIND 9 logging best practices
BIND 9 logging best practicesBIND 9 logging best practices
BIND 9 logging best practices
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing Solutions
 
Fighting Abuse with DNS
Fighting Abuse with DNSFighting Abuse with DNS
Fighting Abuse with DNS
 
What is new in BIND 9.11?
What is new in BIND 9.11?What is new in BIND 9.11?
What is new in BIND 9.11?
 
Yeti DNS - Experimenting at the root
Yeti DNS - Experimenting at the rootYeti DNS - Experimenting at the root
Yeti DNS - Experimenting at the root
 
Windows Server 2016 Webinar
Windows Server 2016 WebinarWindows Server 2016 Webinar
Windows Server 2016 Webinar
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISC
 
DNSTap Webinar
DNSTap WebinarDNSTap Webinar
DNSTap Webinar
 
RIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinarRIPE 71 and IETF 94 reports webinar
RIPE 71 and IETF 94 reports webinar
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runit
 
PowerDNS Webinar - Part 2
PowerDNS Webinar - Part 2PowerDNS Webinar - Part 2
PowerDNS Webinar - Part 2
 

Recently uploaded

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

Dns wildcards demystified