Network Working Group                                             C.Kalt
Request For Comments: 2811                                    Abril 2000
Actualizaciones: 1459                    Traducción: Carlos García Argos
Categoría: Información

          Charla Basada en Internet: Mantenimiento de canales

Estado de este memorándum

   Este memo da información para la comunidad Internet. No especifica un
   estándar de Internet. La distribución de este memorándum es
   ilimitada.

Aviso de Copyright

   Copyright (C) The Internet Society 2000. Todos los derechos
   reservados.

Resumen

   Una de las características más importantes del IRC es que permite
   agrupar a varios usuarios en foros, llamados canales, proporcionando
   una forma de comunicación simultánea entre varios usuarios.

   Inicialmente existía un sólo tipo de canales, pero con los años, han
   aparecido nuevos tipos, bien como solución a una necesidad o para
   experimentación.

   Este documento especifica cómo los servidores manejan los canales,
   sus características y propiedades.

Índice

   1. Introducción .................................................. 3
   2. Características de los canales ................................ 3
     2.1. Espacio de Nombres ........................................ 3
     2.2. Enfoque de los canales .................................... 4
     2.3. Propiedades de canal ...................................... 5
     2.4. Miembros de canal privilegiados ........................... 5
       2.4.1. Operadores de canal ................................... 5
       2.4.2. Creador de canal ...................................... 5
   3. Tiempo de vida de un canal .................................... 6
     3.1. Canales estándar .......................................... 6
     3.2. Canales seguros ........................................... 7
   4. Modos de canales .............................................. 8
     4.1. Estatus de miembros ....................................... 8
       4.1.1. Estatus de "creador de canal" ......................... 9
       4.1.2. Estatus de operador de canal .......................... 9



Kalt                           Información                      [Pág. 1]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


       4.1.3. Privilegio de voz ..................................... 9
     4.2. Modos de canal ............................................ 9
       4.2.1. Modo anónimo .......................................... 9
       4.2.2. Modo de sólo invitados ................................10
       4.2.3. Modo de canal moderado ................................10
       4.2.4. Modo de no mensajes exteriores ........................10
       4.2.5. Modo de canal callado .................................10
       4.2.6. Canales privados y secretos ...........................11
       4.2.7. Modo de reop de servidor ..............................11
       4.2.8. Tópico ................................................12
       4.2.9. Límite de usuarios ....................................12
       4.2.10. Clave de canal .......................................12
     4.3. Control de acceso al canal ................................12
       4.3.1. Prohibición de entrada al canal y excepciones .........13
       4.3.2. Invitación de canal ...................................13
   5. Implementaciones actuales .....................................13
     5.1. Seguimiento de canales recientes ..........................14
     5.2. Canales seguros ...........................................14
       5.2.1. Identificador de canal ................................14
       5.2.2. Retardo de canal ......................................15
       5.2.3. Ventana de abusos .....................................15
       5.2.4. Preservando la salud del espacio de nombres ...........16
       5.2.5. Mecanismo de reop .....................................16
   6. Problemas actuales ............................................17
     6.1. Etiquetas .................................................17
       6.1.1. Retardo de canal ......................................18
       6.1.2. Canales seguros .......................................18
     6.2. Retardos de propagación de los modos ......................18
     6.3. Colisiones y modos de canales .............................18
     6.4. Consumo de recursos .......................................19
   7. Consideraciones sobre seguridad ...............................20
     7.1. Control de acceso .........................................20
     7.2. Privacidad de los canales .................................20
     7.3. Anonimato .................................................20
   8. Soporte y disponibilidad actual ...............................21
   9. Reconocimientos ...............................................21
   10. Referencias ..................................................21
   11. Dirección del autor ..........................................22
   12. Dirección del traductor ......................................22








Kalt                           Información                      [Pág. 2]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


1. Introducción

   Este documento describe con detalle cómo los servidores de IRC
   mantienen los canales y resultará muy util a aquellas personas que
   tratan de implementar un servidor de IRC.

   Aunque los conceptos que se definen en este documento son una parte
   importante del IRC, no son esenciales para implementar clientes. La
   tendencia parece ser la implementación de clientes más complejos e
   "inteligentes" que aprovechan el funcionamiento interno de los
   canales, para dar una interfaz más amigable, pero clientes más sim­
   ples pueden implementarse sin leer este documento.

   Muchos de los conceptos que aquí se presentan se diseñaron teniendo
   en cuenta la arquitectura del IRC [ARQUITECTURA-IRC] y tienen sentido
   mayoritariamente dentro de este contexto. Sin embargo, muchos otros
   conceptos pueden aplicarse a otras arquitecturas para proporcionar
   foros en un sistema de conferencias.

   Por último, es de resaltar que los usuarios del IRC pueden encontrar
   algunas de las secciones de este documento interesantes, sobre todo
   las secciones 2 (Características de los canales) y 4 (Modos de
   canales).



