3.1. Configuracion del n�cleo

Muchas distribuciones de GNU/Linux vienen con discos de arranque que funcionan con el hardware para PC m�s com�n. Normalmente, el n�cleo suministrado es altamente modulable e incluye casi cualquier controlador que pueda necesitar. Esta es una gran idea para los discos de arranque, pero no es lo que usted probablemente quiera para un uso a largo plazo. No es un buen sistema tener almacenados controladores en su disco que nunca va a usar. Por lo tanto, ser� conveniente crear su propio n�cleo e incluir s�lo aquellos controladores que realmente necesite o desee; de esta forma ahorrar� un poco de espacio en disco y reduce el tiempo que lleva compilar un n�cleo nuevo.

En cualquier caso, al trabajar con un sistema GNU/Linux, le deber� ser familiar la compilaci�n de un n�cleo. Piense en esto como si fuera un tr�nsito, una afirmaci�n de una de las cosas que hace al software libre m�s poderoso de lo que ya es— usted tiene las fuentes. Este no es un caso de, “tengo que compilar un n�cleo,” m�s bien es el caso de, “puedo compilar un n�cleo.” Los conceptos b�sicos de la compilacion de un n�cleo Linux se explican en la Gu�a de Matt Welsh: "instalaci�n y primeros pasos", que tambi�n forma parte de la serie del Proyecto de Documentaci�n de GNU/Linux. Por tanto, en esta secci�n solo trataremos las opciones de configuraci�n que afectan a la red.

Un punto importante que vamos a repetir aqu� es la forma en que funciona el esquema de numeraci�n de la versi�n del n�cleo. Los n�cleos Linux son numerados en el siguiente formato: 2.2.14. El primer d�gito indica el n�mero de versi�n primario. Este d�gito cambia cuando hay cambios numerosos y significativos en el dise�o del n�cleo. Por ejemplo, el n�cleo cambio del 1 al 2 cuando obtuvo soporte para m�quinas de diferente arquitectura a la Intel x86 (la del PC). El segundo n�mero es el n�mero de versi�n secundario. En muchos aspectos, este n�mero es el m�s importante a tener en cuenta. La comunidad de desarrolladores de Linux ha adoptado un est�ndar en el cual un n�mero de versi�n secundario par indica que el n�cleo est� en producci�n, o es estable, y un n�mero de versi�n secundario impar indica que el n�cleo esta en desarrollo, o es inestable. Debe usar los n�cleos estables para los equipos importantes, ya que han sido comprobados m�s a fondo. Los n�cleos en desarrollo son los que debe de usar si est� interesado en experimentar con las �ltimas caracter�sticas de Linux., pero �stos pueden tener muchos problemas que todav�a no han sido corregidos. El tercer n�mero es simplemente un incremento por cada liberaci�n de una versi�n secundaria.[1]

Al ejecutar make menuconfig, aparecer� un men� de texto que le mostrar� una lista de cuestiones sobre la configuraci�n, como por ejemplo, si desea usar la emulaci�n del coprocesador matem�tico en el n�cleo. Una de esas cuestiones pregunta si desea soporte para redes TCP/IP. Debe contestar con y para que el n�cleo sea capaz de trabajar con redes TCP/IP.

3.1.1. Opciones del N�cleo Linux 2.0 y superiores

Despu�s de completar la secci�n de opciones generales, se le preguntar� si quiere incluir soporte para varios tipos de dispositivos, como controladoras SCSI o tarjetas de sonido. El cursor le indicar� qu� opciones est�n disponibles. Puede pulsar ? para obtener una descripci�n de la opci�n en la que se encuentre. Siempre tiene la opci�n de s� (y) para incluir dicho componente de forma est�tica en el n�cleo, o no (n) para excluir el componente completamente. Aparte puede ver la opci�n de m�dulo (m) para que dicho componente sea compilado como un m�dulo cargable. Los m�dulos necesitan ser cargados antes para que puedan ser usados, �sto es �til para controladores de componentes que no usa muy a menudo.

La siguiente lista de preguntas trata sobre el soporte de red. El juego exacto de opciones de configuraci�n cambia constantemente debido al continuo desarrollo. Una lista t�pica de las opciones ofrecidas por la mayor�a de las versiones del n�cleo en torno a las 2.0 y 2.1 puede ser �sta:
    *
    * Network device support
    *
    Network device support (CONFIG_NETDEVICES) [Y/n/?]

