Intermitencias en RAP en huerta Pilmaiken #88

Closed
opened 2026-02-07 01:27:44 +00:00 by Numerica · 15 comments
Owner

Esto viene sucediendo hace más de un año, tiene downtimes importantes (uno de los servicios que lo resienten es por ej foro.pilmaiken.abyaya.la)

El server fue relocalizado a otra red y sigue sucediendo.

Mientras está desconectado de la RAP, NO está 'colgado', se puede acceder por tty, la utilización de recursos es normal (salvo por la Swap que esta medio llena)

En este estado alcancé a obser var que en comun.dot la huerta está aislada. No necesariamente esto significa que tinc está caído, aunque no pude verificar esto esta vez.

Luego bajé tinc manualmente y este archivo no se "limpió", por lo que creo que son cosas distinas. Por ende la pregunta es ¿por qué se aisla de los otros nodos?

Tendrá que ver con este otro asunto de la duplicación de MAC (¿no tenemos otro issue para eso?

Para terminar de frakear, mirando logs encontré lo que parece ser ¡un ataque de diccionario de acceso ssh, proveniente desde el proxy!

¿Es esto parte del pentesting? ¿O tenemos actores maliciosos en la red?

Esto viene sucediendo hace más de un año, tiene downtimes importantes (uno de los servicios que lo resienten es por ej foro.pilmaiken.abyaya.la) El server fue relocalizado a otra red y sigue sucediendo. Mientras está desconectado de la RAP, **NO** está 'colgado', se puede acceder por tty, la utilización de recursos es normal (salvo por la Swap que esta medio llena) En este estado alcancé a obser var que en **comun.dot** la huerta está aislada. No necesariamente esto significa que _tinc_ está caído, aunque no pude verificar esto esta vez. Luego bajé tinc manualmente y este archivo no se "limpió", por lo que creo que son cosas distinas. Por ende la pregunta es ¿por qué se aisla de los otros nodos? Tendrá que ver con este otro asunto de la duplicación de MAC (¿no tenemos otro issue para eso? Para terminar de frakear, mirando logs encontré lo que parece ser **¡un ataque de diccionario de acceso ssh, proveniente desde el proxy!** ¿Es esto parte del _pentesting_? ¿O tenemos actores maliciosos en la red?
Author
Owner

Para terminar de frakear, mirando logs encontré lo que parece ser ¡un ataque de diccionario de acceso ssh, proveniente desde el proxy!

Luego me di cuenta que es lo esperable para un puerto SSH expuesto a la Internet

> Para terminar de frakear, mirando logs encontré lo que parece ser **¡un ataque de diccionario de acceso ssh, proveniente desde el proxy!** Luego me di cuenta que es lo esperable para un puerto SSH expuesto a la Internet
Author
Owner

Intento debuggear más y mientras estaba caído:

  • El proxy no llega y muestra 502 Bad Gateway
  • La huerta solo tiene a abyayala en /etc/tinc/comun/hosts,
  • Nuevamente, en el graph de pilmaiken está solo.
  • en service --status-all, tanto tinc como dhcp marcan up +
  • al rato reaparaecen los demás nodos en el graph de pilmaiken y se restablecen solos los servicios

@fauno el asunto de duplicación de MACs ¿tenía que ver con DHCP, no?

Me echás una mano con el gato éste?

Intento debuggear más y mientras estaba caído: - El proxy no llega y muestra 502 Bad Gateway - La huerta solo tiene a _abyayala_ en **/etc/tinc/comun/hosts**, - Nuevamente, en el graph de pilmaiken está solo. - en _service --status-all_, tanto _tinc_ como _dhcp_ marcan up **+** - al rato reaparaecen los demás nodos en el graph de pilmaiken y se restablecen solos los servicios @fauno el asunto de duplicación de MACs ¿tenía que ver con DHCP, no? Me echás una mano con el gato éste?
Author
Owner

en journalctl encontré:

...Terminating
tinc@comun.service: Deactivated succesfully
Stopped..
..Started
tinc starting
/dev/net/tun us a Linux tun/tap device (tap mode)
RTNETLINK answers: Cannot assign requested address
sending commands to dhcpd process
Ready

Al parecer sugiere que puede trartarse de conflicto de IP o similar

El error "RTNETLINK answers: Cannot assign requested address" generalmente ocurre cuando:

  • Se intenta asignar una IP que ya está en uso
  • Se intenta asignar una IP que no es válida para la interfaz
  • Hay un conflicto con otra interfaz
  • El script tinc-up tiene una configuración incorrecta
en journalctl encontré: ``` ...Terminating tinc@comun.service: Deactivated succesfully Stopped.. ..Started tinc starting /dev/net/tun us a Linux tun/tap device (tap mode) RTNETLINK answers: Cannot assign requested address sending commands to dhcpd process Ready ``` Al parecer sugiere que puede trartarse de conflicto de IP o similar > El error "RTNETLINK answers: Cannot assign requested address" generalmente ocurre cuando: > - Se intenta asignar una IP que ya está en uso > - Se intenta asignar una IP que no es válida para la interfaz > - Hay un conflicto con otra interfaz > - El script tinc-up tiene una configuración incorrecta
Author
Owner

Más logs

Metadata socket read error for abyayala (5.161.236.18 port 655): Connection reset by peer

Reiniciar:

  • service tinc restart: no funciona, o funciona a veces...
  • reboot de todo el server: si funciona
Más logs > Metadata socket read error for abyayala (5.161.236.18 port 655): Connection reset by peer Reiniciar: - **service tinc restart**: **no** funciona, o funciona _a veces_... - **reboot** de todo el server: _si_ funciona
Owner

@Numerica mostrame ip address show comun mientras está caído, también ip route. ese error lo he visto en algunos casos cuando el kernel no acepta el subrango de ip que le estás dando (incluyendo los que te dan algunos proveedores de vps)

@Numerica mostrame `ip address show comun` mientras está caído, también `ip route`. ese error lo he visto en algunos casos cuando el kernel no acepta el subrango de ip que le estás dando (incluyendo los que te dan algunos proveedores de vps)
Author
Owner

asi esta, cuando está caído

asi esta, cuando está caído
Author
Owner

en cuanto a ip route, conseguí un log de cuando está up, y una imágen de cuando está down

  • UP:
root@pilmaiken:~# ip route
default via 192.168.100.1 dev enp6s0 proto dhcp src 192.168.100.109 metric 1002 
10.13.12.0/24 dev comun proto dhcp scope link src 10.13.12.105 metric 1707 
169.254.0.0/16 dev veth8127a57 scope link src 169.254.20.114 metric 1010 
169.254.0.0/16 dev veth7246f45 scope link src 169.254.125.247 metric 1060 
169.254.0.0/16 dev vetha106156 scope link src 169.254.46.145 metric 1062 
169.254.0.0/16 dev veth6a20c35 scope link src 169.254.81.150 metric 1064 
169.254.0.0/16 dev vethf649b34 scope link src 169.254.157.169 metric 1074 
169.254.0.0/16 dev veth1ed16c7 scope link src 169.254.47.57 metric 1081 
169.254.0.0/16 dev vetha8f5630 scope link src 169.254.154.104 metric 1097 
169.254.0.0/16 dev veth2a86824 scope link src 169.254.149.201 metric 1105 
169.254.0.0/16 dev veth2f70dfb scope link src 169.254.128.118 metric 1144 
169.254.0.0/16 dev veth566fcb6 scope link src 169.254.223.157 metric 1176 
169.254.0.0/16 dev veth3e781c1 scope link src 169.254.77.212 metric 1178 
169.254.0.0/16 dev veth138f671 scope link src 169.254.4.219 metric 1180 
169.254.0.0/16 dev veth6cd60ec scope link src 169.254.128.102 metric 1182 
169.254.0.0/16 dev vethfa15038 scope link src 169.254.68.131 metric 1186 
169.254.0.0/16 dev vetheb1004a scope link src 169.254.221.99 metric 1188 
169.254.0.0/16 dev veth7d40038 scope link src 169.254.131.209 metric 1192 
169.254.0.0/16 dev veth9d92dda scope link src 169.254.223.241 metric 1194 
169.254.0.0/16 dev veth76ded6a scope link src 169.254.242.88 metric 1196 
169.254.0.0/16 dev vethcb4d2a1 scope link src 169.254.215.87 metric 1198 
169.254.0.0/16 dev vethd8b21d0 scope link src 169.254.143.153 metric 1200 
169.254.0.0/16 dev veth21244e3 scope link src 169.254.173.222 metric 1202 
169.254.0.0/16 dev vethc7f3faa scope link src 169.254.179.218 metric 1206 
169.254.0.0/16 dev vethaad745b scope link src 169.254.216.89 metric 1210 
169.254.0.0/16 dev veth74c47b1 scope link src 169.254.79.51 metric 1212 
169.254.0.0/16 dev veth77d0b78 scope link src 169.254.3.80 metric 1218 
169.254.0.0/16 dev vethc47a2b2 scope link src 169.254.25.77 metric 1220 
169.254.0.0/16 dev vethf4d5f07 scope link src 169.254.214.146 metric 1222 
169.254.0.0/16 dev veth63e4120 scope link src 169.254.142.207 metric 1224 
169.254.0.0/16 dev veth8f105ab scope link src 169.254.176.223 metric 1232 
169.254.0.0/16 dev vethf920ce8 scope link src 169.254.194.23 metric 1236 
169.254.0.0/16 dev veth548325e scope link src 169.254.149.186 metric 1238 
169.254.0.0/16 dev vethbb40b14 scope link src 169.254.214.136 metric 1258 
169.254.0.0/16 dev veth007d064 scope link src 169.254.162.120 metric 1260 
169.254.0.0/16 dev veth80e6869 scope link src 169.254.18.123 metric 1266 
169.254.0.0/16 dev vethb6a6551 scope link src 169.254.207.139 metric 1316 
169.254.0.0/16 dev vethf3490f9 scope link src 169.254.30.198 metric 1354 
169.254.0.0/16 dev veth495d221 scope link src 169.254.63.184 metric 1360 
169.254.0.0/16 dev vethaaeebb9 scope link src 169.254.196.238 metric 1366 
169.254.0.0/16 dev veth5e6debc scope link src 169.254.240.89 metric 1392 
169.254.0.0/16 dev veth0c68297 scope link src 169.254.201.126 metric 1472 
169.254.0.0/16 dev vethee9a0ac scope link src 169.254.210.212 metric 1566 
169.254.0.0/16 dev veth95877d0 scope link src 169.254.136.106 metric 3667 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1 
192.168.100.0/24 dev enp6s0 proto dhcp scope link src 192.168.100.109 metric 1002 
  • DOWN: 😄
en cuanto a **ip route**, conseguí un log de cuando está _up_, y una imágen de cuando está _down_ - **UP:** ``` root@pilmaiken:~# ip route default via 192.168.100.1 dev enp6s0 proto dhcp src 192.168.100.109 metric 1002 10.13.12.0/24 dev comun proto dhcp scope link src 10.13.12.105 metric 1707 169.254.0.0/16 dev veth8127a57 scope link src 169.254.20.114 metric 1010 169.254.0.0/16 dev veth7246f45 scope link src 169.254.125.247 metric 1060 169.254.0.0/16 dev vetha106156 scope link src 169.254.46.145 metric 1062 169.254.0.0/16 dev veth6a20c35 scope link src 169.254.81.150 metric 1064 169.254.0.0/16 dev vethf649b34 scope link src 169.254.157.169 metric 1074 169.254.0.0/16 dev veth1ed16c7 scope link src 169.254.47.57 metric 1081 169.254.0.0/16 dev vetha8f5630 scope link src 169.254.154.104 metric 1097 169.254.0.0/16 dev veth2a86824 scope link src 169.254.149.201 metric 1105 169.254.0.0/16 dev veth2f70dfb scope link src 169.254.128.118 metric 1144 169.254.0.0/16 dev veth566fcb6 scope link src 169.254.223.157 metric 1176 169.254.0.0/16 dev veth3e781c1 scope link src 169.254.77.212 metric 1178 169.254.0.0/16 dev veth138f671 scope link src 169.254.4.219 metric 1180 169.254.0.0/16 dev veth6cd60ec scope link src 169.254.128.102 metric 1182 169.254.0.0/16 dev vethfa15038 scope link src 169.254.68.131 metric 1186 169.254.0.0/16 dev vetheb1004a scope link src 169.254.221.99 metric 1188 169.254.0.0/16 dev veth7d40038 scope link src 169.254.131.209 metric 1192 169.254.0.0/16 dev veth9d92dda scope link src 169.254.223.241 metric 1194 169.254.0.0/16 dev veth76ded6a scope link src 169.254.242.88 metric 1196 169.254.0.0/16 dev vethcb4d2a1 scope link src 169.254.215.87 metric 1198 169.254.0.0/16 dev vethd8b21d0 scope link src 169.254.143.153 metric 1200 169.254.0.0/16 dev veth21244e3 scope link src 169.254.173.222 metric 1202 169.254.0.0/16 dev vethc7f3faa scope link src 169.254.179.218 metric 1206 169.254.0.0/16 dev vethaad745b scope link src 169.254.216.89 metric 1210 169.254.0.0/16 dev veth74c47b1 scope link src 169.254.79.51 metric 1212 169.254.0.0/16 dev veth77d0b78 scope link src 169.254.3.80 metric 1218 169.254.0.0/16 dev vethc47a2b2 scope link src 169.254.25.77 metric 1220 169.254.0.0/16 dev vethf4d5f07 scope link src 169.254.214.146 metric 1222 169.254.0.0/16 dev veth63e4120 scope link src 169.254.142.207 metric 1224 169.254.0.0/16 dev veth8f105ab scope link src 169.254.176.223 metric 1232 169.254.0.0/16 dev vethf920ce8 scope link src 169.254.194.23 metric 1236 169.254.0.0/16 dev veth548325e scope link src 169.254.149.186 metric 1238 169.254.0.0/16 dev vethbb40b14 scope link src 169.254.214.136 metric 1258 169.254.0.0/16 dev veth007d064 scope link src 169.254.162.120 metric 1260 169.254.0.0/16 dev veth80e6869 scope link src 169.254.18.123 metric 1266 169.254.0.0/16 dev vethb6a6551 scope link src 169.254.207.139 metric 1316 169.254.0.0/16 dev vethf3490f9 scope link src 169.254.30.198 metric 1354 169.254.0.0/16 dev veth495d221 scope link src 169.254.63.184 metric 1360 169.254.0.0/16 dev vethaaeebb9 scope link src 169.254.196.238 metric 1366 169.254.0.0/16 dev veth5e6debc scope link src 169.254.240.89 metric 1392 169.254.0.0/16 dev veth0c68297 scope link src 169.254.201.126 metric 1472 169.254.0.0/16 dev vethee9a0ac scope link src 169.254.210.212 metric 1566 169.254.0.0/16 dev veth95877d0 scope link src 169.254.136.106 metric 3667 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1 192.168.100.0/24 dev enp6s0 proto dhcp scope link src 192.168.100.109 metric 1002 ``` - **DOWN:** :smile:
Author
Owner

Bueno como me puse a ver estos ip route, me cayó la teja de que habría perdido la red, y de hecho no respondía ningún ping, no había red del todo.

Tampoco deteniendo tinc, entonces me cae que algo tenía que ver el resolv.conf y noté que al reiniciar DHCPCD se restableció la conexión de red, y este archivo cambió, (en pseudo-diff)

- search comun
+ search .

Con esto al rato se restablece tinc también y se reconecta. Primero podés pingear a 10.13.12.1 y al rato vuelven los nodos.

Corolario

Si mal no recuerdo este taco es el parte de lo que se producía en #15 - si es que no es el problema en sí.
Que el ruteo se hace a través de la VPN, y si esta se cae se cae la net (antes había que editar resolv.conf y poner resolver 8.8.8.8)

Hipótesis

La RAP tiene intermintencias, causando ciclos de reinicio en tinc. Este ciclo podría estar roto porque al caerse tinc no limpia el archivo resolv.conf.

@fauno nos refrescás por favor la relación entre tinc y dhcpcd, (el primero le "envía comandos" según logs)

Workaround

¿Teníamos una secuencia de comandos de reinicio de la RAP para estos casos?

Bueno como me puse a ver estos **ip route**, me cayó la teja de que habría perdido la red, y de hecho no respondía ningún `ping`, no había red del todo. Tampoco deteniendo *tinc*, entonces me cae que algo tenía que ver el **resolv.conf** y noté que __al reiniciar DHCPCD se restableció la conexión de red, y este archivo cambió,__ (en pseudo-diff) ``` - search comun + search . ``` Con esto al rato se restablece tinc también y se reconecta. Primero podés pingear a 10.13.12.1 y al rato vuelven los nodos. ### Corolario Si mal no recuerdo este taco es el parte de lo que se producía en #15 - si es que no es el problema en sí. Que el ruteo se hace a través de la VPN, y si esta se cae se cae la net (antes había que editar resolv.conf y poner `resolver 8.8.8.8`) #### Hipótesis La RAP tiene intermintencias, causando ciclos de reinicio en tinc. Este ciclo podría estar roto porque al caerse **tinc** no limpia el archivo *resolv.conf*. @fauno nos refrescás por favor la relación entre _tinc y dhcpcd_, (el primero le "envía comandos" según logs) #### Workaround ¿Teníamos una secuencia de comandos de reinicio de la RAP para estos casos?
Author
Owner

Logs de dhcpcd y network...

Logs de dhcpcd y network...
Owner

los veth son las interfaces de docker, no diría que son el problema acá.

la ip en el rango 169.254 la asigna avahi o dhcpcd automaticamente cuando no detectan respuesta de un dhcpd, es el rango de zeroconf. eso indica que no hubo respuesta o conexión con el servidor dhcp.

search comun no debería salir en el /etc/resolv.conf porque el dnsmasq esta deshabilitado para eso, pero en cualquier caso tendría que dar resolución de nombres internamente. por ejemplo en sutty.comun que funciona bien, tengo esto, que sería lo mismo:

sutty:/var/lib/docker/volumes# drill @10.13.12.1 google.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 33706
;; flags: qr rd ra ; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; google.com.  IN      A

;; ANSWER SECTION:
google.com.     74      IN      A       142.251.167.101
google.com.     74      IN      A       142.251.167.113
google.com.     74      IN      A       142.251.167.102
google.com.     74      IN      A       142.251.167.100
google.com.     74      IN      A       142.251.167.139
google.com.     74      IN      A       142.251.167.138

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 2 msec
;; SERVER: 10.13.12.1
;; WHEN: Mon Feb  9 16:17:32 2026
;; MSG SIZE  rcvd: 124
sutty:/var/lib/docker/volumes# cat /etc/resolv.conf 
# Generated by dhcpcd from comun.dhcp
# /etc/resolv.conf.head can replace this line
domain comun
nameserver 10.13.12.1
# /etc/resolv.conf.tail can replace this line

la ruta cuando está up está bien, pero cuando está caído sigue ahí, debería no estar cuando tinc esta caido y cuando la interfaz comun no tiene una ip en ese rango. creo que viene por ahi la mano.

los veth son las interfaces de docker, no diría que son el problema acá. la ip en el rango 169.254 la asigna avahi o dhcpcd automaticamente cuando no detectan respuesta de un dhcpd, es el rango de zeroconf. eso indica que no hubo respuesta o conexión con el servidor dhcp. `search comun` no debería salir en el `/etc/resolv.conf` porque el dnsmasq esta deshabilitado para eso, pero en cualquier caso tendría que dar resolución de nombres internamente. por ejemplo en sutty.comun que funciona bien, tengo esto, que sería lo mismo: ``` sutty:/var/lib/docker/volumes# drill @10.13.12.1 google.com ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 33706 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;; google.com. IN A ;; ANSWER SECTION: google.com. 74 IN A 142.251.167.101 google.com. 74 IN A 142.251.167.113 google.com. 74 IN A 142.251.167.102 google.com. 74 IN A 142.251.167.100 google.com. 74 IN A 142.251.167.139 google.com. 74 IN A 142.251.167.138 ;; AUTHORITY SECTION: ;; ADDITIONAL SECTION: ;; Query time: 2 msec ;; SERVER: 10.13.12.1 ;; WHEN: Mon Feb 9 16:17:32 2026 ;; MSG SIZE rcvd: 124 sutty:/var/lib/docker/volumes# cat /etc/resolv.conf # Generated by dhcpcd from comun.dhcp # /etc/resolv.conf.head can replace this line domain comun nameserver 10.13.12.1 # /etc/resolv.conf.tail can replace this line ``` la ruta cuando está up está bien, pero cuando está caído sigue ahí, debería no estar cuando tinc esta caido y cuando la interfaz `comun` no tiene una ip en ese rango. creo que viene por ahi la mano.
Owner

la comunicación debería ser:

  • tinc inicia y se conecta a abyayala (está bien que abyayala sea el unico host en /etc/tinc/comun/hosts)
  • al conectar, levanta la interfaz comun
  • también corre dhcpcd -h NODO comun para pedir una ip al dnsmasq en abyayala
  • al cerrar tinc, se cierra dhcpcd y se da de baja la interfaz comun

aparentemente este ultimo paso no estaría sucediendo. necesito saber:

  • cómo están dando de baja tinc / reiniciandolo?
  • cual es la salida de ps aux | grep dhcpcd con tinc arriba?
  • idem con tinc abajo?
la comunicación debería ser: * tinc inicia y se conecta a `abyayala` (está bien que `abyayala` sea el unico host en `/etc/tinc/comun/hosts`) * al conectar, levanta la interfaz `comun` * también corre `dhcpcd -h NODO comun` para pedir una ip al dnsmasq en `abyayala` * al cerrar tinc, se cierra `dhcpcd` y se da de baja la interfaz `comun` aparentemente este ultimo paso no estaría sucediendo. necesito saber: * cómo están dando de baja tinc / reiniciandolo? * cual es la salida de `ps aux | grep dhcpcd` con tinc arriba? * idem con tinc abajo?
Owner

también dhcpcd --version @Numerica

también `dhcpcd --version` @Numerica
Owner
dhcpcd --version
dhcpcd 10.0.6
Copyright (c) 2006-2023 Roy Marples
Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH PRIVSEP
``` dhcpcd --version dhcpcd 10.0.6 Copyright (c) 2006-2023 Roy Marples Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH PRIVSEP ```
Author
Owner

Bueno parece que lo resolvimos, el problema es que no sabemos cómo XD

Al parecer una de las redes docker de la receta de Mastodon tenía asosciado otro servicio dhcp

Esto conflictuaba con el de la RAP causando las reconexiones y la posterior pérdida de red. Me confirmás esto @fauno ?

No quita que quizás el tema de que no reinicie bien siga siendo cierto.

Lo cierto es que la única acción además de ver logs fue dar de baja al paquidermo....

Bueno parece que lo resolvimos, el problema es que no sabemos cómo XD Al parecer una de las redes docker de la receta de **Mastodon** tenía asosciado **otro servicio dhcp** Esto conflictuaba con el de la RAP causando las reconexiones y la posterior pérdida de red. Me confirmás esto @fauno ? > No quita que quizás el tema de que no **reinicie bien** siga siendo cierto. Lo cierto es que la única acción además de ver logs fue dar de baja al paquidermo....
Owner

@Numerica hicimos dos cambios:

  • dar de baja los contenedores de mastodon que se estaban reiniciando todo el rato
  • configurar dhcpcd para ignorar las interfaces veth y no asignarles ipv4 zeroconf (169.254.0.0/16)

yo creo que ninguna de las dos cosas debería haber afectado, pero quién te dice

@Numerica hicimos dos cambios: * dar de baja los contenedores de mastodon que se estaban reiniciando todo el rato * configurar dhcpcd para ignorar las interfaces veth y no asignarles ipv4 zeroconf (169.254.0.0/16) yo creo que ninguna de las dos cosas debería haber afectado, pero quién te dice
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: escuela-comun/abyayala#88
No description provided.