2. Características de los canales

   Un canal es un grupo, que se designa con un nombre, de uno o más
   usuarios que recibirán todos los mensajes dirigidos a ese canal. Un
   canal se caracteriza por su nombre, sus propiedades y sus miembros.


2.1. Espacio de Nombres

   Los nombres de canales son cadenas de caracteres (que comienzan con
   '&', '#', '+' o '!') de longitud máxima 50 caracteres. Los nombres de
   canales no son sensibles a las mayúsculas.

   Aparte del requerimiento que el primer carácter sea '&', '#', '+' o







Kalt                           Información                      [Pág. 3]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   '!' (llamado "prefijo del canal"), la única restricción en un nombre
   de canal es que no contenga espacios en blanco (' '), un control G
   ('^G' o ASCII 7), una coma (',' que el protocolo usa como separador
   de ítemes). Además, los dos puntos (':') se usan como delimitador
   para la máscara del canal. La sintaxis exacta para el nombre de
   canales se define en "Protocolo de Servidor de IRC" [SERVIDOR-IRC].

   El uso de prefijos diferentes genera cuatro espacios de nombres dis­
   tintos para los nombres de canales. Esto es importante por las lim­
   itaciones del protocolo en cuanto a nombres de canales. Ver la
   sección 6.1 (Etiquetas) para más detalles sobre estas limitaciones.


2.2. Enfoque de los canales

   Una entidad de canal la conocen uno o más servidores en la red de
   IRC. Un usuario sólo puede ser miembro de un canal que conozca el
   servidor de la red al que está directamente conectado. La lista de
   servidores que conocen la existencia de un canal en particular DEBE
   ser una parte contigua de la red de IRC, para que los mensajes
   dirigidos al canal se envíen a todos sus miembros.

   Los canales con el carácter '&' como prefijo son locales al servidor
   donde se crean.

   Los otros canales son conocidos por uno o más servidores conectados a
   la red, dependiendo de la máscara de canal:

     Si no hay máscara de canal, es conocido por todos los servidores de
     la red.

     Si hay máscara de canal, el canal sólo es conocido por los servi­
     dores que tienen un usuario local en el canal y a sus vecinos si la
     máscara coincide con los servidores local y vecino. Dado que los
     demás servidores no tienen conocimiento del canal, el área formada
     por los servidores cuyo nombre coincida con la máscara debe ser
     contigua para que todos los servidores puedan conocer el canal. Las
     máscaras de canal se usan más adecuadamente en conjunción con
     enmascaramiento de host del servidor [SERVIDOR-IRC].








Kalt                           Información                      [Pág. 4]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


2.3. Propiedades de canal

   Cada canal tiene sus propiedades, definidas por los modos de canal.
   Los modos del canal pueden ser modificados por los usuarios del
   canal. Esto significa que todos los modos del canal están desactiva­
   dos, con la salvedad del modo 't' que está activado.


2.4. Miembros de canal privilegiados

   Para que los miembros del canal puedan tener cierto control sobre el
   canal y un poco de cordura, hay algunos miembros de canal con privi­
   legios. Sólo estos miembros pueden efectuar las siguientes acciones
   en el canal:

        INVITE  - Invitar a un cliente a un canal sólo para invitados
        (modo +i)
        KICK    - Expulsar a un cliente del canal
        MODE    - Cambiar modos de canal y privilegios de los miembros
        PRIVMSG - Enviar mensajes al canal (modos +n, +m, +v)
        TOPIC   - Cambiar el tópico en un canal con el modo +t activo


2.4.1. Operadores de canal

   Los operadores de canal (también conocidos como "chop" o "chanop", en
   inglés y "op" en español, N. del T.) de un canal dado, se consideran
   como 'poseedores' de ese canal. Esta posesión se comparte entre los
   operadores del canal.

   Los operadores de canal se identifican por el símbolo '@' al lado de
   su nick siempre que se le asocie con el canal (por ejemplo, respues­
   tas a los comandos NAMES, WHO y WHOIS).

   Dado que los canales con el prefijo '+' no soportan los modos de
   canal, ningún miembro puede poseer el estatus de operador.


2.4.2. Creador de canal








Kalt                           Información                      [Pág. 5]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   Un usuario que crea un canal con el carácter '!' como prefijo se
   identifica como el 'creador del canal'. En la creación de dicho
   canal, a este usuario también se le da el estatus de operador.

   Como reconocimiento a este estatus, los creadores de canal pueden
   cambiar algunos modos de canal que los operadores de canal no pueden.

   Un creador de canal puede distinguirse de un operador de canal ejecu­
   tando el comando MODE apropiado. Vea el "Protocolo de Cliente de IRC"
   [CLIENTE-IRC] para más información al respecto.



