Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
DNS testing tools
Remoh
Commits
69a7e745
Commit
69a7e745
authored
Jun 15, 2020
by
Alexandre
Browse files
Merge branch 'master' into doh-option-header
parents
5dcb7d06
a69be136
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
README.md
View file @
69a7e745
...
...
@@ -60,10 +60,14 @@ Possible options, besides `--dot`:
*
--key KEYINBASE64: authentifies a DoT resolver with its public
key. Example:
`homer.py --key "62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=" --dot 145.100.185.15 IN NS`
*
--check: Run a set of tests (see below)
*
--pipelining: on DoT, send several requests even before getting the
reply to the first one (may increase performance when you have
several requests)
*
--multistreams: (DoH) Uses HTTP/2 streams (requires the --file option)
*
--file INPUT_FILE: provide an input file with a list of domain name to query
(read the first line only, use --repeat N to read up to N lines of the file)
*
--repeat N: repeat a test N times or read up to N lines of a file
*
--no-display-results: do not output DNS response
### Check
...
...
@@ -129,7 +133,7 @@ When repeating tests, you can add a delay between tests, with `--delay
N`
or
`-d N`
, where N is the (possibly fractional) number of seconds
to wait.
### Mul
i
tstreams
### Mult
i
streams
When using Homer with DoH, the option
`--multistreams`
can be used
to specify that you want to take advantage of the HTTP/2 streams
...
...
@@ -147,7 +151,6 @@ For example :
In order to focus on the time per request, you can suppress the
output by using the option
`--no-display-results`
.
This option only works with
`--multistreams`
.
Two modes are available. By default each response is read,
checked and displayed as soon as it is received.
...
...
@@ -162,16 +165,18 @@ and [CURLINFO_PRETRANSFER_TIME](https://curl.haxx.se/libcurl/c/curl_easy_getinfo
```
% ./homer.py --multistreams --file input_file --repeat 5 --no-display-results --time https://doh.powerdns.org
0
36.16
5 ms
44.773
ms
8.608
ms
1 0.1
42
ms 8.
580
ms 8.4
38
ms
3
0.095
ms
9.223
ms
9.128
ms
2
0.10
3
ms 1
0.282
ms 1
0.179
ms
4 0.10
4
ms 1
0.068
ms
9.964
ms
0
(200) 41.99
5 ms
51.409
ms
9.414
ms
1
(200)
0.1
56
ms 8.
648
ms 8.4
92
ms
2
(200) 0.121
ms
8.494
ms
8.373
ms
3 (200)
0.1
2
0 ms 1
1.185
ms 1
1.065
ms
4
(200)
0.10
3
ms 1
1.922
ms
11.819
ms
Total elapsed time: 0.07 seconds (9.26 ms/request)
OK
Total elapsed time: 0.07 seconds (9.83 ms/request)
```
Finally note that when using multistreams an extra DNS request is sent
to initiate the connection. This request asks for the root NS.
### Monitoring with Nagios, Icinga, or similar software
...
...
homer.py
View file @
69a7e745
This diff is collapsed.
Click to expand it.
tests.yaml
View file @
69a7e745
...
...
@@ -10,6 +10,7 @@ config:
-
"
check:
test
related
to
the
compliance
option
--check"
-
"
forceIPv4:
test
using
the
option
-4"
-
"
forceIPv6:
test
using
the
option
-6"
-
"
pipelining:
test
with
--pipelining
option"
-
"
header:
test
using
--header
option"
-
"
fail:
mark
test
with
a
resolver
currently
failing
our
tests"
-
"
slow:
test
that
need
time
to
run"
...
...
@@ -19,14 +20,14 @@ tests:
args
:
-
'
-h'
retcode
:
0
partstderr
:
'
url-or-servername
domain-name
[DNS
type]'
partstderr
:
'
url-or-servername
[
domain-name
[DNS
type]
]
'
stdout
:
'
'
-
exe
:
'
./homer.py'
args
:
-
'
--zzz'
retcode
:
1
partstderr
:
'
url-or-servername
domain-name
[DNS
type]'
partstderr
:
'
url-or-servername
[
domain-name
[DNS
type]
]
'
stdout
:
'
'
-
exe
:
'
./homer.py'
...
...
@@ -132,7 +133,7 @@ tests:
-
'
check'
-
'
fail'
-
'
slow'
timeout
:
1
0
timeout
:
1
2
args
:
-
'
--check'
-
'
https://doh.42l.fr/dns-query'
...
...
@@ -555,6 +556,52 @@ tests:
retcode
:
1
partstderr
:
'
Key
error'
################################################################################
-
exe
:
'
./homer.py'
name
:
'
[dot][pipelining]
Pipelining
only
with
dot'
markers
:
-
'
pipelining'
args
:
-
'
--pipelining'
-
'
dot.bortzmeyer.fr'
retcode
:
1
partstderr
:
'
Pipelining
is
only
accepted
for
DoT'
stdout
:
'
'
-
exe
:
'
./homer.py'
name
:
'
[dot][pipelining]
Pipelining
only
with
input
file'
markers
:
-
'
pipelining'
args
:
-
'
--dot'
-
'
--pipelining'
-
'
dot.bortzmeyer.fr'
retcode
:
1
partstderr
:
'
Pipelining
requires
an
input
file'
stdout
:
'
'
-
exe
:
'
./homer.py'
name
:
'
[dot][pipelining]
5
requests
from
input
file'
markers
:
-
'
dot'
-
'
pipelining'
args
:
-
'
--dot'
-
'
--pipelining'
-
'
--file'
-
'
input_file'
-
'
--repeat'
-
'
5'
-
'
dot.bortzmeyer.fr'
retcode
:
0
stderr
:
'
'
partstdout
:
"
OK
\n
"
################################################################################
-
exe
:
'
./homer.py'
name
:
'
[dot][check]
Resolver
returning
a
malformed
DNS
message'
markers
:
...
...
@@ -971,7 +1018,19 @@ tests:
stdout
:
'
'
-
exe
:
'
./homer.py'
name
:
'
[doh]
POST'
name
:
'
[doh]
POST
--post'
markers
:
-
'
doh'
args
:
-
'
--post'
-
'
https://doh.bortzmeyer.fr'
-
'
framagit.org'
retcode
:
0
stderr
:
'
'
partstdout
:
'
2a01:4f8:'
-
exe
:
'
./homer.py'
name
:
'
[doh]
POST
--POST'
markers
:
-
'
doh'
args
:
...
...
@@ -983,7 +1042,19 @@ tests:
partstdout
:
'
2a01:4f8:'
-
exe
:
'
./homer.py'
name
:
'
[doh]
HEAD'
name
:
'
[doh]
POST
-P'
markers
:
-
'
doh'
args
:
-
'
-P'
-
'
https://doh.bortzmeyer.fr'
-
'
framagit.org'
retcode
:
0
stderr
:
'
'
partstdout
:
'
2a01:4f8:'
-
exe
:
'
./homer.py'
name
:
'
[doh]
HEAD
--head'
markers
:
-
'
doh'
args
:
...
...
@@ -994,6 +1065,30 @@ tests:
stderr
:
'
'
partstdout
:
'
HEAD'
-
exe
:
'
./homer.py'
name
:
'
[doh]
HEAD
--HEAD'
markers
:
-
'
doh'
args
:
-
'
--HEAD'
-
'
https://doh.bortzmeyer.fr'
-
'
framagit.org'
retcode
:
0
stderr
:
'
'
partstdout
:
'
HEAD'
-
exe
:
'
./homer.py'
name
:
'
[doh]
HEAD
-e'
markers
:
-
'
doh'
args
:
-
'
-e'
-
'
https://doh.bortzmeyer.fr'
-
'
framagit.org'
retcode
:
0
stderr
:
'
'
partstdout
:
'
HEAD'
-
exe
:
'
./homer.py'
name
:
'
[doh]
Multistreams
with
DoT
(error)'
markers
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment