Redes en Linux - Información relacionada con IP y Ethernet (II)

11 - Información relacionada con IP y Ethernet (II)

Tutorial creado por Joshua Drake. Extraido de: http://www.insflug.org/COMOs/Redes-En-Linux-Como/Redes-En-Linux-Como.html
22 de Diciembre de 2006

6.7 IP Firewall (para Linux 2.2)

Al nuevo código para controlar el cortafuegos se accede mediante IP Firewall Chains. Consulte la página principal de IP Chains http://www.adelaide.net.au/~rustcorp/ipfwchains/ipfwchains.html si desea más información. Entre otras cosas, necesitará usar ipchains en lugar de ipfwadm para configurar sus filtros. (De Documentation/Changes en las últimas fuentes del núcleo)

Estamos avisados de que esto está seguramente desfasado y estamos trabajando para tener esta sección más al día. Es posible que tengamos una versión nueva para agosto de 1999.

6.8 Encapsulación IPIP

¿Qué razón hay para encapsular datagramas IP dentro de datagramas IP? Le parecerá una tontería si nunca ha visto antes sus aplicaciones. Bien, aquí tenemos un par de ejemplos comunes en los que se usa: Mobile-IP e IP-Multicast. Posiblemente su uso más extendido o al menos el mejor conocido es Amateur Radio.

Opciones de Compilación del Núcleo:

    Networking options  --->
        [*] TCP/IP networking
        [*] IP: forwarding/gatewaying
        ....
        <*> IP: tunneling

Los dispositivos túneles de IP se denominan tunl0, tunl1, etc.

¿Pero por qué?. Bien, bien. Las reglas convencionales de encaminamiento de redes IP comprenden direcciones de red y máscaras de red. Esto hace que conjuntos de direcciones contiguas sean encaminadas mediante una sola regla de encaminamiento. Esto es muy conveniente, pero significa que sólo puede usar una dirección IP en particular cuando está conectado a alguna parte de la red a la que pertenece. En la mayoría de los casos esto vale, pero si suele desplazarse entonces no será capaz siempre de conectar desde el mismo sitio. La encapsulación IP/IP (IP tunneling) le permite saltarse esta restricción permitiendo que los datagramas que están destinados a su dirección IP sean encapsulados y dirigidos a otra dirección IP. Si sabe que va a estar durante un tiempo trabajando en otra red IP entonces podrá poner a punto una máquina de su red habitual para que acepte los datagramas que van dirigidos a su IP y que los reenvíe a la dirección que esté usando de manera temporal.

Una configuración de red con túneles

 192.168.1/24                          192.168.2/24

     -                                     -
     |      ppp0 =            ppp0 =       |
     |  aaa.bbb.ccc.ddd  fff.ggg.hhh.iii   |
     |                                     |
     |   /-----\                 /-----\   |
     |   |     |       //        |     |   |
     |---|  A  |------//---------|  B  |---|
     |   |     |     //          |     |   |
     |   \-----/                 \-----/   |
     |                                     |
     -                                     -

El diagrama ilustra otra posible razón para usar encapsulación IPIP, las redes privadas virtuales. Este ejemplo presupone que tiene dos máquinas cada una con una sola conexión ppp a Internet. Cada máquina tiene una sola dirección IP. Tras cada una de estas máquinas hay algunas redes privadas de área local configuradas con direcciones de red IP reservadas. Supongamos que quiere permitir que cualquier máquina en la red A se conecte con cualquier máquina en la red B, como si estuvieran conectadas a Internet por una ruta de red. La encapsulación IP se lo permitirá. Tenga en cuenta que la encapsulación no resuelve el problema de cómo hacer que las máquinas las redes A y B se comuniquen con otras máquinas en Internet, ya que para seguimos necesitando trucos como el Enmascaramiento IP. La encapsulación la realiza normalmente una máquina que esté funcionando como encaminador.

El encaminador Linux A debería configurarse así:

#!/bin/sh
PATH=/sbin:/usr/sbin
mask=255.255.255.0
remotegw=fff.ggg.hhh.iii
#
# Configuración Ethernet
ifconfig eth0 192.168.1.1 netmask $mask up
route add -net 192.168.1.0 netmask $mask eth0
#
# Configuración ppp0 (iniciar enlace ppp, establecer ruta por defecto)
pppd
route add default ppp0
#
# Configuración del dispositivo túnel
ifconfig tunl0 192.168.1.1 up
route add -net 192.168.2.0 netmask $mask gw $remotegw tunl0

El encaminador Linux `B' debería configurarse con:

#!/bin/sh
PATH=/sbin:/usr/sbin
mask=255.255.255.0
remotegw=aaa.bbb.ccc.ddd
#
# Configuración Ethernet
ifconfig eth0 192.168.2.1 netmask $mask up
route add -net 192.168.2.0 netmask $mask eth0
#
# Configuración ppp0 (iniciar enlace PPP, establecer ruta por defecto)
pppd
route add default ppp0
#
# Configuración del dispositivo túnel
ifconfig tunl0 192.168.2.1 up
route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0

La orden:

route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0

se leería: Envía cualquier datagrama destinado a 192.168.1.0/24 dentro de un datagrama IPIP con dirección de destino aaa.bbb.ccc.ddd'.

Las configuraciones son recíprocas en cada extremo. El dispositivo de túnel usa el gw dado en la ruta como destino del datagrama IP en el que encerrará el datagrama que ha recibido para encaminar. Esa máquina debe saber cómo desencapsular datagramas IPIP, esto es, debe también estar configurada con un dispositivo túnel.

Configuración de la máquina cuyos paquetes serán encapsulados

No tiene por qué estar encaminando una red entera. Por ejemplo puede estar encapsulando una sola dirección IP. En este caso podría configurar el dispositivo tunl en la máquina `remota' con su dirección IP y el extremo A usará la máquina encaminadora (y Proxy Arp) en lugar encaminar la red a través del dispositivo túnel. Dibujemos de nuevo y modifiquemos apropiadamente nuestra configuración. Ahora tenemos una máquina B que quiere actuar y comportarse como si estuviera conectada a Internet y al mismo tiempo fuera parte de una red remota soportada por la máquina A:

 192.168.1/24

     -
     |      ppp0 =                ppp0 =
     |  aaa.bbb.ccc.ddd      fff.ggg.hhh.iii
     |
     |   /-----\                 /-----\
     |   |     |       //        |     |
     |---|  A  |------//---------|  B  |
     |   |     |     //          |     |
     |   \-----/                 \-----/
     |                      también: 192.168.1.12
     -

El encaminador Linux A debería configurarse así:

#!/bin/sh
PATH=/sbin:/usr/sbin
mask=255.255.255.0
remotegw=fff.ggg.hhh.iii
#
# Configuración Ethernet
ifconfig eth0 192.168.1.1 netmask $mask up
route add -net 192.168.1.0 netmask $mask eth0
#
# Configuración ppp0 (iniciar enlace ppp, establecer ruta por defecto)
pppd
route add default ppp0
#
# Configuración del dispositivo túnel
ifconfig tunl0 192.168.1.1 up
route add -host 192.168.1.12 gw $remotegw tunl0
#
# Proxy ARP para la máquina remota
arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub

El encaminador Linux B debería configurarse así:

#!/bin/sh
PATH=/sbin:/usr/sbin
mask=255.255.255.0
remotegw=aaa.bbb.ccc.ddd
#
# Configuración ppp0 (iniciar enlace ppp, establecer ruta por
# defecto)
pppd
route add default ppp0
#
# Configuración del dispositivo túnel
ifconfig tunl0 192.168.1.12 up
route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0

Esta clase de configuración es más típica de aplicaciones Mobile-IP, donde una máquina quiere moverse por Internet y mantener una única IP fija. Debería leer la sección Mobile-IP (IP Móvil) si quiere más información de cómo se hace esto en la práctica.

6.9 Enmascarado IP (IP Masquerade)

Mucha gente dispone de una sola cuenta por conexión telefónica para conectarse a Internet. Casi todos los que utilizan esa configuración se ve limitado a una sola dirección IP que le da el Proveedor de Servicios de Internet. Esto normalmente es bastante para permitir un sólo acceso completo a la red. El Enmascarado IP es un truco inteligente que permite que varias máquinas usen una sola dirección IP, haciendo que las otras máquinas se hagan pasar, y de ahí el término de enmascaramiento, por la máquina que realmente tiene la conexión. Hay un pequeño defecto y es que el enmascarado funciona casi siempre en un sólo sentido, y este es que las máquinas enmascaradas pueden hacer llamadas, pero no pueden aceptar o recibir llamadas de otras máquinas remotas. Esto significa que algunos servicios de red como talk no funcionarán y otros como ftp deberán ser configurados en modo pasivo (PASV) para que funcionen. Afortunadamente los servicios de red más comunes como telnet, WWW e irc funcionan bien.

Opciones de Compilación de Red:

    Code maturity level options  --->
        [*] Prompt for development and/or incomplete code/drivers
    Networking options  --->
        [*] Network firewalls
        ....
        [*] TCP/IP networking
        [*] IP: forwarding/gatewaying
        ....
        [*] IP: masquerading (EXPERIMENTAL)

Lo normal es que su máquina Linux esté usando una línea slip o PPP como si fuera una máquina aislada. Sin embargo, podemos tener además otros dispositivos de red configurados, quizá una ethernet, configurada con una de las direcciones de red privadas. Las máquinas que van a ser enmascaradas podrían estar en esta segunda red. Cada una de ellas debería tener asignada la dirección IP del puerto Ethernet de la máquina Linux como la pasarela (gateway) por defecto.

Una configuración típica podría ser algo parecido a:

-                                   -
 \                                  | 192.168.1.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |                | Linux | .1.1 |
NET =================| masq  |------|
    |    PPP/slip    | router|      |  --------
   /                 ---------      |--| host |
  /                                 |  |      |
 /                                  |  --------
-                                   -

Enmascarado con IPFWADM

Las órdenes más importantes para esta configuración son:

# Ruta de red hacia la Ethernet
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# Ruta por defecto al resto de Internet
route add default ppp0
#
# Hace que todas las máquinas de la red 192.168.1/24 sean
# enmascarados
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0

Enmascarado con IPCHAINS

# Ruta de red hacia la Ethernet
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# Ruta por defecto al resto de Internet
route add default ppp0
#
# Hace que todas las máquinas de la red 192.168.1/24 sean
# enmascarados
ipchains -A forward -s 192.168.1.0/24 -j MASQ

Puede obtener más información sobre Enmascarado IP de Linux en la página de recursos de IP Masquerade http://www.hwy401.com/achau/ipmasq. También hay un documento muy detallado que habla sobre enmascaramiento, que es el IP-Masquerade-Como (que también enseña a configurar otros sistemas operativos para trabajar teniendo un Linux como servidor enmascarador).

6.10 Proxy IP transparente

El proxy transparente de IP es una característica que le permite redirigir servidores o servicios destinados a otra máquina a esos servicios en esta máquina. Normalmente esto es útil cuando tiene un Linux como encaminador que además proporciona un servidor proxy. Debería redirigir todas las conexiones destinadas a este servicio de forma remota al servidor local de proxy.

Opciones de Compilación del Núcleo:

    Code maturity level options  --->
        [*] Prompt for development and/or incomplete code/drivers
    Networking options  --->
        [*] Network firewalls
        ....
        [*] TCP/IP networking
        ....
        [*] IP: firewalling
        ....
        [*] IP: transparent proxy support (EXPERIMENTAL)

La configuración de la característica de proxy transparente se realiza mediante la orden ipfwadm.

Un ejemplo que podría ser útil es el siguiente:

root# ipfwadm -I -a accept -D 0/0 telnet -r 2323

Este ejemplo hará que cualquier intento de conexión al puerto telnet (23) por parte de otra máquina sea redirigida al puerto 2323 de esta máquina. Si tiene un servicio activo en ese puerto, podría redirigir las conexiones telnet, hacer un registro de lo que pasa, o cualquier cosa que se ajuste a sus necesidades.

Un ejemplo más interesante es redirigir todo el tráfico http a través de un almacén caché local. Sin embargo, el protocolo usado por los servidores proxy es diferente al http nativo: mientras que un cliente conecta a www.servidor.com:80 y pregunta por /camino/página, cuando conecta a la caché local busca proxy.dominio.local:8080 y pregunta por www.servidor.com/camino/página.

Para filtrar una petición http a través del proxy local, necesitará adaptar el protocolo insertando un pequeño servidor llamado transproxy (lo puede encontrar en la web). Si quiere puede ejecutarlo en el puerto 8081, y ejecutar esta orden:

root# ipfwadm -I -a accept -D 0/0 80 -r 8081

Entonces, el programa transproxy recibirá todas las conexiones que tengan que alcanzar servidores externos y las pasará al proxy local arreglando las diferencias de protocolo.

6.11 IPv6

¡Justo ahora que creía que empezaba a entender las redes IP las reglas cambian! IPv6 es la notación abreviada de la versión 6 del Internet Protocol. IPv6 fue desarrollada principalmente para responder a los temores de la comunidad de Internet al respecto de que pronto habrá escasez de direcciones IP para asignar. Las direcciones IPv6 son de 16 bytes (128 bits). IPv6 incorpora varios cambios más, en su mayor parte simplificaciones, que harán que las redes IPv6 sean más manejables que las IPv4.

Linux ya tiene una implementación de IPv6 que funciona, pero no está completa, a partir de la serie de núcleos 2.2.*.

Si quiere experimentar con esta próxima generación de tecnología de Internet, o le hace falta, debería leerse la IPv6-FAQ que está disponible en http://www.terra.net/ipv6.

6.12 Mobile IP

El término movilidad de IP describe la habilidad de una máquina que es capaz de mover su conexión de red de un punto de Internet a otro sin cambiar su dirección IP o perder conectividad. Normalmente cuando una máquina con IP cambia su punto de conexión también debe cambiar su dirección IP. La Movilidad de IP soluciona este problema asignando una IP fija a la máquina móvil y usando encapsulación IP (tunneling) con encaminado automático para asegurar que los datagramas destinados a ella se encaminan a la verdadera dirección IP que esté usando en ese momento.

