mirror of
http://thekelleys.org.uk/git/dnsmasq.git
synced 2026-11-04 13:48:30 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
198d940af6 | ||
|
|
1d7e0a36e3 | ||
|
|
10068600f8 | ||
|
|
b7639d5815 |
No files matched your search
@@ -28,9 +28,9 @@ version 2.69
|
||||
|
||||
make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
|
||||
|
||||
which bloats the dnsmasq binary to over a megabyte, but
|
||||
saves the size of the shared libraries which are five
|
||||
times that size.
|
||||
which bloats the dnsmasq binary, but saves the size of
|
||||
the shared libraries which are much bigger.
|
||||
|
||||
To enable, DNSSEC, you will need a set of
|
||||
trust-anchors. Now that the TLDs are signed, this can be
|
||||
the keys for the root zone, and for convenience they are
|
||||
@@ -56,6 +56,36 @@ version 2.69
|
||||
downstream validators. Setting --log-queries will show
|
||||
DNSSEC in action.
|
||||
|
||||
If a domain is returned from an upstream nameserver without
|
||||
DNSSEC signature, dnsmasq by default trusts this. This
|
||||
means that for unsigned zone (still the majority) there
|
||||
is effectively no cost for having DNSSEC enabled. Of course
|
||||
this allows an attacker to replace a signed record with a
|
||||
false unsigned record. This is addressed by the
|
||||
--dnssec-check-unsigned flag, which instructs dnsmasq
|
||||
to prove that an unsigned record is legitimate, by finding
|
||||
a secure proof that the zone containing the record is not
|
||||
signed. Doing this has costs (typically one or two extra
|
||||
upstream queries). It also has a nasty failure mode if
|
||||
dnsmasq's upstream nameservers are not DNSSEC capable.
|
||||
Without --dnssec-check-unsigned using such an upstream
|
||||
server will simply result in not queries being validated;
|
||||
with --dnssec-check-unsigned enabled and a
|
||||
DNSSEC-ignorant upstream server, _all_ queries will fail.
|
||||
|
||||
Note that DNSSEC requires that the local time is valid and
|
||||
accurate, if not then DNSSEC validation will fail. NTP
|
||||
should be running. This presents a problem for routers
|
||||
without a battery-backed clock. To set the time needs NTP
|
||||
to do DNS lookups, but lookups will fail until NTP has run.
|
||||
To address this, there's a flag, --dnssec-no-timecheck
|
||||
which disables the time checks (only) in DNSSEC. When dnsmasq
|
||||
is started and the clock is not synced, this flag should
|
||||
be used. As soon as the clock is synced, SIGHUP dnsmasq.
|
||||
The SIGHUP clears the cache of partially-validated data and
|
||||
resets the no-timecheck flag, so that all DNSSEC checks
|
||||
henceforward will be complete.
|
||||
|
||||
The development of DNSSEC in dnsmasq was started by
|
||||
Giovanni Bajo, to whom huge thanks are owed. It has been
|
||||
supported by Comcast, whose techfund grant has allowed for
|
||||
@@ -80,6 +110,13 @@ version 2.69
|
||||
encountered. Thanks to Andy and the rt-n56u project for
|
||||
find this and helping to chase it down.
|
||||
|
||||
Fix wrong RCODE in authoritative DNS replies to PTR queries. The
|
||||
correct answer was included, but the RCODE was set to NXDOMAIN.
|
||||
Thanks to Craig McQueen for spotting this.
|
||||
|
||||
Make statistics available as DNS queries in the .bind TLD as
|
||||
well as logging them.
|
||||
|
||||
|
||||
version 2.68
|
||||
Use random addresses for DHCPv6 temporary address
|
||||
|
||||
+2
-2
@@ -675,7 +675,7 @@ Interface-name and address-literal subnet specifications may be used
|
||||
freely in the same --auth-zone declaration.
|
||||
|
||||
The subnet(s) are also used to define in-addr.arpa and
|
||||
ipv6.arpa domains which are served for reverse-DNS queries. If not
|
||||
ip6.arpa domains which are served for reverse-DNS queries. If not
|
||||
specified, the prefix length defaults to 24 for IPv4 and 64 for IPv6.
|
||||
For IPv4 subnets, the prefix length should be have the value 8, 16 or 24
|
||||
unless you are familiar with RFC 2317 and have arranged the
|
||||
@@ -2033,7 +2033,7 @@ to particular hosts then
|
||||
will do so.
|
||||
|
||||
Dnsmasq acts as an authoritative server for in-addr.arpa and
|
||||
ipv6.arpa domains associated with the subnets given in auth-zone
|
||||
ip6.arpa domains associated with the subnets given in auth-zone
|
||||
declarations, so reverse (address to name) lookups can be simply
|
||||
configured with a suitable NS record, for instance in this example,
|
||||
where we allow 1.2.3.0/24 addresses.
|
||||
|
||||
+2
-2
@@ -706,7 +706,7 @@ l'un des sous-réseaux définis, ou dans un réseau correspondant à une plage D
|
||||
(ce comportement peut-être désactivé par
|
||||
.B constructor-noauth:
|
||||
). Le ou les sous-réseaux sont également utilisé(s) pour définir les domaines
|
||||
in-addr.arpa et ipv6.arpa servant à l'interrogation DNS inverse. Si la longueur
|
||||
in-addr.arpa et ip6.arpa servant à l'interrogation DNS inverse. Si la longueur
|
||||
de préfixe n'est pas spécifiée, elle sera par défaut de 24 pour IPv4 et 64 pour
|
||||
IPv6. Dans le cas d'IPv4, la longueur du masque de réseau devrait-être de 8, 16
|
||||
ou 24, sauf si en cas de mise en place d'une délégation de la zone in-addr.arpa
|
||||
@@ -2186,7 +2186,7 @@ spécifiques, vous pouvez le faire via :
|
||||
.fi
|
||||
|
||||
Dnsmasq joue le rôle de serveur faisant autorité pour les domaines in-addr.arpa
|
||||
et ipv6.arpa associés aux sous-réseaux définis dans la déclaration de zone
|
||||
et ip6.arpa associés aux sous-réseaux définis dans la déclaration de zone
|
||||
auth-zone, ce qui fait que les requêtes DNS inversées (de l'adresse vers
|
||||
le nom) peuvent-simplement être configurées avec un enregistrement NS
|
||||
adéquat. Par exemple, comme nous définissons plus haut les adresses
|
||||
|
||||
+4
-2
@@ -231,8 +231,10 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
|
||||
|
||||
} while ((crecp = cache_find_by_addr(crecp, &addr, now, flag)));
|
||||
|
||||
if (!found)
|
||||
log_query(flag | F_NEG | F_NXDOMAIN | F_REVERSE | F_AUTH, NULL, &addr, NULL);
|
||||
if (found)
|
||||
nxdomain = 0;
|
||||
else
|
||||
log_query(flag | F_NEG | F_NXDOMAIN | F_REVERSE | (auth ? F_AUTH : 0), NULL, &addr, NULL);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1103,7 +1103,7 @@ int extract_addresses(struct dns_header *header, size_t qlen, char *name, time_t
|
||||
ipsets_cur = ipsets;
|
||||
while (*ipsets_cur)
|
||||
{
|
||||
log_query(F_IPSET, name, &addr, *ipsets_cur);
|
||||
log_query((flags & (F_IPV4 | F_IPV6)) | F_IPSET, name, &addr, *ipsets_cur);
|
||||
add_to_ipset(*ipsets_cur++, &addr, flags, 0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user