3. Tiempo de vida de un canal

   En lo referente al tiempo de vida de un canal, hay dos grupos de
   canales típicos: los canales estándar cuyo prefijo es '#', '&' o '+'
   y los "canales seguros" cuyo prefijo es '!'.


3.1. Canales estándar

   Estos canales se crean implícitamente al entrar el primer usuario en
   él y deja de existir cuando el último usuario lo abandona. Mientras
   el canal exista, cualquier cliente puede referirse al canal usando su
   nombre.

   El usuario creador de un canal automáticamente obtiene el estatus de
   operador de canal, con la excepción de los canales cuyo prefijo es
   '+', ver sección 4 (Modos de canales). Ver la sección 2.4.1 (Oper­
   adores de canal) para más detalles sobre el tema.

   Para evitar que se creen canales duplicados (normalmente cuando la
   red de IRC se separa debido a la desconexión entre dos servidores),
   los nombres de canal NO DEBERÍAN poder ser usados por un usuario si
   un operador de canal (ver sección 2.4.1, Operadores de Canal) ha
   dejado el canal debido a una separación de la red. Si esto ocurre, la
   red está inaccesible temporalmente. El tiempo que un canal permanece
   inaccesible debe ajustarse en base a la red de IRC. Es importante
   advertir que esto evita que un usuario local cree un canal del mismo







Kalt                           Información                      [Pág. 6]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   nombre, pero no que un usuario remoto recree el canal. Esto último
   ocurre generalmente cuando la red vuelve a unirse. Obviamente, este
   mecanismo sólo tiene sentido con canales cuyo nombre empieza con '#',
   pero PUEDE usarse para canales que empiezan con '+'. Este mecanismo
   se conoce comúnmente como "Retardo de canal".


