[IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2005-04-17 18:35:27
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-04-17 18:35:17 UTC Added files: RELEASE.NOTES RELEASE.NOTES.es Log message: Agregado mas documentacion ---------------------- diff included ---------------------- Index: ircd-ircdev/RELEASE.NOTES diff -u /dev/null ircd-ircdev/RELEASE.NOTES:1.1 --- /dev/null Sun Apr 17 11:35:17 2005 +++ ircd-ircdev/RELEASE.NOTES Sun Apr 17 11:35:07 2005 @@ -0,0 +1,421 @@ +Release notes for IRC-Dev IRCD version 1.0 +Last updated: 17 Apr 2005 +Written by Toni Garcia <zo...@ir...> +Based on earlier documents by Kev <kl...@mi...>, +Braden <db...@ya...> and Michael Poole <md...@tr...> + +This document briefly describes changes in IRC-Dev ircd relative to +ircu2.10.07 (based on IRC-Hispano ircdh and Terraircu). IRC-Dev ircd +is only compatible with servers that implement the P10 protocol. It +has been tested to link against old ircds, but some features (notably +IPv6 support) are not supported by old ircds. + + +Enhancements: + +The configuration file format has changed to one that is easier to +read. It is based on the configuration parser found in ircd-hybrid. +As usual, an example configuration file can be found in the doc +subdirectory. + +IRC-Dev ircd now supports IPv6 clients. If your operating system +provides IPv6 socket support, IRC-Dev ircd can accept connections +on IPv6 addresses. Even if your operating system does not support IPv6 +sockets, you can link (using IPv4) to a server that has IPv6 clients, +and IRC-Dev ircd will treat the IPv6 clients correctly. + +The DNS resolver has been replaced with a streamlined version (also +from ircd-hybrid) that avoids some of the complications from using +the full libresolv or adns libraries. + +The server can query an IAUTH external authorization server. The +protocol is described in doc/en/iauth.txt. This allows an external +program to accept or reject any client that connects to the server +and allows that external program to assign an account stamp to the +incoming user. + +More than one hashing mechanism is now supported for oper passwords, +and a new tool (ircd/umkpasswd) is provided to generate them. + +Commands that send messages to specified services may be defined in +the configuration file by using Pseudo blocks. This lets users use +commands like /X or /CHANSERV from their client, without tying the +admin to a particular arrangement or naming of services. + +Clients may negotiate extensions and changes to the standard IRC +client protocol by using the CAP command during registration. There +does not appear to be any documentation for the protocol, which should +not matter since IRC-Dev ircd does not currently implement capabilities +that affect the protocol. + +The /stats command accepts string identifiers in addition to +single-character identifiers. For example, "/stats access" shows the +same data as "/stats i". Supported names are shown by /stats. New +/stats options are: /stats a (nameservers), to list DNS nameservers in +use; /stats L (modules), to list loaded modules; and /stats R +(mappings), to list privmsg helper commands defined by Pseudo blocks. +By default, all of these are hidden from normal users. + +Client blocks (previously I: lines), Operator blocks (previously O: +and o: lines), channel bans and silences may use CIDR notation instead +of simple wildcards. You may also have silence exceptions by putting +'-' before the mask; for example, if you wish to silence everyone +except X, you could use SILENCE *!*@*,-X!cse...@ir.... + +The server will no longer kick "net riders" in keyed (+k) channels if +both sides of the net join have the same key. + +GLINE has been extended to allow IRC operators to issue global +G-lines; see doc/en/gline.txt for more information about how to use +this feature. + +A new JUPE command has been added to permit servers to be juped in a +more reliable fashion. + +Two new channel mode manipulation commands, OPMODE and CLEARMODE, have +been added. OPMODE works exactly like MODE, except that 1) only IRC +operators can use it; 2) it ignores whether or not the operator is a +channel operator. CLEARMODE is a reliable means of eradicating +certain channel modes; it is given an argument string consisting of +the modes to clear. If that argument string is not given, it defaults +to "ovpsmikbl." + +When a channel MODE command from a remote user must be bounced, a +"MODE -o" for the user will also be sent, in order to attempt to +"heal" the desync. Also, the old anti-hack code has been removed, +since servers never send MODEs except for bounces. + +Most compile-time options have been converted to run-time options +which may be set through the configuration file or through the use of +the new commands SET, RESET, and GET; for more information about +these, please refer to doc/ircd.sample-en.conf (for configuration file +information), doc/en/features.txt (for a list and description of the +options), and doc/en/log.txt (for a description of the logging +subsystem configuration). + +A new logging subsystem has been written, making it much easier to get +ircd to write out log files, or to use syslog if that's desired. + +The old chroot() code has been removed; that should now be handled via +an external wrapper. Such a wrapper has been included in the tools +subdirectory. PLEASE READ doc/en/chroot.txt IF YOU WISH TO USE +CHROOT-STYLE JAILS WITH IRCD. + +The build system has been completely revamped; since most compile-time +options are now run-time, the few remaining ones can be placed in +./configure and set with --with-* and --enable-*. Please read INSTALL +for more information on how to compile and install the daemon. + +All of the old select()- and poll()-based event loop has been +completely ripped out and replaced, enabling ircd to use kqueue(), +epoll() and /dev/poll, on systems that support those interfaces. + +The server now uses extended numerics exclusively. + +A large number of code clean-ups, changes, and fixes have been made. +Some of these should hopefully increase performance; others will make +it easier to maintain the code. + +All server to server communications use tokenization and numeric id's, +this reduces the bandwidth requirements approximately 10-20%. + +Much of the network code has been rewritten and many old bugs relating +to the networking core of the server have been fixed. + +The port handling code has been rewritten to allow much better control +over listeners. + +The server supports extended numerics which theoretically would allow +the entire population of the planet to participate on a network without +running out of unique values. + +Added ISUPPORT messages on client connects to allow client coders to +detect network specific enhancements to the client protocol. + +Server aliasing and virtual hosting (port forwarding) are available for +larger DoS attack prone networks. + +Status messages are sent to connecting clients so connections don't +seem to hang during client registration. + +The server now uses a bit less memory and cpu under full load, we +estimate around a 10% improvement in resource usage over the previous +version. + +IRC-Dev ircd now uses 3 environment to choose; DDB Environment of +Distributed DataBases based on ESNET ircd, Undernet Environment based +on Undernet and Services Environment based on Terraircu. + + +DDB Environment: +TODO. + + +Services Environment: +TODO. + + +Undernet Environment: + +A new feature called "oplevels" has been added. It uses new channel +keys (+A for the administrator, +U for users) to grant chanop status +when you join using those keys. Part of this channel protection is +that you cannot be deopped in channel by someone who you opped. + + +Configuration Changes: + +As mentioned above, the configuration file format has changed +radically. Please consult doc/ircd.sample-en.conf for details on the +new format. Some prominent changes follow. + +The old contents of H: lines have been merged into the Connect block +that describes the peer server(s) that should be allowed to hub. + +Two default virtual host addresses may be specified, one for IPv4 +sockets and one for IPv6 sockets. + +Nickname jupes have their own blocks, and do not share structure with +UWorld server declarations. + +Operator connection classes and individual operator blocks may be +assigned privileges, rather than having them controlled globally. +Because of this, the feature settings that controlled the privileges +globally have been removed. + +The maximum number of clients allowed per IP may be set in a Client +block (the equivalent of I: lines). + +Most compile-time options are now run-time configurable features, and +can be set through the daemon configuration file. Please see +doc/ircd.sample-en.conf for an illustration of the format (search for +Features block). Documentation for the logging subsystem is in +doc/en/log.txt, and the list and description of all the features is +located in doc/en/features.txt. + + +Compile Time Options: + +A listing of supported compile-time options may be seen by running +"./configure --help". The defaults should be sane. In particular, +you should NOT compile with --enable-debug or with --disable-symbols +on a production network. + +Again, most compile-time options are now set in the configuration +file. The remaining options are set through arguments to +./configure. A list of these options is available with ./configure +--help; a more detailed description follows: + +--enable-poll + The configure script attempts to only use poll on systems where that +is a direct system call. Sometimes, however, it will not properly +detect this. This option is meant to force ircd to use poll on +systems where ./configure does not detect that it is a system call. + +--enable-debug + This option turns on DEBUGMODE, which enables code useful for +debugging the server. THIS FEATURE SHOULD NOT BE USED ON A PRODUCTION +NETWORK; it represents a severe privacy risk. + +--disable-asserts + Assertions are a means of checking that certain underlying +assumptions are met. This option disables those assertions. + +--disable-symbols + By default, the -g compiler option is used to enable symbols on the +binary. These symbols are useful when attempting to track down the +cause of a crash. Please do not use this option. + +--enable-profile + This option simply adds the -pg compiler option to enable profiling +support. + +--enable-pedantic +--enable-warnings + The Coder Committee attempts to release code that generates no +compile-time warnings or errors. These two options add gcc-specific +warning flags to the compiler flags. These options should not be used +if your compiler is not gcc. + +--disable-inlines + Some critical functions are forcefully inlined. This flag disables +that behavior. It should not be used for performance reasons. + +--disable-devpoll + On systems that have /dev/poll, the /dev/poll-based engine is +automatically enabled. This option inhibits that behavior. + +--disable-kqueue + On systems that have kqueue(), the kqueue()-based engine is +automatically enabled. This option inhibits that behavior. + +--disable-epoll + On systems that have epoll(), the epoll()-based engine is +automatically enabled. This option inhibits that behavior. + +--with-symlink=name + When "make install" is executed, the daemon is installed in such a +way that old versions are kept, and a symlink is made to the latest +installed version. This option selects the name given to that +symlink. Specify a symlink name of "no" or use "--without-symlink" to +disable this behavior. + +--with-mode=mode + The daemon binary is installed with permissions 711 by default; this +option may be used to specify a different permission set for the +binary. + +--with-owner=owner + By default, the owner of the installed binary will be the same as +the person that compiled it; this option permits a different owner to +be specified. + +--with-group=group + By default, the group owner of the installed binary will be the same +as the primary group of the person that compiled it (at the time it +was compiled); this option permits a different group owner to be +specified. + +--with-domain=domain + The daemon attempts to keep some statistics on the server's user +load, including how many local users connect to the server. A local +user is determined by comparing the user's host name to a domain +name. The domain name can be set through the feature subsystem, as +documented in doc/es/features.txt; however, it will default either to +the domain specified with this flag, or to a name extracted from +/etc/resolv.conf, if it exists. + +--with-chroot=dir + Some admins may wish to run ircd within a chroot "jail," to enhance +the security of their systems. Although the chroot() code was removed +from ircd, the build system still supports operation of this form. If +you wish to use chroot-based jails, read doc/en/chroot.txt and give +this option to ./configure. + +--with-dpath=dir + This option simply specifies the path to the data directory for the +daemon. If --with-chroot has been given, this path must be compatible +with the chroot directory. See doc/en/chroot.txt for more information +about this restriction. + +--with-cpath=file + This option simply specifies the path to the configuration file for +the daemon, and may be either a relative or absolute path name. If it +is an absolute path, and if --with-chroot has been given, this path +must be compatible with the chroot directory. See doc/en/chroot.txt +for more information about this restriction. + +--with-lpath=file + When the server is compiled in DEBUGMODE (--enable-debug), the +debugging logs will be sent to the file specified here (defaulting to +"ircd.log" in the data directory). If this is an absolute path, +--with-chroot has been given, and if that path is not compatible with +the chroot directory, then a warning will be issued and the default +will be used. See doc/en/chroot.txt for more information about this +restriction. + +--with-maxcon=maxcon + The maximum number of sockets that the server may open is normally +derived from the hard limit on the number of file descriptors. If +desired, a higher value may be used by specifying this option to +./configure. + +--with-ddb-environment + This option allows to choose DDB environment for ircd. It is the +value by default. + +--with-services-environment + This option allows to choose Services environment for ircd. If not +it especifies, will be used DDB environment. + +--with-undernet-environment + This option allows to choose Undernet environment for ircd. If not +it especifies, will be used DDB environment. + +Otherwise Undocumented Features: + +Despite our preferences to keep these undocumented, they are +occasionally useful, and are described here for users who may +need them. + +To enable these, you need to add them to CFLAGS prior to running +./configure, usually as in: CFLAGS="-O2 -D<option>" ./configure + +-DNICKLEN=20 + This allows you change the maximum nick length from 15 to 20 (or +whatever number you use at the end). It MUST be the same on all +servers on your network, or bad things will happen. You should also +use the NICKLEN feature in ircd.conf. + +-DNOTHROTTLE + This disables the throttling code. This is used for debugging +*only*. It lets you connect up to 255 clients from one host with no +time considerations. If this is enabled on a production server Kev will +personally drive your server into the ground. You have been warned. + + +Operating System and Kernel Requirements: + +If you plan allowing more than 1000 clients on your server, you may +need to adjust your kernel resource limits for networking and +I/O. There are two things you will need to pay particular attention +to, the number of file descriptors available and the number of buffers +the kernel has available to read and write data to the file +descriptors. + +To calculate kernel buffer requirements a good place to start is to +multiply the expected number connections expected on the machine by +the amount of data we buffer for each connection. Doubling the result +of the above calculation and dividing it by the size of the buffers +the kernel uses for I/O should give you a starting place. + +The server uses 2K kernel buffers for clients, and 64K kernel buffers +for servers (actual use may be somewhat higher). + +c_count - number of clients expected +c_q - number of bytes buffered for each client +s_count - number of servers expected +s_q - number of bytes buffered for each server + +buffer count = (2 * (c_count * c_q + s_count * s_q)) / kernel buffer size + +If the client count is 2000 and the server count is 1 (normal leaf) +and your server uses 2K as an I/O buffer size: + +You need (2 * (2000 * 2048 + 1 * 65536)) / 2048 or a minimum of 4064 +buffers available, if the kernel uses 512 byte buffers you will need a +minimum of 16256 kernel buffers. + +These settings may be a bit light for net-breaks under full client +load you will need to experiment a bit to find the right settings for +your server. + +FreeBSD --WildThang + +You may want to increase your kernel resources if you want to put a +lot of clients on your machine here are a few values to start with: + +CHILD_MAX=4096 +OPEN_MAX=4096 +FD_SETSIZE=4096 +NMBCLUSTERS=8096 + +If you have trouble connecting *out* from your machine try: + sysctl -w net.inet.ip.portrange.last=10000 + +Solaris 2.6 --Tar + +Increase the default hard limit for file descriptors in /etc/system: + +set rlim_fd_max = 4096 + +The server will raise the soft limit to the hard limit. + +Linux 2.2 -- [Tri]/Isomer + +The kernel has a kernel destination cache size of 4096. If the kernel +sees more than 4096 IP's in 60s it warns 'dst cache overflow'. This +limit can be changed by modifying /proc/sys/net/ipv4/route/max_size. + +A patch to select is also recommended if you have regular poll/select +errors. Index: ircd-ircdev/RELEASE.NOTES.es diff -u /dev/null ircd-ircdev/RELEASE.NOTES.es:1.1 --- /dev/null Sun Apr 17 11:35:17 2005 +++ ircd-ircdev/RELEASE.NOTES.es Sun Apr 17 11:35:07 2005 @@ -0,0 +1,431 @@ +Notas de lanzamiento para IRCD de IRC-Dev version 1.0 +Ultima actualización: 17 Abril 2005 +Escrito y traducido por Toni Garcia <zo...@ir...> +Basado en anteriores documentos por Kev <kl...@mi...>, +Braden <db...@ya...> y Michael Poole <md...@tr...> + +Este documento describe brevemente los cambios del ircd de IRC-Dev en +relación con el ircu2.10.07 (basado en el ircdh de IRC-Hispano y en +Terraircu). El ircd de IRC-Dev es compatible solamente con servidores +que tengan implementado el protocolo P10. Ha sido probado el link con +ircds antiguos, pero muchas caracteristicas (notablemente el soporte +IPv6) no están soportadas por ircds viejos. + + +Implementaciones: + +El formato del archivo de la configuración ha cambiado a uno que es +más fácil de leer. Está basado en el programa de análisis de la +configuración de ircd-hybrid. Como de costumbre, un ejemplo del +archivo de la configuración se encuentra en el subdirectorio doc. + +El ircd de IRC-Dev soporta ahora los clientes IPv6. Si tu sistema +operativo proporciona el soporte de sockets IPv6, el ircd de IRC-DEV +puede aceptar conexiones con direcciones IPv6. Incluso si su sistema +operativo no soporta los sockets IPv6, usted puede linkar (con IPv4) +a un servidor que tenga clientes IPv6, y el ircd de IRC-Dev trata +correctamente a los clientes IPv6. + +El resolvedor DNS se ha substituido por una versión "streamlined" +(también del ircd-hybrid) que evita las complicaciones de usar las +bibliotecas completas del "libresolv" o de "adns". + +El servidor puede preguntar a un servidor externo de autorización IAUTH. +El protocolo se describe en doc/es/iauth.txt. Esto permite un programa +externo para aceptar o para rechazar a cualquier cliente eso conecta con +el servidor y permite que ese programa externo asigne una cuenta de +acceso al usuario entrante. + +Más de un mecanismo del hashing está soportado ahora para las +contraseñas de operador (IRCOP), y se proporciona una herramienta nueva +(ircd/umkpasswd) para generarlas. + +Comandos que envían mensajes a los servicios especificados se pueden +definir en el archivo de la configuración usando bloques "Pseudo" Esto +deja a los usuarios utilizar los comandos como /X o /CHANSERV de su +cliente, sin atar a los cambios de nick de los servicios. + +Los clientes pueden negociar extensiones y cambios al protocolo de clientes +del IRC estándar usando el comando CAP durante el registro. Allí no hay +ninguna documentación para el protocolo, puesto que el ircd actualmente +no implementa capacidades que afectan al protocolo. + +El comando /stats acepta identificadores de texto además de indentificadores +de un solo caracter. Por ejemplo, "/stats access" muestra los mismos +datos que "/stats i". Los nombres soportados son mostrados por "/stats". +Nuevas opciones de /stats son: /stats a (nameservers), para listar los +nameservers del DNS en uso; /stats L (modules), para listar de módulos +cargados; y /stats R (mappings), para listar los comandos definidos de +privmsg de ayuda por los bloques "Pseudo". +Por defecto, todos son ocultados para usuarios normales. + +Los bloques "Client" (previamente líneas I:), bloques "Operator" +(previamente líneas O: y o:), bans de canales y los sileces pueden +utilizar la notación de CIDR en lugar de comodines simples. Puedes +también tener excepciones de silencie poniendo '-' antes de la máscara; +por ejemplo, si deseas silenciar de todo el mundo excepto X, puedes +utilizar SILENCE *!*@*,-X!cse...@bo.... + +El servidor no puede kickear por "net riders" en los canales con llave +(+k) si ambos lados de la red al unirse tienen la misma llave. + +GLINE se ha ampliado para permitir a los Operadores de IRC (IRCops) +publicar G-lines globales; vea doc/es/gline.txt para más información sobre +cómo utilizar esta característica. + +Un nuevo comando JUPE se ha agregado para permitir los servidores a ser +jupeados en una manera más confiable. + +Dos nuevos comandos de gestión de canales, OPMODE y CLEARMODE han sido +agregados. OPMODE trabaja exactamente igual que MODE, excepto esto 1) +solamente IRCops pueden utilizarlo; 2) se ignora o no si el operador es +un operador del canal. CLEARMODE es un medio confiable para la supresión +de ciertos modos del canal; si se da un argumento, consiste en los modos +para borrar. Si no se da el argumento, por defecto usa "ovpsmikbl." + +Cuando un comando MODE de canal desde un usuario remoto debe ser devuelto, +un "MODE -o" para el usuario también se envía para procurar a "curar" la +desincronización (desync). También, el viejo código anti-hack se ha +eliminado, desde que los servidores nunca envían MODEs a excepción de las +devoluciones (bounces). + +La mayoría de las opciones de en tiempo de compilación han sido convertidas +a las opciones en tiempo de ejecución, de las cuales se pueden fijar con +el archivo de configuración o con el uso de los nuevos comandos SET, RESET y +GET; para más información sobre éstos, por favor lea doc/ircd.sample-es.conf +(para información del archivo de configuración), doc/es/features.txt (para +la lista y descripción de las opciones), y doc/es/log.txt (para la descripción +de la configuración del subsistema de registro (log)). + +Se ha escrito un nuevo subsistema de registración, haciéndolo mucho más fácil +para conseguir que el ircd escriba archivos de registro, o para usar syslog si +se desea. + +Se ha quitado el viejo código del chroot(); eso ahora se debe hacerlo con un +programa externo. Dicho programa está incluido en el directorio tools. +POR FAVOR LEER doc/es/chroot.txt SI DESEAS UTILIZAR JAULAS (JAIL) DE CHROOT-STYLE +con IRCD. + +El sistema de compilación ha sido completamente mejorado; desde que la +mayoría de las opciones de en tiempo de compilación son ahora de en tiempo de +ejecución, las pocas restantes se pueden colocar dentro del ./configure y +ajustar con --with-* y -enable-*. Por favor leer INSTALL.es para más información +sobre cómo compilar y instalar el demonio (daemon). + +Todo el sistema de gestión de eventos viejo select() - y poll() ha sido eliminado y +sustituido, permitiendo al ircd utilizar kqueue(), epoll() y /dev/poll, en los +sistemas que soportan esas interfaces. + +Se haa hecho una gran cantidad de limpieza, cambios y correcciones del códig. +Algunos de éstos deben aumentar el rendimiento; otros harán más facil el +mantenimiento del código. + +El servidor utiliza ahora exclusivamente numéricos extendidos. + +Toda la comunicación servidor a servidor utiliza numéricos y tokens, esto +reduce los requisitos de ancho de banda aproximadamente 10-20%. + +Mucho código de networking se ha reescrito y muchos de los viejos bugs +relacionados con la base del networking del servidor han sido arreglados. + +Se ha reescrito el código de escucha de los puertos para permitir un control +mucho mejor de los excesivos oyentes. + +El servidor soporta los numéricos extendidos que teóricamente permitiría toda +la población entera del planeta a participar en una red sin el funcionamiento +de valores únicos. + +Los mensajes de ISUPPORT agregados en la conexión del cliente, para permitir a +los programadores de los programas clientes detectar las características +específicasde la red al protocolo del cliente. + +El Aliasing y virtual hosting (redireccionado del puerto) del servidor está +disponible para redes propensas de ataques DoS grandes. + +Los mensajes del estado se envían al conectar los clientes así que no parezcan +que las conexiones cuelgan durante el registro del cliente. + +El servidor utiliza ahora menos memoria y CPU, nosotros estimamos alrededor +de una mejora del 10% de uso de recursos sobre la anterior versión. + +El ircd IRC-Dev, ahora usa 3 entornos a elegir; Entorno DDB de Bases de Datos +Distribuidas basado en el ircd de ESNET, Entorno Undernet basado en Undernet +y Entorno Services basado en Terraircu. + + +Entorno DDB: +TODO + + +Entorno Services: +TODO + + +Entorno Undernet: + +Se ha agregado una nueva característica llamada "oplevels". Utiliza el +nuevo canal llaves de acceso "key" (+A para el administrador, +U para +usuarios) para conceder estado del auto op cuando se entra utilizando +esas llaves. Parte de esta protección del canal es que no puedes ser +deopeado en el canal por alguien que le has opeado. + + +Cambios de configuración: + +Según lo mencionado arriba, el archivo de la configuración el formato +ha cambiado radicalmente. Consulte por favor doc/ircd.sample-es.conf +para los detalles en el nuevo formato. Algunos cambios prominentes siguen. + +El viejo contenido de las líneas H: han sido combinado en el bloque "Connect" +eso describe el servidor(s) que debe ser permitido a hub. + +Dos direcciones de host virtuales (vhost) por defecto pueden ser especificado, +uno para sockets IPv4 y uno para sockets IPv6. + +Los jupes de nicks tienen sus propios bloques, y no comparte la estructura con +declaraciones de servidores de UWorld. + +Las clases de conexion de Operador y bloques de "Operator" individuales pueden +ser privilegios asignados, más bien que el tener que controlar globalmente. +Debido a esto los ajustes que controlaba los privilegios globales se han quitado. + +El número máximo de los clientes permitidos por IP se puede fijar en un bloque +"Client" (el equivalente de líneas I:). + +La mayoría de las opciones de en tiempo de compilación ahora son características +configurables en tiempo de ejecución. Por favor vea doc/ircd.sample-es.conf +para una ilustración del formato (busca por bloque Features). La documentación +para el subsistema de registro está dentro de doc/es/log.txt, y la lista y la +descripción de todas las características se encuentra en doc/es/features.txt. + + +Opciones de en tiempo de compilación: + +Un listado de opciones de en tiempo de compilación soportadas puede ser +visto ejecutando "./configure -- help ". Los valores por defecto deben +ser sanos. En particular, no debes usar con --enable-debug o con +--disable-symbols en una red en producción. + +Una vez más, la mayoría de las opciones de en tiempo de compilación ahora se +ajustan en el archivo de configuración. Las opciones restantes se fijan con +argumentos en ./configure. Una lista de estas opciones está disponible con +./configure --help; una descripción más detallada sigue: + +--enable-poll + El script de configure procura utilizar solamente poll en sistemas donde ese +es una llamada directa del sistema. A veces, sin embargo, no se detecta +correctamente. Esta opción significa para forzar al ircd para utilizar poll +en los sistemas donde ./configure no detecta que es una llamada del sistema. + +--enable-debug + Esta opción gira en el DEBUGMODE, que permite el código útil para eliminar +errores (debugging) del servidor. ESTA CARACTERÍSTICA NO DEBE SER UTILIZADO +EN UNA RED EN PRODUCCIÓN; representa un riesgo severo de privacidad. + +--disable-asserts + Las aserciones es el medio de comprobar que se encuentran ciertas incumbencias +de código. Esta opción deshabilita esas aserciones. + +--disable-symbols + Por defecto, la opción -g del compilador es usar para habilitar símbolos en +el binario. Estos símbolos son útiles cuando se trata de seguir la causa de +un desplome (crash). No utilice por favor esta opción. + +--enable-profile + Esta opción simplemente agrega la opción -pg del compilador para permitir el +soporte de profiling. + +--enable-pedantic +--enable-warnings + El comité de programadores procura lanzar código que genere sin errores o +advertencias de en tiempo de compilación. Estas dos opciones agregan flags +específicos del gcc a los flags del compilador. Estas opciones no deben ser +utilizadas si tu compilador no es gcc. + +--disable-ilines + Algunas funciones críticas están "ilined" forzosamente. Este flag +deshabilita ese comportamiento. Esto no debe ser utilizado para razones +de rendimiento. + +--disable-devpoll + En los sistemas que tienen /dev/poll, el gestionador de eventos basado +en /dev/poll es permitido automáticamente. Esta opción inhibe ese +funcionamiento. + +--disable-kqueue + En los sistemas que tienen kqueue() el gestionador de eventos basado +en kqueue() es permitido automáticamente. Esta opción inhibe ese +funcionamiento. + +--disable-epoll + En los sistemas que tienen epoll(), el gestionador de eventos basado +en epoll() es permitido automáticamente. Esta opción inhibe ese +funcionamiento. + +--witch-symlink=nombre + Cuando se ejecuta "make install", el demonio está instalado de tal manera +que las versiones viejas están guardadas, y el acceso directo (symlink) se +hace a la última versión instalada. Esta opción selecciona el nombre para +el symlink. Especifique un nombre del symlink o utilice "--without-symlink" +para deshabilitar esto. + +--with-mode=permisos + El binario del demonio está instalado con permisos 711 por defecto; esta +opción se puede utilizar para especificar un permiso diferente para el binario. + +--with-owner=propietario + Por defecto, el propietario del binario instalado es el mismo que la +persona que lo compiló; esta opción permite especificar un propietario +diferente. + +--with-group=grupo + Por defecto, el grupo de propietarios del binario instalado será el mismo +que el grupo principal de la persona que lo compiló; esta opción permite +especificar un grupo de propietarios diferente. + +--with-domain=dominio + El dominio procura guardar estadísticas sobre la carga de usuarios del +servidor, incluyendo cuántos usuarios locales conecta con el servidor. Un +usuario local es determinando comparando el hostname del usuario con un +nombre de dominio. El nombre de dominio se puede fijar a través del +subsistema de "Features", documentado en doc/es/features.txt; sin embargo, +si no se especifica ningún dominio, el nombre será extraído de +/etc/resolv.conf, si existe. + +--with-chroot=directorio + Algunos admins pueden desear hacer funcionar el ircd dentro de una +jaula (jail) chroot, para aumentar la seguridad de sus sistemas. Aunque el +código del chroot() fue quitado del ircd, la función del sistema todavía +soporta la operación de esta forma. Si deseas utilizar jaulas basados en +chroot, lea doc/es/chroot.txt y usa esta opción en el ./configure. + +--with-dpath=directorio + Esta opción especifica simplemente la ruta del directorio de datos para +el demonio. Si se usa --with-chroot, esta ruta debe ser compatible +con el directorio del chroot. Vea doc/es/chroot.txt para más información +sobre esta restricción. + +--with-cpath=archivo + Esta opción especifica simplemente la ruta del archivo de configuración +para el demonio, y puede ser una ruta relativa o absoluta. Si es una ruta +absoluta, y si se usa --with-chroot, esta ruta debe ser compatible con el +directorio del chroot. Vea doc/es/chroot.txt para más información +sobre esta restricción. + +--with-lpath=archivo + Cuando el servidor se compila en DEBUGMODE (--enable-debug), los +archivos de debugging serán enviados al archivo especificado aquí (por +defecto "ircd.log" en el directorio de datos). Si es una ruta absoluta, +se usa --with-chroot, y si esa ruta no es compatible con el directorio +del chroot, entonces saldrá una advertencia y se utilizará el valor por +defecto. Vea doc/es/chroot.txt para más información +sobre esta restricción. + +--with-maxcon=maxconexiones + El número máximo de las conexiones que el servidor puede tener normalmente +está derivado del límite de hardware en el número de descriptores del +fichero. Si deseas, se puede utilizar un valor más alto para especificar +esta opción en el ./configure. + +--with-ddb-environment + Esta opción permite escoger el entorno DDB para el ircd. Es el valor por +defecto. + +--with-services-environment + Esta opción permite escoger el entorno Services para el ircd. Si no se +especifica, se usará el entorno DDB. + +--with-undernet-environment + Esta opción permite escoger el entorno Undernet para el ircd. Si no se +especifica, se usará el entorno DDB. + + +Características no documentadas: + +A pesar de nuestras preferencias para guardar estas indocumentadas, son +de vez en cuando útiles, y se describen aquí para los usuarios que puedan +necesitarlas. + +Para permitir esto, necesita agregarlos a los "CFLAGS" antes de ejecutar +./configure, generalmente como en: CFLAGS="-o2 - D<option>" ./configure + +-DNICKLEN=20 + Esto permite cambiar la longitud máxima del nick a partir del 15 a 20 +(o cualquier número que utilices en el extremo). Esto DEBE ser igual en +todos los servidores de tu red, o sucederán cosas malas. Debes también +utilizar la característica de NICKLEN en el ircd.conf. + +-DNOTHROTTLE + Esto inhabilita el código de "throttling". Esto se utiliza *solamente* +para debug. Le deja conectar hasta 255 clientes desde un host sin limites +de tiempo. Si esto se habilita en un servidor en producción, Kev puede +conducir personalmente tu servidor en tierra. Estás advertido. + + +Requisitos del sistema operativo: + +Si planeas permitir a más de 1000 clientes en tu servidor, puedes necesitar +ajustar sus límites de recursos del núcleo (kernel) para networking y I/O +(entradas/salidas de dispositivos). Hay dos cosas que necesitará tener que +poner atención particular, el número de los descriptores de ficheros +disponibles y el número de almacenadores (buffers) que el núcleo tiene +disponibles para leer y para escribir datos al fichero de descriptores. + +Para calcular los requisitos de los almacenadores del núcleo para empezar +está en multiplicar las conexiones previstas en la máquina con la cantidad de +datos que guardamos para cada conexión. Doblar el resultado del cálculo +anterior y divide por el tamaño de los almacenadores que el núcleo usa para +I/O deben dar para empezar. + +El servidor utiliza 2K para almacenadores del núcleo para clientes, y 64K +para almacenadores núcleo para los servidores (el uso real puede estar algo más). + +c_count - número de clientes esperados +c_q - número de bytes guardados para cada cliente +s_count - número de servidores esperados +s_q - número de bytes guardados para cada servidor + +Tamaño de buffer = (2 * (c_count * c_q + s_count * s_q)) / tamaño almacenador del núcleo + +Si la cuenta del cliente es 2000 y la cuenta del servidor es 1 (leaf normal) +y tu servidor usa 2K como almacenador de I/O: + +Necesitas (2 * (2000 * 2048 + 1 * 65536)) / 2048 o un mínimo de 4064 de +buffers disponibles, si el kernel utiliza 512 bytes para los almacenadores +necesitarás un mínimo de 16256 almacenadores del núcleo. + +Estos ajustes pueden ser una luz del pedacito para romper la red debajo +de una carga de un cliente que necesitarás experimentar un pedacito para +encontrar los ajustes perfectos para tu servidor. + +FreeBSD -- WildThang + +Puedes desear aumentar los recursos del núcleo si deseas poner muchos +clientes en tu máquina aqui tienes unos pocos valores para empezar con: + +CHILD_MAX=4096 +OPEN_MAX=4096 +FD_SETSIZE=4096 +NMBCLUSTERS=8096 + +Si tienes problemas para conectar *hacia fuera* de tu máquina, intenta: + sysctl -w net.inet.ip.portrange.last=10000 + +Solaris 2.6 -- Alquitrán + +Aumente el límite de hardware por defecto para el archivo de los descriptores +en /etc/system: + +set rlim_fd_max = 4096 + +El servidor subirá el límite por software al límite por hardware. + +Linux 2.2 -- [ Tri]/Isomer + +El núcleo tiene un tamaño del cache destino del núcleo de 4096. Si el +núcleo ve que más de 4096 IP en 60s él advierte 'dst cache overflow'. +Este límite puede ser cambiado modificándose /proc/sys/net/ipv4/route/max_size. + +Un parche para el select también se recomienda si usted tiene errores del +poll/select regularmente. + ----------------------- End of diff ----------------------- |