Debe responder a esta cuesti�n con y si quiere usar cualquier tipo de dispositivo de red, ya sea Ethernet, SLIP, PPP, o el que sea. Cuando conteste a la pregunta cony, el soporte para los dispositivos Ethernet ser� activado autom�ticamente. Deber� responer a otras preguntas si quiere habilitar el soporte de otros tipos de controladores de red:

    PLIP (parallel port) support (CONFIG_PLIP) [N/y/m/?] y
    PPP (point-to-point) support (CONFIG_PPP) [N/y/m/?] y
    *
    * CCP compressors for PPP are only built as modules.
    *
    SLIP (serial line) support (CONFIG_SLIP) [N/y/m/?] m
    CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [N/y/?] (NEW) y
    Keepalive and linefill (CONFIG_SLIP_SMART) [N/y/?] (NEW) y
    Six bit SLIP encapsulation (CONFIG_SLIP_MODE_SLIP6) [N/y/?] (NEW) y

Estas cuestiones conciernen a varios protocolos de la capa de enlace que Linux soporta. PPP y SLIP le permiten transportar datagramas IP a trav�s de l�neas serie. PPP es usado actualmente por un grupo de protocolos para enviar el tr�fico de la red a trav�s de l�neas serie. Algunos de los protocolos que forman PPP gestionan la manera de poderse autentificar en el servidor, mientras otros gestionan el modo en que ciertos protocolos son transportados por el enlace—PPP no esta limitado a transportar solo datagrama TCP/IP; adem�s de este protocolo tambi�n puede transportar otros como el IPX.

Si responde y o m al soporte para SLIP, le ser�n preguntadas tres cuestiones que trataremos m�s abajo. La opci�n de comprimir las cabeceras permite el soporte para CSLIP, una t�cnica que comprime las cabeceras TCP/IP a solo 3 peque�os bytes. Recuerde que esta opci�n del n�cleo no activa autom�ticmente el CSLIP; simplemente provee las funciones necesarias al n�cleo para ello. La opci�n Keepalive and linefill causa que el soporte de SLIP genere peri�dicamente actividad en la l�nea para prevenir que �sta sea desconectada por inactividad. La opci�n Six bit SLIP encapsulation le permite ejecutar SLIP sobre l�neas y circuitos que no son capaces de transmitir el grupo de 8-bit de datos correctamente. Esto es similar al uuencoding o la t�cnica binhex usada para enviar ficheros binarios por e-mail.

PLIP proporciona una forma de enviar datagramas IP a trav�s de una conexi�n por puerto paralelo. Esto es usado com�nmente para comunicarse con PCs que usan DOS. En el hardware t�ipico de PC, PLIP puede ser m�s r�pido que PPP o SLIP, pero requiere mucha m�s CPU para funcionar, adem�s cuando la tasa de transferencia sea buena, otras tareas en la m�quina podr�an volverse m�s lentas.