3.2. Canales seguros

   Al contrario que el resto de los canales, los "canales seguros" no se
   crean implícitamente. Un usuario que desee crear un canal de este
   tipo, DEBE hacer una petición de su creación enviando al servidor un
   comando JOIN especial en el cual el identificador del canal (entonces
   desconocido) se reemplaza por el carácter '!'. El proceso de creación
   de este tipo de canales está estrictamente controlado. El usuario
   sólo escoje parte del nombre del canal (que se denomina el "nombre
   abreviado" del canal), el servidor automáticamente antepone al nombre
   dado por el usuario un identificador que consta de 5 caracteres. El
   nombre de canal que resulta de la combinación de los dos elementos es
   único haciendo que el canal esté a salvo de abusos basados en separa­
   ciones de la red.

   El usuario que crea un canal de este tipo automáticamente es "creador
   de canal". Ver la sección 2.4.2 (Creador de canal) para más detalles.

   Un servidor NO DEBE permitir la creación de un canal nuevo si ya
   existe un canal con el mismo nombre abreviado o si existía reciente­
   mente Y alguno de sus miembros dejó el canal a causa de una sepa­
   ración de la red.

   Al contrario que el mecanismo descrito en la sección 5.2.2 (Retardo
   de canal), en este caso, el canal no se vuelve inaccesible: estos
   canales pueden existir después que el último usuario deje el canal.
   Sólo el usuario que creó el canal es "creador de canal", los usuarios
   que entran a un canal vacío existente no son "creadores de canal" ni
   "operadores de canal" automáticamente.

   Para asegurar la unicidad de los nombres de canal, el identificador
   de canal creado por el servidor DEBE seguir reglas específicas. Para
   más detalles, ver la sección 5.2.1 (Identificador de canal).







Kalt                           Información                      [Pág. 7]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


4. Modos de canales

   Los modos disponibles para los canales son los siguientes:

        O - dar estatus de "creador de canal"
        o - dar/quitar privilegio de operador de canal
        v - dar/quitar privilegio de voz

        a - cambiar el estado de canal anónimo
        i - cambiar el modo de sólo invitados
        m - cambiar el modo de canal moderado
        n - cambiar el modo de no recibir mensajes desde clientes fuera
        del canal
        q - cambiar el modo de canal callado
        p - cambiar el modo de canal privado
        s - cambiar el modo de canal secreto
        r - cambiar el modo de reop del canal
        t - cambiar el modo que permite cambiar el tópico sólo a los
        operadores de canal

        k - poner/quitar la clave del canal
        l - poner/quitar el límite de usuarios del canal

        b - poner/quitar una máscara de ban para mantener usuarios fuera
        del canal
        e - poner/quitar una máscara de excepción para reemplazar una
        máscara de ban
        I - poner/quitar una máscara de invitación para reemplazar el
        modo de sólo invitados automáticamente

   A menos que se especifique lo contrario, todos estos modos pueden ser
   cambiados por los "operadores de canal" por medio del comando MODE
   descrito en "Protocolo de Cliente IRC" [CLIENTE-IRC].


4.1. Estatus de miembros

   Los modos en esta categoría pueden tomar el apodo de un miembro de
   canal como argumento y modificar los privilegios de ese usuario.








Kalt                           Información                      [Pág. 8]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


4.1.1. Estatus de "creador de canal"

   El modo 'O' se usa únicamente con "canales seguros" y NO DEBE ser
   modificado por los usuarios. Los servidores lo usan para dar al
   usuario que creó el canal estatus de "creador del canal".


4.1.2. Estatus de operador de canal

   El modo 'o' se usa para modificar el estatus de operador de un miem­
   bro de canal.


4.1.3. Privilegio de voz

   El modo 'v' se usa para dar y quitar privilegio de voz sobre un miem­
   bro del canal. Los usuarios con este privilegio pueden hablar en un
   canal moderado (ver sección 4.2.3, Modo de canal moderado).


4.2. Modos de canal

   Los modos que se definen aquí se usan para definir propiedades que
   afectan la forma de operar de los canales.


4.2.1. Modo anónimo

   El modo 'a' define un canal anónimo. Esto significa que cuando un
   usuario envía un mensaje al canal, al enviarlo el servidor a los
   demás usuarios, el mensaje DEBE enmascararse. Para enmascarar el men­
   saje, se cambia su origen a "anonymous!anonymous@anonymous"
   ("anónimo!anónimo@anónimo"). Por esta razón, los servidores DEBEN
   prohibir el uso del nick "anonymous" ("anónimo"). Además, los servi­
   dores NO DEBEN enviar mensajes de QUIT de los usuarios que abandonan
   estos canales a los demás miembros, sino generar un mensaje de PART
   en su lugar.

   En los canales con el prefijo '&', este modo PUEDE cambiarlo uno de
   los operadores de canal, pero en los canales con el prefijo '!', sólo







Kalt                           Información                      [Pág. 9]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   puede activarla (y NO DEBERÁ desactivarse) el "creador del canal".
   Este modo NO DEBE estar disponible para otro tipo de canales.

   Las respuestas a WHOIS, WHO y NAMES NO DEBEN revelar la presencia de
   otros usuarios en canales en los que el modo anónimo está activado.


4.2.2. Modo de sólo invitados

   Cuando el modo 'i' está activado en un canal, sólo se admiten nuevos
   miembros si su máscara cumple la Lista de Invitados (ver sección
   4.3.2) o han sido invitados por un operador de canal. Este modo
   también restringe el uso del comando INVITE (ver "Protocolo de
   Cliente IRC" [CLIENTE-IRC]) a los operadores de canal.


4.2.3. Modo de canal moderado

   El modo de canal 'm' se usa para controlar quién puede hablar en un
   canal. Cuando se activa, sólo los operadores de canal y los miembros
   que tienen el privilegio de voz pueden enviar mensajes al canal.

     Este modo sólo afecta a los usuarios.


4.2.4. Modo de no mensajes exteriores

   Cuando el modo 'n' está activado, sólo los miembros del canal PUEDEN
   enviar mensajes al canal.

     Este modo sólo afecta a los usuarios.


4.2.5. Modo de canal callado

   El modo 'q' sólo es para uso de los servidores. Cuando está activado,
   restringe el tipo de datos que se envía a los usuarios sobre las
   operaciones del canal: no se envían mensajes de otros usuarios
   entrando al canal, saliendo y cambios de nick. Desde el punto de
   vista de un usuario, el canal sólo tiene un miembro.







Kalt                           Información                     [Pág. 10]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   Esto se usa normalmente para crear canales locales especiales a los
   que el servidor envía noticias relacionadas con sus operaciones. Esto
   se usó como una forma más eficiente y flexible de reemplazar el modo
   's' definida en el RFC 1459 [IRC].


4.2.6. Canales privados y secretos

   El modo de canal 'p' se usa para marcar un canal como "privado" y el
   modo 's' para marcarlo como "secreto". Las dos propiedades son simi­
   lares y ocultan la existencia del canal a los demás usuarios.

   Esto implica que no hay forma de obtener el nombre del canal desde el
   servidor si no se es miembro de él. En otras palabras, estos canales
   DEBEN omitirse de las respuestas a los comandos como WHOIS.

   Cuando un canal es "secreto", además de la restricción anterior, el
   servidor actuará como si el canal no existiese para peticiones como
   los comandos TOPIC, LIST y NAMES. Advierta que hay una excepción a
   esta regla: los servidores responderán correctamente al comando MODE.
   Por último, los canales secretos no se cuentan en la respuesta al
   comando LUSERS (ver "Protocolo de Cliente IRC" [CLIENTE-IRC]) cuando
   se especifica el parámetro <máscara>.

   Los modos 'p' y 's' NO DEBEN activarse a la vez. Si un mensaje MODE
   desde un servidor activa el modo 'p' y el modo 's' está activado pre­
   viamente, el cambio se ignora de forma silenciosa. Esto sólo debería
   ocurrir durante una fase de recuperación de separación de red (men­
   cionado en el documento "Protocolo de Servidor de IRC" [SERVIDOR-
   IRC]).


4.2.7. Modo de reop de servidor

   El modo de canal 'r' sólo está disponible para canales cuyo nombre
   empieza por '!' y sólo PUEDE cambiarlo el "creador del canal".

   Este modo se usa para evitar que el canal no tenga operadores durante
   mucho tiempo. Cuando está activo, en un canal que haya perdido todos
   sus operadores de canal por más tiempo que el periodo de "retardo de







Kalt                           Información                     [Pág. 11]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   reop" activa un mecanismo en los servidores para reopear (coloquial:
   volver a dar privilegio de operador de canal) alguno o a todos los
   miembros del canal. Este mecanismo se describe en más detalle en la
   sección 5.2.4 (Mecanismo de reop de canal).


4.2.8. Tópico

   El modo 't' se usa para restringir el uso del comando TOPIC a los
   operadores del canal.


4.2.9. Límite de usuarios

   Se puede poner un límite de usuarios en un canal usando el modo de
   canal 'l'. Cuando se alcance este límite, los servidores DEBEN pro­
   hibir que sus usuarios locales entren al canal.

   El valor del límite DEBE hacerse disponible a los miembros del canal
   sólo en la respuesta enviada por el servidor al comando MODE.


4.2.10. Clave de canal

   Cuando se pone una clave al canal (usando el modo 'k'), los servi­
   dores DEBEN rechazar las peticiones de sus usuarios locales de entrar
   al canal a menos que proporcionen la clave.

   La clave sólo DEBE ser visible por los miembros del canal en la
   respuesta enviada por el servidor al comando MODE.



4.3. Control de acceso al canal

   La última categoría de modos se usa para controlar los accesos al
   canal, y tienen como argumento una máscara.

   Para reducir el tamaño de la base de datos global para los modos de
   control de acceso de los canales, los servidores PUEDEN poner un tope







Kalt                           Información                     [Pág. 12]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   al número de estos modos para un canal en particular. Si se impone
   este tipo de restricción, sólo DEBE afectar a las peticiones de los
   usuarios. El límite DEBERÍA ser homogéneo en base a la red de IRC.


4.3.1. Prohibición de entrada al canal y excepciones

   Cuando un usuario pide entrar a un canal, su servidor local chequea
   la dirección del usuario y comprueba si cumple alguna de las máscaras
   de prohibición del canal. Si es así, se rechaza la petición a menos
   que la dirección también cumpla alguna de las máscaras de excepción
   del canal.

   Los servidores NO DEBEN permitir que un miembro de canal baneado (al
   que se le ha prohibido la entrada, de ahora en adelante, "baneado",
   "banear" y "ban") hable en el canal a menos que sea un operador de
   canal o tenga privilegio de voz. (Ver sección 4.1.3: "Privilegio de
   Voz").

   Un usuario baneado de un canal que reciba una invitación de un oper­
   ador de canal puede entrar al canal.


4.3.2. Invitación de canal

   Para los canales que tengan el modo de sólo invitados activado (ver
   sección 4.2.2, "Modo de sólo invitados"), los usuarios cuya dirección
   coincida con la máscara de invitación del canal pueden entrar sin
   invitación.



5. Implementaciones actuales

   La única implementación en este momento de estas reglas como parte
   del protocolo IRC es el servidor de IRC, versión 2.10.

   El resto de esta sección trata de los apartados que son de mayor
   importancia al implementar un servidor pero algunas partes pueden ser
   también interesantes para los programadores de clientes.







Kalt                           Información                     [Pág. 13]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


5.1. Seguimiento de canales recientes

   Este mecanismo se conoce normalmente como "Retardo de Canal" y gen­
   eralmente sólo afecta a canales cuyo nombre comienza con '#' (Ver
   sección 3.1, "Canales Estándar").

   Cuando hay una separación de la red, los servidores DEBERÍAN hacer un
   seguimiento de los canales que han perdido un operador de canal como
   conscuencia de la separación. Estos canales están entonces en un
   estado especial que dura un periodo de tiempo concreto. En este
   estado, los canales no pueden dejar de existir. Si todos los miembros
   del canal lo abandonan, el canal se hace inaccesible: los clientes
   locales al servidor no pueden entrar al canal mientras permanezca
   vacío.

   Una vez que un canal se hace inaccesible, volverá a ser accesible
   bien porque ha entrado un usuario remoto (muy probablemente porque la
   red se ha vuelto a unir) o porque el periodo del retardo de canal ha
   caducado (en cuyo caso el canal deja de existir y puede volver a
   crearse).

   El tiempo que debería retrasarse la desaparición del canal DEBERÍA
   calcularse considerando muchos factores entre los que se encuentra el
   tamaño (en términos de usuarios) de la red de IRC y la duración
   habitual de las separaciones. DEBERÍA ser uniforme en todos los
   servidores de la red de IRC.


5.2. Canales seguros

   Este documento introduce la noción de "canales seguros". Estos
   canales tienen un nombre precedido por el carácter '!' y se hace un
   gran esfuerzo por evitar las colisiones en este espacio de nombres.
   Las colisiones no son imposibles, sin embargo, son muy improbables.


5.2.1. Identificador de canal

   El identificador del canal es una función del tiempo. La hora actual
   (como se define bajo UNIX por el número de segundos transcurridos







Kalt                           Información                     [Pág. 14]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   desde el 1 de Enero de 1970 a las 00:00:00 GMT) se convierte a una
   cadena de 5 caracteres usando la siguiente base: "ABCDEFGHI­
   JKLMNOPQRSTUVWXYZ1234567890" (cada carácter tiene un valor decimal
   comenzando desde 0 para 'A' hasta 35 para  '0').

   Por tanto, el identificador de canal tiene una periodicidad de 36^5
   segundos (unos 700 días).


5.2.2. Retardo de canal

   Estos canales DEBEN someterse al mecanismo del "retardo de canal"
   descrito en la sección 5.1. Sin embargo, este mecanismo se modifica
   ligeramente para adaptarse mejor.

   Los servidores DEBEN mantener un seguimiento de los canales que pier­
   den miembros como resultado de una separación de la red, ya sean
   operadores de canal o no.

   Sin embargo, estos canales NO se hacen inaccesibles nunca, siempre es
   posible entrar a ellos incluso cuando están vacíos.


5.2.3. Ventana de abusos

   Debido a que la periodicidad es muy alta, puede haber ataques en un
   (nombre de) canal específico, una vez cada mucho tiempo. Sin embargo,
   con suerte y paciencia, es posible que un usuario genere una colisión
   en los canales. Para evitarlo, los servidores DEBEN "mirar al futuro"
   y mantener una lista de los nombres de canales cuyo identificador
   vaya a usarse (en los días siguientes por ejemplo). Dicha lista
   deberá ser pequeña, no una preocupación para los servidores y usarse
   para evitar las colisiones de canales impidiendo la re-creación de
   los canales de la lista en un periodo de tiempo mayor que el retardo
   de canal.

   En ocasiones, un servidor PUEDE extender este procedimiento para pro­
   hibir sólo la creación de canales con el mismo nombre abreviado
   (ignorando el identificador de canal).








Kalt                           Información                     [Pág. 15]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


5.2.4. Preservando la salud del espacio de nombres

   La combinación de los mecanismos descritos en las secciones 5.2.2 y
   5.2.3 hace bastante complicado que un usuario genere una colisión de
   canal. Sin embargo, otro tipo de abuso consiste en crear muchos
   canales con el mismo nombre abreviado pero con identificadores dis­
   tintos. Para evitar esto, los servidores DEBEN prohibir la creación
   de un canal nuevo que tenga el mismo nombre abreviado que un canal
   que ya exista.


5.2.5. Mecanismo de reop

   Cuando un canal ha permanecido sin operadores de canal por más tiempo
   que el "retardo de reop" y tiene el modo 'r' activado (ver sección
   4.2.7, "Modo de reop de servidor"), los servidores de IRC son los
   responsables de dar el estatus de operador de canal a uno de sus
   miembros aleatoriamente.

   La lógica exacta usada por este mecanismo en la implementación actual
   se describe más abajo. Los servidores PUEDEN usar una lógica dis­
   tinta, pero se RECOMIENDA encarecidamente que todos los servidores de
   una red de IRC usen la misma lógica para mantener la coherencia y la
   justicia. Por la misma razón, el "retardo de reop" DEBERÍA ser uni­
   forme en todos los servidores de una red de IRC. De la misma forma
   que para el "retardo de canal", el valor del "retardo de reop"
   DEBERÍA ponerse en función de muchos factores entre los cuales se
   encuentra el tamaño de la red de IRC y la duración habitual de las
   separaciones de la red.

     a) el mecanismo de reop se dispara después de un tiempo aleatorio
     tras haber pasado el periodo del "retardo de reop". Esto debería
     evitar que el mecanismo se dispare en dos servidores distintos a la
     vez (para un mismo canal).

     b) si el canal es pequeño (5 usuarios o menos) y el "retardo de
     canal" para ese canal ha pasado,
        Entonces reopear a todos los miembros del canal si al menos uno
        de ellos es local al servidor.








