{"id":3315,"date":"2020-01-30T09:46:35","date_gmt":"2020-01-30T08:46:35","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=3315"},"modified":"2020-01-30T12:46:42","modified_gmt":"2020-01-30T11:46:42","slug":"resolucion-inversa-de-dominios-en-bind9","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2020\/01\/30\/resolucion-inversa-de-dominios-en-bind9\/","title":{"rendered":"Resoluci\u00f3n inversa de dominios en bind9"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:436,&quot;href&quot;:&quot;https:\\\/\\\/tools.ietf.org\\\/html\\\/rfc2782&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\\/\\\/datatracker.ietf.org\\\/doc\\\/html\\\/rfc2782&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:437,&quot;href&quot;:&quot;https:\\\/\\\/autoconfig.thunderbird.net\\\/v1.1&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20260306084624\\\/https:\\\/\\\/autoconfig.thunderbird.net\\\/v1.1\\\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-15 12:21:36&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-15 12:21:36&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:438,&quot;href&quot;:&quot;https:\\\/\\\/autoconfig.thunderbird.net\\\/v1.1\\\/gandi.net&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20260214063302\\\/https:\\\/\\\/autoconfig.thunderbird.net\\\/v1.1\\\/gandi.net&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:439,&quot;href&quot;:&quot;https:\\\/\\\/www.digitalocean.com\\\/community\\\/tutorials\\\/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20260415122542\\\/https:\\\/\\\/www.digitalocean.com\\\/community\\\/tutorials\\\/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:440,&quot;href&quot;:&quot;https:\\\/\\\/www.zytrax.com\\\/books\\\/dns\\\/ch6&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\\\/\\\/www.zytrax.com\\\/books\\\/dns\\\/ch6\\\/&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:441,&quot;href&quot;:&quot;https:\\\/\\\/www.zytrax.com\\\/books\\\/dns\\\/ch8\\\/srv.html&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:442,&quot;href&quot;:&quot;https:\\\/\\\/tools.ietf.org\\\/html\\\/bcp17&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:443,&quot;href&quot;:&quot;https:\\\/\\\/developer.mozilla.org\\\/en-US\\\/docs\\\/Mozilla\\\/Thunderbird\\\/Autoconfiguration&quot;,&quot;archived_href&quot;:&quot;https:\\\/\\\/web-wp.archive.org\\\/web\\\/20210624004729\\\/https:\\\/\\\/developer.mozilla.org\\\/en-US\\\/docs\\\/Mozilla\\\/Thunderbird\\\/Autoconfiguration&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-15 12:22:20&quot;,&quot;http_code&quot;:503}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-15 12:22:20&quot;,&quot;http_code&quot;:503},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:444,&quot;href&quot;:&quot;https:\\\/\\\/developer.mozilla.org\\\/en-US\\\/docs\\\/Mozilla\\\/Thunderbird\\\/Autoconfiguration\\\/FileFormat\\\/HowTo&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:445,&quot;href&quot;:&quot;https:\\\/\\\/github.com\\\/k9mail\\\/k-9\\\/issues\\\/865&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>Algo que ten\u00eda pendiente desde hace mucho tiempo y que acabo de completar. A\u00f1ado tambi\u00e9n alguna cosa sobre registros SRV.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>No tengo muchos servidores DNS gestionados directamente por m\u00ed pero los que hay son muy importantes. Uno es en mi lugar de trabajo para el dominio interno <em>empresa.net<\/em> y el otro es para mi experimento de IP din\u00e1micas en <em>balteus.net<\/em>. <\/p>\n\n\n\n<p>Ambos usan el programa Bind (versi\u00f3n 9) con el que estoy bastante familiarizado y que funciona muy correctamente. Tambi\u00e9n es cierto que la configuraci\u00f3n puede ser farragosa, y que siempre tengo que consultar documentaci\u00f3n y foros, pero una vez que los has puesto en marcha son tan eficientes como se espera de un programa de larga trayectoria. <\/p>\n\n\n\n<p>No voy a poner aqu\u00ed todos los detalles t\u00e9cnicos que para eso est\u00e1n las referencias m\u00e1s abajo. Tan s\u00f3lo anotar lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Como mi red interna tiene como m\u00e1scara 24 bits (192.168.100.0\/24) el archivo es db.192.168.100 y las direcciones IP resultantes son m\u00e1s sencillas. <\/li><li>Siguiendo recomendaciones le\u00eddas en Zytrax estoy a\u00f1adiendo registros para los registros CNAME porque por lo visto si no est\u00e1n es posible que fallen en algunas b\u00fasquedas inversas como las efectuadas en comprobaciones de env\u00edo de correo.<\/li><\/ul>\n\n\n\n<p>Algunos ejemplos educativos ser\u00edan la zona directa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>; Servidor ERP con sus alias correspondientes\nerp             IN A            192.168.100.9\ntest            IN CNAME        erp\napp             IN CNAME        erp\nreplica         IN CNAME        erp\n<\/code><\/pre>\n\n\n\n<p>y la zona inversa correspondiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>9               IN PTR          erp.empresa.net.\n9               IN PTR          test.empresa.net.\n9               IN PTR          app.empresa.net.\n9               IN PTR          replica.empresa.net.<\/code><\/pre>\n\n\n\n<p>Y para incluir dicho archivo en la configuraci\u00f3n de <em>bind<\/em> la situamos de la siguiente forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"100.168.192.IN-ADDR.ARPA\" in  {\n        type master;\n        allow-update { key rndc-key; };\n        allow-transfer { 192.168.100.3; 192.168.100.7; };\n        file \"\/etc\/bind\/db.192.168.100\";\n};<\/code><\/pre>\n\n\n\n<p><span style=\"text-decoration: underline;\"><\/span><span style=\"text-decoration: underline;\"><\/span>Adem\u00e1s de esto es necesario tener en cuenta que en los servidores esclavos tambi\u00e9n hay que declarar la zona inversa. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"100.168.192.in-addr.arpa\" {\n        type slave;\n        masters { 192.168.100.1; };\n        file \"\/etc\/bind\/db.192.168.100\";\n        allow-transfer { none; };\n};<\/code><\/pre>\n\n\n\n<p>Y ya se pueden hacer b\u00fasquedas en ellos sin el menor de los problemas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ dig @ns2.empresa.net -x 192.168.100.9\n...\n;; ANSWER SECTION:\n9.100.168.192.IN-ADDR.ARPA. 604800 IN   PTR     erp.empresa.net.\n9.100.168.192.IN-ADDR.ARPA. 604800 IN   PTR     test.empresa.net.\n9.100.168.192.IN-ADDR.ARPA. 604800 IN   PTR     app.empresa.net.\n9.100.168.192.IN-ADDR.ARPA. 604800 IN   PTR     replica.empresa.net.\n...\n$<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Los registros SRV <\/h3>\n\n\n\n<p>Este tipo de registros est\u00e1n definidos en el <a href=\"https:\/\/tools.ietf.org\/html\/rfc2782\">RFC2782<\/a> y su prop\u00f3sito es facilitar b\u00fasquedas de servicios concretos. En el texto se usa mucho como ejemplo el servicio de directorio <em>LDAP<\/em>, pero tambi\u00e9n avisan que es justamente un ejemplo y que es mejor mirar directamente en la documentaci\u00f3n de aquello que se quiere registrar no vayamos a encontrarnos con cambios inesperados. <\/p>\n\n\n\n<p>Tiene m\u00e1s miga de la que parece pero todo se reduce a una definici\u00f3n de registro que proporciona la informaci\u00f3n precisa sobre d\u00f3nde y c\u00f3mo conectarse a un servicio.<\/p>\n\n\n\n<p>El registro SRV tiene la siguiente estructura:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">_Service._Proto.Name TTL Class SRV Priority Weight Port Target <\/pre>\n\n\n\n<p>Lo m\u00e1s destacable es que tanto el nombre del servicio como el del protocolo van precedidos de un gui\u00f3n bajo para no colisionar con nombres reales. No es raro encontrar una m\u00e1quina llamada <em>imap.empresa.net<\/em> por lo que se curan en salud. El protocolo igual y adem\u00e1s no est\u00e1 limitado a <em>tcp<\/em> o <em>udp<\/em>. Es algo que dejan abierto y me parece muy sensato.<\/p>\n\n\n\n<p>La prioridad y el peso forman parte de un mecanismo para seleccionar el servidor adecuado en el caso de que existan varios. Como comentan algunos programas se conforman con uno y otros esperan hallar m\u00e1s y siguen un orden concreto para elegir con el que se quedan. En mi caso con uno voy que me mato pero est\u00e1 bien tenerlo en cuenta para cuando llegue a construir mi servidor de correo secundario. <\/p>\n\n\n\n<p>La informaci\u00f3n final incluye el nombre del servidor (no un alias insisten) y un puerto con el que efectuar la conexi\u00f3n. Si el nombre del servidor apunta al local con el car\u00e1cter punto (<em>.<\/em>) significa que no hay nadie al otro lado. El dominio no dispone de ese servicio. <\/p>\n\n\n\n<p>Lo del puerto de conexi\u00f3n es una forma de independizarse de la obligatoria consulta al archivo <em>\/etc\/services<\/em> y dotar de mayor movilidad a los servicios. A m\u00ed me parece una buena idea y como comentan al final del documento no est\u00e1n a\u00f1adiendo problemas de seguridad nuevos. Si el programa que responde en un puerto tiene agujeros los va a tener igualmente en otro. <\/p>\n\n\n\n<p>Un ejemplo que a\u00fan no he verificado es el que muestro m\u00e1s abajo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>; foobar - use old-slow-box or new-fast-box if either is\n; available, make three quarters of the logins go to\n; new-fast-box.\n_foobar._tcp    SRV 0 1 9 old-slow-box.example.com.\n                SRV 0 3 9 new-fast-box.example.com.<\/code><\/pre>\n\n\n\n<p>De manera que el servicio <em>foobar<\/em> est\u00e1 disponible en dos m\u00e1quinas, una lenta y otra r\u00e1pida, y se pretende con el par\u00e1metro peso que se realicen m\u00e1s conexiones con la r\u00e1pida que con la lenta. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>; NO other services are supported\n      *._tcp          SRV  0 0 0 .\n      *._udp          SRV  0 0 0 .<\/code><\/pre>\n\n\n\n<p>El archivo de zona termina con una declaraci\u00f3n tajante: no hay m\u00e1s servicios de ning\u00fan tipo anunciados en el dominio. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Autoconfiguraci\u00f3n de clientes de correo<\/h2>\n\n\n\n<p>No he podido evitar visto lo anterior alcanzar este punto. Resulta que configurar tu dominio para que anuncie los diferentes servicios est\u00e1 muy bien y puede ser de gran ayuda pero se queda corto en algunos casos. <\/p>\n\n\n\n<p>El del correo electr\u00f3nico es uno de ellos. Para empezar porque existen dos consultas m\u00ednimas que realizar cuando se est\u00e1 a\u00f1adiendo una cuenta al programa: una para saber d\u00f3nde leer el correo (POP3 o IMAP) y otro para saber por d\u00f3nde enviarlo (SMTP). Con los registros SRV tienes dos datos: direcci\u00f3n IP y puerto. Pero para el correo se necesita m\u00e1s. <\/p>\n\n\n\n<p>Un nombre de usuario que no tiene que coincidir con la direcci\u00f3n de correo por mucho que Google y compa\u00f1\u00eda se empe\u00f1en en ello. Si la conexi\u00f3n est\u00e1 cifrada o no y la forma de cifrarla (SSL o TLS pongamos) adem\u00e1s de si las contrase\u00f1as est\u00e1n en texto plano o a su vez han sido cifradas. <\/p>\n\n\n\n<p>Son bastantes par\u00e1metros y combinaciones para los que el DNS no se aplica. No es que no se pueda, es que no tiene sentido embrollarlo m\u00e1s. Organizaciones como Mozilla han creado mecanismos para que el usuario (y el administrador de correo) lo tenga f\u00e1cil y s\u00f3lo necesite  indicar su direcci\u00f3n de correo y su contrase\u00f1a. El resto se consulta al ISP que devuelve la informaci\u00f3n en un documento XML, flexible y completo. Tanto que incluso proporciona informaci\u00f3n como para pedir m\u00e1s datos al usuario. <\/p>\n\n\n\n<p>En las referencias est\u00e1 el proceso explicado con todo detalle. Aqu\u00ed s\u00f3lo voy a anotar lo que me ha parecido m\u00e1s relacionado. <\/p>\n\n\n\n<p>Con la direcci\u00f3n de correo del usuario en la mano Thunderbird efect\u00faa una b\u00fasqueda primero en dos lugares: la base de datos ISPDB que alojan ellos y donde registran la informaci\u00f3n de un enorme n\u00famero de ISP y en el dominio del correo. <\/p>\n\n\n\n<p>El primer lugar, ISPDB, est\u00e1 abierto al todo el mudno en la siguiente direcci\u00f3n <a href=\"https:\/\/autoconfig.thunderbird.net\/v1.1\/\">https:\/\/autoconfig.thunderbird.net\/v1.1\/<\/a> y se organiza con un archivo XML por cada nombre de ISP. Por ejemplo el de gandi.net, donde tengo registrados todos mis dominios, est\u00e1 <a href=\"https:\/\/autoconfig.thunderbird.net\/v1.1\/gandi.net\">aqu\u00ed<\/a>. <\/p>\n\n\n\n<p>El segundo lugar es dependiente del servidor de correo. Primero se intenta localizar en el DNS el nombre <em>autoconfig<\/em> y si se encuentra se prueba una petici\u00f3n del tipo <code>https:\/\/autoconfig.example.com\/mail\/config-v1.1.xml?emailaddress=fred@example.com<\/code> (ojo, conexi\u00f3n cifrada).<\/p>\n\n\n\n<p>Si no da resultado se intenta hacer lo mismo empleando los famosos <em>well-known services<\/em> que tanto juego dan y tan poco se conocen. La petici\u00f3n es entonces del siguiente tipo: <code>http:\/\/example.com\/.well-known\/autoconfig\/mail\/config-v1.1.xml?emailaddress=fred@example.com<\/code><\/p>\n\n\n\n<p>En cualquier de los dos casos se espera recibir un archivo XML que describa todas las formas admitidas de obtenci\u00f3n y env\u00edo de correo para esa cuenta. Incluye aspectos tan chulos como <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Varios servidores para recepci\u00f3n y para env\u00edo de correo con las diferentes opciones de protocolo, cifrado y contrase\u00f1a usada. Muy pr\u00e1ctico para dar m\u00e1s cabida a programas relativamente antiguos. <\/li><li>Empleo de marcas de sustituci\u00f3n de valores como la direcci\u00f3n de correo completa, s\u00f3lo la parte local o s\u00f3lo la parte del dominio (fred@example.com, fred o example.com). <\/li><li>Documentaci\u00f3n de ayuda para el usuario como URL.<\/li><li>Campos para entrada de datos de usuario. No implementado a\u00fan del todo pero muy interesante para construir conexiones m\u00e1s complejas como las que se pueden emplear en el protocolo IMAP (carpetas especiales, subcarpetas y dem\u00e1s).<\/li><\/ul>\n\n\n\n<p>No he buscado a\u00fan alg\u00fan programa que automatice la creaci\u00f3n de estos archivos empleando un directorio LDAP porque ya no me da la vida, pero lo anoto como guinda al pastel de la configuraci\u00f3n de correo en mis dominios. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Referencias<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04\">How to configure bind &#8230; in Digital Ocean<\/a><\/li><li><a href=\"https:\/\/www.zytrax.com\/books\/dns\/ch6\/\">Zytrax: 6. DNS Sample BIND Configurations<\/a><\/li><li><a href=\"https:\/\/www.zytrax.com\/books\/dns\/ch8\/srv.html\">Zytrax: Services records<\/a><\/li><li><a href=\"https:\/\/tools.ietf.org\/html\/bcp17\">Use of DNS Aliases for Network Services <\/a><\/li><li>Thunderbird:<ul><li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Thunderbird\/Autoconfiguration\">Autoconfiguration in Thunderbird<\/a><\/li><li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Thunderbird\/Autoconfiguration\/FileFormat\/HowTo\">Autoconfig: How to create a configuration file<\/a><\/li><\/ul><\/li><li><a href=\"https:\/\/github.com\/k9mail\/k-9\/issues\/865\">K9: Feature Request: Support Mozilla autoconfig              #865<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Algo que ten\u00eda pendiente desde hace mucho tiempo y que acabo de completar. A\u00f1ado tambi\u00e9n alguna cosa sobre registros SRV.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,633,910,319,947,52,946,909,948],"class_list":["post-3315","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-bind9","tag-correo-electronico","tag-dns","tag-k9","tag-mi-lugar-de-trabajo","tag-ptr","tag-thunderbird","tag-well-known"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=3315"}],"version-history":[{"count":9,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3315\/revisions"}],"predecessor-version":[{"id":3326,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3315\/revisions\/3326"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=3315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=3315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=3315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}