{"id":4209,"date":"2021-12-01T17:32:27","date_gmt":"2021-12-01T16:32:27","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=4209"},"modified":"2021-12-01T17:32:29","modified_gmt":"2021-12-01T16:32:29","slug":"openwrt-y-sus-problemas-para-actualizar","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2021\/12\/01\/openwrt-y-sus-problemas-para-actualizar\/","title":{"rendered":"openwrt y sus problemas para actualizar &#8230;"},"content":{"rendered":"\n<p>&#8230; que empiezan a asustar un poco porque da la sensaci\u00f3n de que avanzan mucho, como pollo sin cabeza, y de que no sufrir\u00e1n demasiado dejando equipos obsoletos. Y mira no, por ah\u00ed no. Por favor.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Y s\u00ed, puede parece exagerado, pero son dispositivos \u00fatiles que tienen pocos recursos y que parece que las nuevas versiones no les est\u00e1n teniendo tan en cuenta. Y eso me asusta porque no est\u00e1 la cosa para ir comprando equipos nuevos. Y ni hablemos de buscar, que luego no hay quien encuentre nada compatible si no es un mercadillo en la red o casi. <\/p>\n\n\n\n<p>\u00bf Y todo \u00e9sto a qu\u00e9 viene ? Bueno, pues viene a que he solicitado (y conseguido sin trabas) la exclusi\u00f3n del sistema <a href=\"https:\/\/en.wikipedia.org\/wiki\/Carrier-grade_NAT\" target=\"_blank\" rel=\"noreferrer noopener\">CGNAT<\/a> de Pepephone porque necesita IP p\u00fablicas contra las que se pudiera establecer conexiones con mi servidor casero <a href=\"https:\/\/esferas.org\/msqlu\/2021\/05\/06\/matraz-home-punto-de-inicio-de-la-red-casera\/\" data-type=\"post\" data-id=\"4121\">matraz.home<\/a>. Una vez conseguido y dado que el router neutro <a href=\"https:\/\/esferas.org\/msqlu\/2021\/01\/26\/portico-home\/\" data-type=\"post\" data-id=\"4026\">portico.home<\/a> emplea openwrt, pues quer\u00eda conseguir una direcci\u00f3n IP din\u00e1mica asociada a un nombre de red empleando DNS din\u00e1mico. Algo trivial con el software instalado en el router (o incluso en un servidor interno) pero que prefiero en el primero ya que as\u00ed puedo jugar m\u00e1s y mejor con la apertura y redirecci\u00f3n de puertos. Matraz ejerce ahora funciones de copias de seguridad de varias redes y m\u00e1quinas sueltas y en algunos casos prefiero que sea pasivo y que conecten con \u00e9l a tener que llamar \u00e9l a los clientes de copia. <\/p>\n\n\n\n<p>Por otro lado tambi\u00e9n quer\u00eda implementar mi propio servidor <a href=\"https:\/\/es.wikipedia.org\/wiki\/DNS_din%C3%A1mico\" target=\"_blank\" rel=\"noreferrer noopener\">DDNS<\/a> y para ello ten\u00eda que elegir un servicio que estuviese en los dos extremos. Hay varias formas de hacerlo, eso s\u00ed, pero si puedo a\u00f1adir un par de l\u00edneas a un archivo de configuraci\u00f3n y ponerlo en marcha pues m\u00e1s tranquilo me quedo con las cosas. <\/p>\n\n\n\n<p>As\u00ed que siguiendo <a rel=\"noreferrer noopener\" href=\"https:\/\/openwrt.org\/docs\/guide-user\/services\/ddns\/client?s[]=dhis\" target=\"_blank\">este art\u00edculo<\/a> me he puesto a instalar los dos paquetes que necesitaba: <a rel=\"noreferrer noopener\" href=\"https:\/\/openwrt.org\/packages\/pkgdata\/ddns-scripts\" target=\"_blank\">ddns-scripts<\/a> y <a rel=\"noreferrer noopener\" href=\"https:\/\/openwrt.org\/packages\/pkgdata\/luci-app-ddns\" target=\"_blank\">luci-app-ddns<\/a>. Tan sencillo como emplear el interfaz web o la consola directa con <em>opkg install<\/em>, \u00bf no ? Pues no. El sistema empieza a dar errores raros: no encuentra los paquetes, ahora s\u00ed los tiene pero no los puede listar, ahora s\u00ed y luego que no, que no hay memoria suficiente o que hay configuraciones antiguas que chocan con lo que se quiere imponer. <\/p>\n\n\n\n<p>Tendr\u00eda que haber guardado el registro de pantalla porque es dif\u00edcil recordarlo todo pero cuando he alcanzado el famoso l\u00edmite de memoria he decidido parar, leer un poco y consultar en los foros a ver qu\u00e9 pasa y si es culpa m\u00eda o hay un error que desconozco. <\/p>\n\n\n\n<p>Y s\u00ed, como se puede <a href=\"https:\/\/bugs.openwrt.org\/index.php?do=details&amp;task_id=2734\">leer aqu\u00ed<\/a> existen algunas operaciones del programa <em>opkg<\/em> que resultan en errores de falta de memoria, confirmado en varios dispositivos y versiones. Hay un hilo interesante y es el que ha provocado que me asuste un poco con el asunto pero al final dan una soluci\u00f3n para poder hacer una actualizaci\u00f3n de paquetes en masa sin encontrar el l\u00edmite. <\/p>\n\n\n\n<p>Ya de paso lo aprovecho porque es algo que siempre he echado en falta desde el terminal. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sysctl -w vm.overcommit_memory=1\n$ opkg list-upgradable  | cut -d \" \" -f 1 &gt; \/tmp\/upgradable \n$ for p in $(cat \/tmp\/upgradable)\n  do \n      opkg upgrade $p \n  done \n$ rm \/tmp\/upgradable<\/code><\/pre>\n\n\n\n<p>Que viene a resumirse en lo siguiente:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Activar el mecanismo de sobrepaso de memoria <\/li><li>Obtener una lista de paquetes actualizables guardando s\u00f3lo el nombre en un archivo temporal empleando <em>cut<\/em>. <\/li><li>Entrar en un bucle <em>for<\/em> que lea l\u00ednea a l\u00ednea los paquetes y los instale uno a uno.<\/li><li>Borrar el archivo <\/li><\/ol>\n\n\n\n<p>Cualquier cosa que a\u00f1adiese para hacer en masa a la instalaci\u00f3n terminaba as\u00ed. Ni conectando la salida est\u00e1ndar de la tuber\u00eda de <em>opkg list-upgradable <\/em>con el bucle <em>for<\/em> ni nada igual de <em>elegante<\/em>. Al final todo cascaba. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen-1024x646.png\" alt=\"\" class=\"wp-image-4211\" width=\"751\" height=\"473\" srcset=\"https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen-1024x646.png 1024w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen-300x189.png 300w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen-768x484.png 768w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen-600x378.png 600w, https:\/\/esferas.org\/msqlu\/wp-content\/uploads\/sites\/12\/2021\/12\/imagen.png 1037w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/a><figcaption>A\u00fan sin configurar, pero ya funciona y es cuqui.<\/figcaption><\/figure><\/div>\n\n\n\n<p>As\u00ed que con \u00e9sto se ha quedado. Y funciona. Lo que no s\u00e9 es c\u00f3mo voy a poder actualizar el sistema sin quedarme sin \u00e9l durante mucho tiempo por alg\u00fan error de interpretaci\u00f3n. Malinterpretaci\u00f3n que no es otra que creer que se puede instalar en tu sistema de 64Mb o vas a dejarlo inservible. Y mira que es \u00fatil el trasto con un sistema as\u00ed. Limitado, obvio, pero muy flexible y m\u00e1s r\u00e1pido de lo que imaginaba.<\/p>\n\n\n\n<p>En fin, ahora que est\u00e1 actualizado ser\u00e1 cosa de volver a mi DNS din\u00e1mico. A ver qu\u00e9 puedo hacer para utilizar un servicio propio o tener que emplear la actualizaci\u00f3n remota de los servidores Bind.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; que empiezan a asustar un poco porque da la sensaci\u00f3n de que avanzan mucho, como pollo sin cabeza, y de que no sufrir\u00e1n demasiado dejando equipos obsoletos. Y mira no, por ah\u00ed no. Por favor.<\/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":[5],"tags":[18,1120,634,319,60,1122,1121],"class_list":["post-4209","post","type-post","status-publish","format-standard","hentry","category-hardware","tag-administracion-de-sistemas","tag-cgnat","tag-dhis","tag-dns","tag-openwrt","tag-opkg","tag-pepephone"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4209","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=4209"}],"version-history":[{"count":4,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4209\/revisions"}],"predecessor-version":[{"id":4214,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/4209\/revisions\/4214"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=4209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=4209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=4209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}