Kalt                           Información                     [Pág. 16]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


     c) si el canal es pequeño (5 usuarios o menos) y el "retardo de
     canal" para ese canal ha pasado y el "retardo de reop" también ha
     pasado,
        Entonces reopear a todos los miembros del canal.

     d) para otros casos, reopear como mucho uno de los miembros del
     canal, basándose en algún método interno al servidor. Si un servi­
     dor no reopea a un miembro, el método debería ser tal que otro
     servidor probablemente lo haga. El método DEBERÍA ser el mismo para
     todos los servidores de la red. Una buena heurística podría ser
     simplemente reopear al azar. (La implementación actual intenta
     escojer un miembro local al servidor que no haya estado inactivo
     durante mucho tiempo, posponiendo la acción para dejar a los demás
     servidores que encuentren algún miembro que no haya estado inactivo
     durante demasiado tiempo. Esto es complicado debido al hecho que
     los servidores sólo conocen el tiempo de inactividad de sus usuar­
     ios locales).



6. Problemas actuales

   Hay algunos problemas reconocidos en la forma en que se manejan los
   canales de IRC. Algunos pueden atribuirse directamente a las reglas
   definidas en este documento, mientras que otros son resultado del
   propio "Protocolo de Servidor de IRC" [SERVIDOR-IRC]. Aunque está
   derivado del RFC 1459 [IRC], este documento introduce algunas
   novedades en un intento de solucionar algunos de los problemas cono­
   cidos.