Está en camino un proyecto para proporcionar un juego completo de herramientas de movilidad de IP para Linux. El estado del proyecto y las herramientas los puede obtener de la página principal de Linux Mobile IP http://anchor.cs.binghamton.edu/~mobileip.

6.13 Multicast

IP Multicast permite encaminar datagramas IP hacia a un número arbitrario de máquinas con IP de forma simultánea. Este mecanismo se explota para proporcionar material de amplia distribución por Internet como transmisiones de imagen y sonido y otras aplicaciones noveles.

Opciones de Compilación del Núcleo:

     Networking options  --->
         [*] TCP/IP networking
         ....
         [*] IP: multicasting
 

Esto requiere un conjunto de herramientas y algo de configuración de la red. Una fuente de información sobre cómo instalar y configurar esto para Linux la encontramos en http://www.teksouth.com/linux/multicast.

6.14 NAT - Network Address Translation (Traducción de direcciones de red)

El servicio de Traducción de Direcciones de Redes IP es algo así como el hermano mayor estandarizado del servicio de Enmascarado IP de Linux. Está especificado con cierto detalle en el RFC-1631 en su archivo RFC más próximo. NAT proporciona características que no posee el Enmascarado IP que lo hacen eminentemente más apropiado para su uso en los diseños de encaminamiento de cortafuegos corporativos y en instalaciones a mayor escala.

Michael Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de, ha desarrollado una implementación alfa de NAT para el núcleo 2.0.29 de Linux. La documentación e implementación de Michaels está disponible en: la página Web de Linux IP Network Address http://www.csn.tu-chemnitz.de/HyperNews/get/linux-ip-nat.html

Los núcleos más modernos de Linux 2.2.x también incluyen algo de la funcionalidad NAT en el algoritmo de encaminamiento.

6.15 Traffic Shaper (Manipulación del ancho de banda)

El traffic shaper (regulador de caudal) es un controlador que crea nuevas interfaces de red, las cuales tienen una limitación en el caudal, definida por el usuario, y que actúan sobre una interfaz de red física para hacer la comunicación real, pudiendo ser utilizadas por el encaminador para el tráfico saliente.

El regulador fue introducido con Linux-2.1.15 y fue portado a Linux-2.0.36 (apareció en el 2.0.36-pre-patch-2 distribuido por Alan Cox, el autor del dispositivo regulador y mantenedor de Linux-2.0).

El regulador de caudal sólo puede ser compilado como módulo y para configurarlo se usa el programa shapecfg con órdenes como las siguientes:

shapecfg attach shaper0 eth1
shapecfg speed shaper0 64000

El dispositivo regulador sólo puede controlar el ancho de banda del tráfico de salida, ya que los paquetes son transmitidos a través suyo de acuerdo con las tablas de rutas; sin embargo, una funcionalidad de rutas por dirección de origen podría ayudar a limitar el ancho de banda global de máquinas específicas que estén usando un encaminador Linux.

Linux-2.2 implementa también ese tipo de encaminamiento, y si lo necesita en Linux-2.0, busque el parche de Mike McLagan, en ftp://ftp.invlogic.com. Lea Documentation/networking/shaper.txt si desea más información al respecto del shaper.

Si quiere probar un intento de regulación de caudal de paquetes entrantes, use rshaper-1.01 (o más nuevo). Lo encontrará en ftp://ftp.systemy.it/pub/develop.

6.16 Encaminamiento con Linux-2.2

La última versión de Linux, la 2.2, ofrece mucha flexibilidad en lo que a política de encaminamiento se refiere. Desafortunadamente, deberá esperar a la siguiente versión de este Como, o acudir a las fuentes del núcleo.

7 opiniones

como le hago para compartir carpeta de linux mint a linux mint

porfavor respondan mi examen es mañana y tengo que hacerlo
Miguel

Cosa fina
instalacion

informacion
Felicitaciones.

El curso esta super bueno e interesante; lo recomiendo; aunque falta algo con dhcp.
Manual.

Bastante amplio me parecen buenos todos los temas.
1 2 | siguiente >

Tutoriales relacionados con 'Redes en Linux'

Este Cómo es la base para entender la evolución de las capacidades de Linux para... Más »
A lo largo de este trabajo se va a intentar hacer un repaso de los... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »

Autor y licencia de 'Redes en Linux'

The NET-3-HOWTO, information on how to install and configure networking support for Linux. Copyright (c) 1997 Terry Dawson, 1998 Alessandro Rubini, 1999 {POET} - LinuxPorts. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.