A medida que se desarrollan m�s controladores, la lista de preguntas en esta secci�n se hace mayor. Si desea compilar un n�cleo que se pueda usar en varias m�quinas, o si su m�quina tiene m�s de un tipo de tarjeta de red instalada, puede activar m�s de un controlador:

     .
     .
    Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?]
    3COM cards (CONFIG_NET_VENDOR_3COM) [Y/n/?]
    3c501 support (CONFIG_EL1) [N/y/m/?]
    3c503 support (CONFIG_EL2) [N/y/m/?]
    3c509/3c579 support (CONFIG_EL3) [Y/m/n/?]
    3c590/3c900 series (592/595/597/900/905) "Vortex/Boomerang" support/
        (CONFIG_VORTEX) [N/y/m/?]
    AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE) [N/y/?]
    AMD PCInet32 (VLB and PCI) support (CONFIG_LANCE32) [N/y/?] (NEW)
    Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC) [N/y/?]
    WD80*3 support (CONFIG_WD80x3) [N/y/m/?] (NEW)
    SMC Ultra support (CONFIG_ULTRA) [N/y/m/?] (NEW)
    SMC Ultra32 support (CONFIG_ULTRA32) [N/y/m/?] (NEW)
    SMC 9194 support (CONFIG_SMC9194) [N/y/m/?] (NEW)
    Other ISA cards (CONFIG_NET_ISA) [N/y/?]
    Cabletron E21xx support (CONFIG_E2100) [N/y/m/?] (NEW)
    DEPCA, DE10x, DE200, DE201, DE202, DE422 support (CONFIG_DEPCA) [N/y/m/?]/
        (NEW)
    EtherWORKS 3 (DE203, DE204, DE205) support (CONFIG_EWRK3) [N/y/m/?] (NEW)
    EtherExpress 16 support (CONFIG_EEXPRESS) [N/y/m/?] (NEW)
    HP PCLAN+ (27247B and 27252A) support (CONFIG_HPLAN_PLUS) [N/y/m/?] (NEW)
    HP PCLAN (27245 and other 27xxx series) support (CONFIG_HPLAN) [N/y/m/?]/
        (NEW)
    HP 10/100VG PCLAN (ISA, EISA, PCI) support (CONFIG_HP100) [N/y/m/?] (NEW)
    NE2000/NE1000 support (CONFIG_NE2000) [N/y/m/?] (NEW)
    SK_G16 support (CONFIG_SK_G16) [N/y/?] (NEW)
    EISA, VLB, PCI and on card controllers (CONFIG_NET_EISA) [N/y/?]
    Apricot Xen-II on card ethernet (CONFIG_APRICOT) [N/y/m/?] (NEW)
    Intel EtherExpress/Pro 100B support (CONFIG_EEXPRESS_PRO100B) [N/y/m/?]/
        (NEW)
    DE425, DE434, DE435, DE450, DE500 support (CONFIG_DE4X5) [N/y/m/?] (NEW)
    DECchip Tulip (dc21x4x) PCI support (CONFIG_DEC_ELCP) [N/y/m/?] (NEW)
    Digi Intl. RightSwitch SE-X support (CONFIG_DGRS) [N/y/m/?] (NEW)
    Pocket and portable adaptors (CONFIG_NET_POCKET) [N/y/?]
    AT-LAN-TEC/RealTek pocket adaptor support (CONFIG_ATP) [N/y/?] (NEW)
    D-Link DE600 pocket adaptor support (CONFIG_DE600) [N/y/m/?] (NEW)
    D-Link DE620 pocket adaptor support (CONFIG_DE620) [N/y/m/?] (NEW)
    Token Ring controlador support (CONFIG_TR) [N/y/?]
    IBM Tropic chipset based adaptor support (CONFIG_IBMTR) [N/y/m/?] (NEW)
    FDDI controlador support (CONFIG_FDDI) [N/y/?]
    Digital DEFEA and DEFPA adapter support (CONFIG_DEFXX) [N/y/?] (NEW)
    ARCnet support (CONFIG_ARCNET) [N/y/m/?]
      Enable arc0e (ARCnet "Ether-Encap" packet format) (CONFIG_ARCNET_ETH)/
          [N/y/?] (NEW)
      Enable arc0s (ARCnet RFC1051 packet format) (CONFIG_ARCNET_1051)/
          [N/y/?] (NEW)
     .
     .

Finalmente, en la secci�n de los sistemas de ficheros, el script de configuraci�n le preguntar� si desea soporte para NFS (networking file system), el sistema de ficheros en red. NFS le permite exportar sistemas de ficheros en varios hosts, haciendo que los ficheros aparezcan como si estuvieran en un disco duro normal y corriente conectado al host.

    NFS file system support (CONFIG_NFS_FS) [y]
Describiremos el NFS con detalle en Cap�tulo 14.

3.1.2. Opci�nes de red del n�cleo de GNU/Linux 2.0.0 and Higher

Linux 2.0.0 marc� un cambio significativo en el trabajo en red de GNU/Linux. Muchas caracter�sticas formaron parte est�ndar del n�cleo, como el soporte para IPX. Tambi�n fueron a�adidas y hechas configurables un buen n�mero de opciones. Muchas de esas opciones son usadas s�lo en circunstancias muy especiales y no vamos a tratarlas en detalle. El Redes COMO tratar� probablemente lo que no est� tratado aqu�. Vamos a listar unas cuantas opciones �tiles en esta secci�n, y explicaremos cuando debe usar cada una.

    Networking options  --->
        [*] TCP/IP networking

        [*] IP: forwarding/gatewaying

Virtual hosting

Estas opciones permiten configurar m�s de una direcci�n IP para una �nica interfaz. Esto es �til si quiere hacer “virtual hosting,” (alojamiento virtual), con una sola m�quina que puede ser configurada para escuchar y actuar como si esta fuera varias m�quinas separadas entre s�, cada una con su propia configuraci�n de red. M�s adelante hablaremos acerca del IP aliasing:

        [*] Network aliasing
    	<*> IP: aliasing support

Accounting

Esta opci�n le permite recolectar los datos en el caudal del tr�fico IP enviados o recibidos en su m�quina (trataremos esto con m�s detalle en Cap�tulo 10 ):

        [*] IP: accounting

PC hug

Esta opci�n evita incompatibilidades con algunas versiones de PC/TCP, una implementaci�n comercial de TCP/IP basada en DOS para PCs. Si activa esta opci�n, todav�a ser� capaz de comunicarse con m�quinas UNIX normales, pero bajar� el rendimiento cuando el enlace sea lento.

        --- (it is safe to leave these untouched)
        [*] IP: PC/TCP compatibility mode

Diskless booting