6.1. Etiquetas

   Este documento describe algunas de las muchas etiquetas usadas en el
   protocolo IRC. Aunque hay varios espacios de nombre distintos (basa­
   dos en el prefijo del nombre de canal), no se permiten duplicados en
   cada uno de ellos. Es posible que usuarios en servidores distintos
   escojan una etiqueta que pueda resultar en colisiones (con la
   excepción de los canales que sólo conoce el servidor en el que están
   alojados).







Kalt                           Información                     [Pág. 17]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


6.1.1. Retardo de canal

   El mecanismo de retardo de canal descrito en la sección 5.1
   (Seguimiento de canales recientes) usado para canales con el prefijo
   '#' es un intento simple de prevenir colisiones. La experiencia ha
   mostrado que, bajo circunstancias normales, es muy eficiente; sin
   embargo, tiene limitaciones que hacen que no sea la solución más ade­
   cuada al problema que aquí se trata.


6.1.2. Canales seguros

   Los "canales seguros" descritos en la sección 3.2 son una forma más
   adecuada de prevenir las colisiones ya que evita que los usuarios
   tengan un control total sobre la etiqueta que escojen. La desventaja
   obvia de estas etiquetas es que no son muy intuitivas. Sin embargo,
   es bastante trivial la mejora de esto para un programa cliente.


