override ttl=0
Mark Andrews
Mark_Andrews at isc.org
Fri Dec 21 21:51:21 UTC 2007
> Hi everybody,
> I'm getting troubles with a DNS-ALG machine that send ttl=0 for every
> question I send to it.
> I browsed archive but did not find any solution to my problem.
> I just need to override ttl for A record when the ttl=0.
> Here a patch for bind 9.3.3rc2 (redhat 5.0).
> I know, that TTL should not be overrided, but in some case this
> functionality can be helpfull.
Tell us the manufacture of the DNS-ALG so we can all avoid
such a broken product. The DNS requires caching to work.
Any DNS-ALG that don't pass on the TTL is broken.
> The status of this patch is 'works for me'.
>
> Please let me know if there is another implementation
>
> Regard
> Hervé Guehl
>
> Note : dont blame me if i'm not using the right list, just say me where I
> should write
>
>
>
> diff -urN bind-9.3.3rc2.ori/bin/named/server.c bind-9.3.3rc2
> /bin/named/server.c
> --- bind-9.3.3rc2.ori/bin/named/server.c 2006-05-24 06:30:
> 24.000000000 +0200
> +++ bind-9.3.3rc2/bin/named/server.c 2007-12-18 22:01:47.000000000 +0100
> @@ -1245,6 +1245,11 @@
> result = ns_config_get(maps, "max-cache-ttl", &obj);
> INSIST(result == ISC_R_SUCCESS);
> view->maxcachettl = cfg_obj_asuint32(obj);
> +
> + obj = NULL;
> + result = ns_config_get(maps, "override-zero-cache-ttl", &obj);
> + INSIST(result == ISC_R_SUCCESS);
> + view->overridezerocachettl = cfg_obj_asuint32(obj);
>
> obj = NULL;
> result = ns_config_get(maps, "max-ncache-ttl", &obj);
> diff -urN bind-9.3.3rc2.ori/lib/dns/include/dns/view.h bind-9.3.3rc2
> /lib/dns/include/dns/view.h
> --- bind-9.3.3rc2.ori/lib/dns/include/dns/view.h 2004-03-10 03:55:
> 58.000000000 +0100
> +++ bind-9.3.3rc2/lib/dns/include/dns/view.h 2007-12-18 22:02:
> 01.000000000 +0100
> @@ -116,6 +116,7 @@
> isc_boolean_t requestixfr;
> isc_boolean_t provideixfr;
> dns_ttl_t maxcachettl;
> + dns_ttl_t overridezerocachettl;
> dns_ttl_t maxncachettl;
> in_port_t dstport;
> dns_aclenv_t aclenv;
> diff -urN bind-9.3.3rc2.ori/lib/dns/resolver.c bind-9.3.3rc2
> /lib/dns/resolver.c
> --- bind-9.3.3rc2.ori/lib/dns/resolver.c 2006-08-31 05:57:
> 11.000000000 +0200
> +++ bind-9.3.3rc2/lib/dns/resolver.c 2007-12-18 22:02:56.000000000 +0100
> @@ -3537,6 +3537,11 @@
> rdataset->ttl = res->view->maxcachettl;
>
> /*
> + * HGU configure minimum ttl if ttl=0 for A record
> + */
> + if ( (rdataset->ttl == 0) && (rdataset->type ==
> dns_rdatatype_a) )
> + rdataset->ttl = res->view->overridezerocachettl;
> + /*
> * If this rrset is in a secure domain, do DNSSEC validation
> * for it, unless it is glue.
> */
> diff -urN bind-9.3.3rc2.ori/lib/isccfg/namedconf.c bind-9.3.3rc2
> /lib/isccfg/namedconf.c
> --- bind-9.3.3rc2.ori/lib/isccfg/namedconf.c 2006-03-02 01:37:
> 20.000000000 +0100
> +++ bind-9.3.3rc2/lib/isccfg/namedconf.c 2007-12-19 15:11:
> 49.000000000 +0100
> @@ -715,6 +715,7 @@
> { "lame-ttl", &cfg_type_uint32, 0 },
> { "max-ncache-ttl", &cfg_type_uint32, 0 },
> { "max-cache-ttl", &cfg_type_uint32, 0 },
> + { "override-zero-cache-ttl", &cfg_type_uint32, 0 },
> { "transfer-format", &cfg_type_transferformat, 0 },
> { "max-cache-size", &cfg_type_sizenodefault, 0 },
> { "check-names", &cfg_type_checknames, CFG_CLAUSEFLAG_MULTI },
>
>
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
More information about the bind-users
mailing list