Esta funci�n activa el Protocolo de Resoluci�n de Direcciones Inverso (RARP). RARP se utiliza en clientes sin disco y terminales X para pedir su direcci�n IP al arrancar. Deber� activar RARP si planea ofrecer este tipo de servicios. Un peque�o programa llamado rarp, incluido con las utilidades de red est�ndares, se usa para a�adir entradas a la tabla RARP del n�cleo:

        <*> IP: Reverse ARP

MTU

Cuando enviamos datos sobre TCP, el n�cleo tiene que dividir �stos en varios bloques de datos para pasarlos al nivel IP. El tama�o de estos bloques es llamado la Unidad Maxima de Transmisi�n (Maximum Transmission Unit), o MTU. Para los nodos accesibles a trav�s de una red local como una Ethernet, se usa un MTU tan alto como la m�xima longitud permitida para los paquetes Ethernet —1,500 bytes. Cuando enrutamos IP sobre una WAN como Internet, es preferible usar datagramas de menor tama�o para asegurarnos de que no necesitan ser partidos de nuevo a lo largo de la ruta mediante el proceso llamado fragmentaci�n IP .[2] El n�cleo es capaz de determinar autom�ticamente el MTU m�s bajo de una ruta IP y configurar autom�ticamente una conexi�n TCP para usar �ste. Este comportamiento es activado por defecto. Si contesta con y a esta opci�n, esta caracter�stica ser� deshabilitada.

Si desea usar un tama�o de paquete menor para enviar datos a nodos espec�ficos (porque, por ejemplo, los datos ir�n a trav�s de un enlace SLIP), puede hacer �sto usando la opci�n mss de la orden route, que est� descrita brevemente al final del cap�tulo:

        [ ] IP: Disable Path MTU Discovery (normally enabled)

Security feature

El protocolo IP soporta una caracter�stica llamada Source Routing Source Routing le permite especificar la ruta que un datagrama debe seguir mediante la grabaci�n por usted mismo de la ruta dentro del datagrama. Esto fue alguna vez �til antes de que los protocolos de enrutamiento como RIP y OSPF se hicieran usuales. Pero hoy d�a es considerado una amenaza de seguridad debido a que puede facilitar a los atacantes inteligentes una forma de rodear ciertos tipos de cortafuegos evitando la tabla de enrutamiento de un enrutador. Normalmente desear� filtrar la procedencia de los datagramas externos enrutados, por lo que esta opci�n est� activada normalmente.

        [*] IP: Drop source routed frames

Novell support

Esta opci�n activa el soporte para IPX, el protoco de transmisi�n para redes que usa Novell. GNU/Linux podr�a funcionar f�cilmente como un enrutador IPX y su soporte es �til en entornos donde tiene servidores de ficheros Novell. El sistema de ficheros NCP tambi�n requiere tener el soporte de IPX activado en el n�cleo; si desea a�adir o montar sus sistemas de ficheros Novell deber� activar esta opci�n (hablaremos m�s sobre IPX y el sistema de ficheros NCP en Cap�tulo 15):

        <*> The IPX protocol

Amateur radio

Estas tres opciones seleccionadas dan soporte para los tres protocolos de Radio soportados por Linux: AX.25, NetRom y Rose (No vamos a describirlos en este libro, pero puede encontrar m�s informacion en el AX25 HOWTO):
        <*> Amateur Radio AX.25 Level 2
        <*> Amateur Radio NET/ROM
        <*> Amateur Radio X.25 PLP (Rose)

Linux soporta otro tipo de controlador: el controlador vac�o (dummy). la siguiente pregunta aparece hacia el comienzo de la secci�n de controladores de dispositivos:
        <*> Dummy net controller support

El controlador vac�o no hace realmente gran cosa, pero es bastante �til en nodos aislados o conectados mediante PPP/SLIP. Es b�sicamente una interfaz enmascarada del bucle local. En nodos que tienen PPP/SLIP pero no otras interfaces de red, es necesario tener una interfaz que cont�nuamente gestione las direcciones IP. �sto se tratar� con m�s detalle en Secci�n 5.7.7 en Cap�tulo 5. Recuerde que actualmente puede obtener el mismo resultado usando la caracter�stica IP alias y configurando sus direcciones IP como alias en la interfaz de bucle local.

Notas

[1]

La gente suele usar n�cleos en desarrollo e informar de los fallos que encuentra, hacer esto es algo muy �til si tiene una m�quina que pueda usar como m�quina de pruebas. Las instrucciones de c�mo informar de los fallos est�n detalladas en el fichero /usr/src/linux/REPORTING-BUGS del c�digo fuente del n�cleo Linux.

[2]

Recuerde, el protocolo IP puede ser transportado sobre multitud de tipos diferentes de redes, y no todas las redes podr�n soportar tama�os de paquetes tan largos como los de las Ethernet.