6.2. Retardos de propagación de los modos

   Debido a los retrasos que se producen en la red y porque se REQUIERE
   que cada servidor verifique la validez de los cambios de modo (por
   ejemplo, el usuario existe y tiene los privilegios adecuados), no es
   infrecuente que un comando MODE sólo afecte a parte de la red, a
   menudo creando discrepancias entre servidores sobre el estado de la
   red.

   Aunque esto puede parecer sencillo de arreglar (con hacer que única­
   mente el servidor de origen chequee la validez de los cambios de
   modo), se decidió no hacerlo por varias razones. Una de las preocupa­
   ciones es que los servidores no pueden fiarse unos de otros y que un
   mal comportamiento de un servidor puede detectarse fácilmente. Esta
   forma de hacerlo también evita los efectos de onda en canales que
   están desincronizados cuando se realizan cambios de modo desde difer­
   entes partes.


6.3. Colisiones y modos de canales








Kalt                           Información                     [Pág. 18]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   El documento "Charla Basada en Internet: Protocolo de Servidor"
   [SERVIDOR-IRC] describe la forma de intercambiar la información de
   los canales entre dos servidores al conectarse entre ellos. Las coli­
   siones de canales (ya sean legítimas o no) se tratan como eventos
   inclusivos, lo que significa que el canal resultante tiene como miem­
   bros a todos los usuarios que eran miembros del canal en cada servi­
   dor previo a la conexión.

   De forma similar, cada servidor envía los modos del canal al otro.
   Por tanto, cada servidor recibe también estos modos de canal. Hay
   tres tipos de modos de canal: banderas, máscaras y datos. Los dos
   primeros tipos son sencillos de manejar ya que están o bien activados
   o desactivados. Si un modo está activado en un servidor, DEBE acti­
   varse en el otro servidor como resultado de la conexión.

   Dado que los tópicos no se envían como parte del intercambio, no rep­
   resentan ningún problema. Sin embargo, los modos 'l' y 'k' sí se
   intercambian, y si estaban activados en ambos servidores antes de la
   conexión, no hay ningún mecanismo que sirva para decidir cual de los
   dos valores tiene preferencia. Se deja a los usuarios arreglar la
   posible discrepancia resultante.


6.4. Consumo de recursos

   El modo basado en máscaras definido en la sección 4.3 hace que los
   servidores (y la red) de IRC sean vulnerables a un simple abuso del
   sistema: un único operador de canal puede activar tantas máscaras
   como sea posible en un canal en particular. Esto puede causar fácil­
   mente un desperdicio de memoria del servidor, además de ancho de
   banda (ya que la información se propaga a los demás servidores). Por
   esta razón, se RECOMIENDA que se ponga un límite al número de estas
   máscaras por canal como se menciona en la sección 4.3.

   Además, PUEDEN usarse mecanismos más complejos para evitar tener
   máscaras redundantes activas para un mismo canal.











Kalt                           Información                     [Pág. 19]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


7. Consideraciones sobre seguridad


7.1. Control de acceso

   Una de las formas de controlar el acceso a un canal es usar máscaras
   basadas en el nombre de usuario y el nombre de host de las conexiones
   de los usuarios. Este mecanismo sólo es eficiente y seguro si los
   servidores de IRC tienen una forma precisa de autenticar las conex­
   iones de los usuarios, y si los usuarios no pueden saltársela fácil­
   mente. Aunque en teoría es posible implementar un sistema muy
   estricto de autenticación, la mayoría de las redes de IRC (especial­
   mente las redes públicas) no disponen de él y dan pocas garantías de
   la veracidad del nombre de usuario y de host de una conexión de
   cliente en particular.

   Otra forma de controlar el acceso es el uso de una clave de canal,
   pero dado que se envía en forma de texto plano, es vulnerable a
   ataques por parte de terceros.


7.2. Privacidad de los canales

   Dado que las colisiones de canales se tratan como eventos inclusivos
   (ver sección 6.3), los usuarios pueden entrar a un canal superando
   los controles de acceso. Este método se ha usado desde hace tiempo
   para "tomar" canales obteniendo de forma "ilegítima" el estatus de
   operador de canal. El mismo método puede usarse para obtener la lista
   exacta de los miembros de un canal, además de recibir de vez en
   cuando algunos de los mensajes enviados al canal.


7.3. Anonimato

   El modo de canal anónimo (ver sección 4.2.1) se puede usar para ocul­
   tar a los usuarios en ese canal "anónimo" presentando todos los men­
   sajes al canal como si viniesen desde un pseudo usuario cuyo apodo es
   "anónimo". Esto se hace a nivel de cliente-servidor, y no se propor­
   ciona ningún anonimato en el nivel de servidor-servidor.








Kalt                           Información                     [Pág. 20]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   Debería ser obvio para el lector que el nivel de anonimato que se
   ofrece es bastante pobre e inseguro, y que los clientes DEBERÍAN
   mostrar avisos visibles a los usuarios que entren a estos canales.


8. Soporte y disponibilidad actual

     Listas de correo para discusiones sobre IRC:
        Discusión general: ircd-users@irc.org
        Desarrollo del protocolo: ircd-dev@irc.org

     Implementaciones del software:
        ftp://ftp.irc.org/irc/server
        ftp://ftp.funet.fi/pub/unix/irc
        ftp://coombs.anu.edu.au/pub/irc

     Grupo de noticias: alt.irc



9. Reconocimientos

   Partes de este documento se han copiado del RFC 1459 [IRC] que docu­
   mentó formalmente por primera vez el protocolo IRC. También se ha
   visto beneficiada por varias rondas de revisiones y comentarios. En
   particular, las siguientes personas han hecho contribuciones signi­
   ficativas a este documento:

   Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa
   Ruokonen, Magnus Tjernstrom, Stefan Zehl.





10. Referencias

   [PALABRAS CLAVE]   Bradner, S., "Key words for use in RFCs to Indi­
   cate Requirement Levels", BCP 14, RFC 2119, March 1997.
   [IRC]              Oikarinen, J. and D. Reed (Trad. Carlos García







Kalt                           Información                     [Pág. 21]

RFC 2811           Charla Basada en Internet: Canales         Abril 2000


   Argos), "Protocolo de Charla Basado en Internet", RFC 1459, May 1993.
   [ARQUITECTURA-IRC] Kalt, C., "Charla Basada en Internet: Arquitec­
   tura", RFC 2812, Abril de 2000
   [CLIENTE-IRC]      Kalt, C., "Charla Basada en Internet:Protocolo del
   Cliente", RFC 2812, Abril de 2000.
   [SERVIDOR-IRC]     Kalt, C., "Charla Basada en Internet: Protocolo de
   Servidor", RFC 2813, Abril de 2000.
   [CANALES-IRC]      Kalt, C., "Charla Basada en Internet: Manten­
   imiento de canales", RFC 2811, Abril de 2000.



11. Dirección del autor

   Christophe Kalt
   99 Teaneck Rd, Apt #117
   Ridgefield Park, NJ 07660
   Estados Unidos

   Correo Electrónico: kalt@stealth.net



12. Dirección del traductor

   Carlos García Argos
   C/Antonio Trueba, 14 4-8-2
   29017 Málaga
   España

   Correo Electrónico: cgasoft@yahoo.com
















Kalt                           Información                     [Pág. 22]