Sondeo

Escritorios alternativos Linux

¿Cuál prefieres?

  •  Xfce
  •  LXDE
  •  Razor-qt
  •  Enlightenment 0.17

Resultados
Other polls | 2,824 voters | 2 comentarios
· Próximas fechas Curso Global de Servidores con CentOS 6.
· Taller de programación de Python.
· Curso de programación de PHP.
· Prueba ALDOS 1.4.5. Nuestro sistema operativo para escritorio.

Configuración de red.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2014 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción

Configurar la red en GNU/Linux requiere se entiendan perfectamente los fundamentos de IP versión 4 y saber cómo utilizar cualquier editor de texto simple.

En CentOS y Red Hat™ Enterprise Linux la detección de las tarjetas de red es automática mientras se trate de dispositivos soportados. Para consultar la lista de dispositivos compatibles, visite hardware.redhat.com.

Procedimientos

Nombres de los dispositivos.

Las más recientes versiones de CentOS, Fedora™ y Red Hat™ Enterprise Linux utilizan un nuevo esquema para los nombres de los dispositivos de red. Los nombres se basan sobre su ubicación física con la finalidad de facilitar su identificación. Los dispositivos de red integrados a la tarjeta madre utilizan el esquema em[1,2,3,4...]; los dispositivos PCI utilizan el esquema p[ranura PCI]p[puerto ethernet] y —en el caso de dispositivos virtuales— p[ranura PCI]p[puerto ethernet]_[interfaz virtual]. Ejemplos:

  • em1 corresponde al primer dispositivo de red integrado en la tarjeta madre.
  • em2 corresponde al segundo dispositivo de red integrado en la tarjeta madre.
  • em3 corresponde al tercer dispositivo de red integrado en la tarjeta madre.
  • p1p1 corresponde al dispositivo de red en la primera ranura PCI, primer puerto ethernet.
  • p2p1 corresponde al dispositivo de red en la segunda ranura PCI, primer puerto ethernet.
  • p3p1 corresponde al dispositivo de red en la tercera ranura PCI, primer puerto ethernet.
  • p3p2 corresponde al dispositivo de red en la tercera ranura PCI, segundo puerto ethernet.
  • p3p2_1 corresponde al dispositivo de red en la tercera ranura PCI, segundo puerto ethernet, primer dispositivo virtual.

El nuevo esquema de nombres sólo aplica para sistemas que implementan SMBIOS versión 2.6 y tablas 9 y 41. Puede cotejarse la versión de SMBIOS ejecutando como usuario root lo siguiente:

biosdecode

Pueden determinarse los dispositivos de red presentes en el sistema revisando el contenido del directorio /sys/class/net/:

ls /sys/class/net/

Puede consultarse la asignación de nombres de dispositivos de red presentes en el sistema, a través del archivo /etc/udev/rules.d/70-persistent-net.rules.

vi /etc/udev/rules.d/70-persistent-net.rules

Si se dispone de SMBIOS 2.6 y tablas 41 y 9, para hacer uso del nuevo esquema de nombres en sistemas que fueron actualizados desde una versión anterior de CentOS, Fedora™ y Red Hat™ Enterprise Linux, sólo es necesario eliminar este archivo y reiniciar el sistema.

NetworkManager.

A partir de CentOS 5 y Red Hat™ Enterprise Linux 5, se incluye NetworkManager como una implementación alternativa para la gestión de las conexiones de red desde la interfaz gráfica de usuario. En éstos, NetworkManager viene desactivado de modo predeterminado.

En CentOS 6 y Red Hat™ Enterprise Linux 6, NetworkManager viene activo de modo predeterminado, salvo que se haga la instalación mínima o la instalación básica de servidor.

Si se desea impedir que NetworkManager gestione algún dispositivo de red en particular y que éste sea gestionado por el servicio network, edite el archivo de configuración correspondiente al dispositivo a utilizar. Asumiendo que se trata del dispositivo eth0, ejecute:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Modifique el valor de la variable NM_CONTROLLED y establezca no como valor de éste. Ejemplo:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
HWADDR=44:87:FC:AA:DD:2D
NM_CONTROLLED=no
IPADDR=192.168.70.101
NETMASK=255.255.255.128
GATEWAY=192.168.70.1
DOMAIN=dominio.tld
DNS1=8.8.8.8
DNS2=8.8.4.4

Para aplicar los cambios, ejecute lo siguiente:

service network restart

En adelante, mientras esté establecido NM_CONTROLLED=no en la configuración del dispositivo de red, NetworkManager ignorará ésta por completo.

Si quiere prescindir del uso de NetworkManager, también se puede desactivar por completo este servicio, siendo que su uso sólo tiene sentido en una computadora portátil que se conecta a múltiples redes inalámbricas o bien un sistema escritorio donde se quiere permitir al usuario regular poder controlar los dispositivos de red.

Para desactivar NetworkManager, ejecute lo siguiente:

chkconfig NetworkManager off
service NetworkManager stop

Asignación de valores de las opciones de red.

Nombre del anfitrión (HOSTNAME).

Edite el archivo /etc/hosts:

vi /etc/hosts

Respete la configuración de la resolución de retorno del sistema. Añada el nombre de anfitrión del sistema y asocie éste a alguna de las direcciones IP locales. Ejemplo:

127.0.0.1	localhost.localdomain	localhost
::1 localhost6.localdomain6 localhost6
192.168.70.101 nombre.dominio.tld nombre

El nombre del anfitrión (hostname) debe ser un FQDN (acrónimo de Fully Qualified Domain Name o Nombre de Dominio Plenamente Calificado) resuelto por un servidor de nombres de domino (DNS). Puede definir éste editando el archivo /etc/sysconfig/network:

vi /etc/sysconfig/network

Cambie el valor de la variable HOSTNAME por el nombre de anfitrión que corresponda. Tome en cuenta que el nombre de anfitrión deberá estar resuelto cuando menos en el archivo /etc/hosts, y, si es posible, también en un servidor DNS.

NETWORKING=yes
HOSTNAME=nombre.dominio.tld

A partir de CentOS 6 y Red Hat™ Enterprise Linux 6, la variable HOSTNAME puede ser establecida en el archivo de configuración de cualquier dispositivo de red del sistema (por ejemplo /etc/sysconfig/network-scripts/ifcfg-eth0), en lugar del archivo /etc/sysconfig/network.

Asumiendo que se utilizará el dispositivo eth0, edite el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Ejemplo:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=192.168.70.101
NETMASK=255.255.255.128
GATEWAY=192.168.70.1
HOSTNAME=nombre.dominio.tld

Para aplicar los cambios, ejecute lo siguiente:

service network restart

Dirección IP, máscara de sub-red y puerta de enlace.

Las variables a asignar son BOOTPROTO con el valor static —dirección IP estática— o bien dhcp —dirección IP asignada por un servidor DHCP—, IPADDR definiendo colo valor de ésta la dirección IP, NETMASK definiendo como valor de ésta la máscara de sub-red en formato octal y GATEWAY definiendo como valor la puerta de enlace correspondiente.

Asumiendo que se utilizará el dispositivo eth0, edite el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Ejemplo:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=192.168.70.101
NETMASK=255.255.255.128
GATEWAY=192.168.70.1

En lugar de la variable NETMASK con un valor octal, puede utilizar la variable PREFIX con la máscara de sub-red en formato CIDR.

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=192.168.70.101
PREFIX=25
GATEWAY=192.168.70.1

Los valores de las variables anteriores son proporcionados por el administrador de la red local en donde se localice el sistema que esté siendo configurado o bien definidos de acuerdo a una planificación previamente establecida. El administrador de la red deberá proporcionar una dirección IP disponible (IPADDR) y una máscara de la sub-red (NETMASK o PREFIX).

Para aplicar los cambios, ejecute lo siguiente:

service network restart

Servidores de nombres.

Hay dos variables a configurar: dominio de búsqueda predeterminado y al menos un servidor de nombres. En CentOS 6 y Red Hat™ Enterprise Linux 6, se pueden establecer añadiendo al archivo de configuración de cualquier dispositivo de red, las variables DOMAIN, DNS1, DNS2 y DNS3.

Asumiendo que se utilizará el dispositivo eth0, edite el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Ejemplo:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=192.168.70.101
PREFIX=25
GATEWAY=192.168.70.1
DOMAIN=dominio.tld
DNS1=8.8.8.8
DNS2=8.8.4.4

Para aplicar los cambios, ejecute lo siguiente:

service network restart

Lo anterior actualizará automáticamente el archivo /etc/resolv.conf con el contenido que corresponda.

En CentOS 5 y Red Hat™ Enterprise Linux 5 (y versiones anteriores de éstos), edite al archivo /etc/resolv.conf:

vi /etc/resolv.conf

Establezca o confirme los servidores del sistema de resolución de nombres de dominio (DNS). Ejemplo:

search dominio.tld
nameserver 8.8.8.8
nameserver 8.8.4.4

Si se modifica directamente el archivo /etc/resolv.conf los cambios aplican de manera inmediata, sin necesidad de reiniciar el servicio network.

Rutas estáticos.

Las rutas estáticas se pueden añadir ejecutando ip, utilizando la siguiente sintaxis:

ip route add [red]/[máscara] via [puerta-de-enlace] dev [dispositivo]

En el siguiente ejemplo se definirá la ruta estática hacia la red 192.168.3.0 con máscara de 25 bit (255.255.255.128), puerta de enlace a través de la dirección IP 172.16.1.36 y a través del dispositivo de red eth1:

ip route add 192.168.3.0/25 via 172.16.1.36 dev eth1

Es un requisito que la puerta de enlace de destino sea alcanzable desde el dispositivo utilizado. Será imposible establecer una ruta estática si es imposible alcanzar la puerta de enlace necesaria. Si sólo se ejecuta ip y se reinicia el servicio network, los cambios se perderán.

Si se requiere establecer las rutas estáticas adicionales para obtener conectividad con otras redes y que las configuraciones correspondientes sean permanentes, se pueden generar archivos para cada dispositivo de red que sea necesario, en donde se establecen los valores para puerta de enlace, red a la que se quiere acceder y la máscara de sub-red correspondiente. Los archivos se deben generar dentro del directorio /etc/sysconfig/network-scripts/ como route-[dispositivo] y deben llevar el siguiente formato:

GATEWAY0=nnn.nnn.nnn.nnn
ADDRESS0=nnn.nnn.nnn.nnn
NETMASK0=nnn.nnn.nnn.nnn

En lugar de la variable NETMASK, se puede utilizar la variable PREFIX, definiendo la máscara en formato CIDR. Ejemplo:

GATEWAY0=nnn.nnn.nnn.nnn
ADDRESS0=nnn.nnn.nnn.nnn
PREFIX0=nn

Por citar un ejemplo, imaginemos que nos encontramos dentro de la red 192.168.70.0/25 y se requiere establecer conectividad con las redes 172.16.2.0 y 172.16.3.0, con máscaras 255.255.255.240 (28 bit), a través de las puertas de enlace o enrutadores o encaminadores con direccines IP 192.168.1.2 y 192.168.1.3, correspondientemente para cada red citada, a través del primer dispositivo Ethernet del anfitrión local (eth0).

Genere el archivo /etc/sysconfig/network-scripts/route-eth0 utilizando un editor de texto:

vi /etc/sysconfig/network-scripts/route-eth0

La configuración para el escenario descrito arriba, sería la siguiente:

GATEWAY0=192.168.1.2
ADDRESS0=172.16.2.0
PREFIX0=28
GATEWAY1=192.168.1.3
ADDRESS1=172.16.3.0
PREFIX1=28

Para aplicar los cambios y poder hacer las comprobaciones correspondientes, ejecute lo siguiente:

service network restart

Función de Reenvío de paquetes para IP versión 4.

Si dispone de al menos 2 dispositivos de red y se tiene planeado implementar un NAT o DNAT, se debe habilitar el reenvío de paquetes para IP versión 4. Esto se realiza editando el archivo /etc/sysctl.conf y estableciendo 1 para activar o bien dejar 0 para mantener inactivo:

vi /etc/sysctl.conf

Y cambiando net.ipv4.ip_forward = 0 por net.ipv4.ip_forward = 1:

net.ipv4.ip_forward = 1

Ejecutar lo siguiente para aplicar el cambio sin reiniciar el sistema:

sysctl -w net.ipv4.ip_forward=1

Herramientas para el intérprete de mandatos.

Después de haber configurado todos los valores de las variables de red deseadas, reinicie el servicio network, ejecutando lo siguiente:

service network restart

Ejecute ping hacia cualquier dirección de la red local para tal fin para comprobar la conectividad.

ping -c3 192.168.70.1

La opción -c3 indica que sólo se harán 3 pings hacia la dirección IP de destino.

Para ver la información de todos los dispositivos de red del sistema, se ejecuta lo siguiente:

ip addr show

En el pasado lo anterior se hacía utilizando ifconfig.

Para ver la información de un dispositivo de red específico, eth0 en el siguiente ejemplo, se ejecuta lo siguiente:

ip addr show eth0

En el pasado lo anterior se hacía ejecutando ifconfig eth0.

Para ver la información de estado de todos los dispositivos de red del sistema, se ejecuta lo siguiente:

ip link show

Para ver la información de estado de de un dispositivos de red en particular, eth0 en el siguiente ejemplo, se ejecuta lo siguiente:

ip link show eth0

Para detener un dispositivo de red, eth0 en el ejemplo, se ejecuta lo siguiente:

ip link set eth0 down

En el pasado lo anterior se hacía ejecutando ifdown eth0.

Para iniciar un dispositivo de red, eth0 en el ejemplo, se ejecuta lo siguiente:

ip link set eth0 up

En el pasado lo anterior se hacía ejecutando ifup eth0.

Para eliminar todos los valores de las variables de red de un dispositivo específico, eth0 en el ejemplo, se ejecuta lo siguiente.

ip addr flush dev eth0

Para añadir una dirección IP a un dispositivo, eth0 en el siguiente ejemplo, se ejecuta lo siguiente.

ip addr add 192.168.70.61/25 dev eth0

Para eliminar una dirección IP a un dispositivo, eth0 en el siguiente ejemplo, se ejecuta lo siguiente.

ip addr del 192.168.70.61/25 dev eth0

Ejecute lo siguiente para ver las rutas estáticas:

ip route list

En el pasado lo anterior se hacía ejecutando route.

Para eliminar todas las rutas estáticas dependientes sólo del dispositivo eth0, se ejecuta lo siguiente:

ip route flush dev eth0

Para cambiar o establecer la puertas de enlace predeterminada del sistema, 192.168.70.1 en el siguiente ejemplo, a través del dispositivo eth0, se ejecuta lo siguiente:

ip route add default via 192.168.70.1 dev eth0

Haga una consulta hacia los servidores DNS definidos para el sistema Para comprobar si hay resolución de nombres:

host mx.yahoo.com

Direcciones IP secundarias

Las direcciones IP secundarias sirven para que el sistema responda para más de una dirección IP a través del mismo dispositivo de red. Son útiles en los casos en los cuales se tiene un servicio de hospedaje de páginas de Internet y se desea que cada sitio tenga su propia dirección IP. También son útiles en los muros cortafuegos donde se quiere que un conjunto de equipos salgan hacia Internet enmascarados con una dirección IP (una LAN, por ejemplo) y otro conjunto de equipos lo hagan con una dirección IP distinta (una DMZ, por ejemplo).

El primer paso es modificar los valores de las variables IPADDR y NETMASK de la dirección IP principal, precediendo a éstos el número cero:

IPADDR0=192.168.70.101
NETMASK0=255.255.255.128

Añada la dirección IP secundaria y la máscara de sub-red en la variables IPADDR1 y NETMASK1 (o bien PREFIX1 si prefiere el formato CIDR) del siguiente modo:

IPADDR0=192.168.70.101
NETMASK0=255.255.255.128
IPADDR1=192.168.70.31
NETMASK1=255.255.255.128

Para agregar otra dirección IP secundaria, se añade otro conjunto de variables IPADDR y NETMASK, precedidos con el siguiente número consecutivo:

IPADDR0=192.168.70.101
NETMASK0=255.255.255.128
IPADDR1=192.168.70.31
NETMASK1=255.255.255.128
IPADDR2=192.168.70.41
NETMASK2=255.255.255.128

Puede utilizar PREFIX en lugar de NETMASK, definiendo la máscara de sub-red en formato CIDR.

IPADDR0=192.168.70.101
PREFIX0=25
IPADDR1=192.168.70.31
PREFIX1=25
IPADDR2=192.168.70.41
PREFIX2=25

Para aplicar los cambios y poder hacer las comprobaciones correspondientes, ejecute lo siguiente:

service network restart

La comprobación, tras ejecutar ip addr show, deberá regresar algo como lo siguiente

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:23:5a:4b:e8:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.70.101/25 brd 192.168.70.127 scope global eth0
    inet 192.168.70.31/25 scope global secondary eth0
    inet 192.168.70.41/25 scope global secondary eth0
    inet6 fe80::223:5aff:fe4b:e843/64 scope link 
       valid_lft forever preferred_lft forever

La función Zeroconf.

De modo predeterminado y a fin de permitir la comunicación entre dos diferentes sistemas a través de un cable RJ45 cruzado (crossover), el sistema tiene habilitado Zeroconf, también conocido como Zero Configuration Networking o Automatic Private IP Addressing (APIPA). Es un conjunto de técnicas que automáticamente gestionan la asignación de direcciones IP sin necesidad de configuración de servidores especiales. Permite a usuarios sin conocimientos de redes conectar computadoras, impresoras en red y otros artículos entre sí.

Sin Zeroconf los usuarios sin conocimientos tendrían que configurar servidores especiales como DHCP y DNS para poder establecer conectividad entre dos equipos.

Estando habilitado Zeroconf, se mostrará un registro en la tabla de rutas estáticas para la red 169.254.0.0 al ejecutar ip route list:

ip route list

Lo anterior devolverá una salida similar a la siguiente:

192.168.70.0/25 dev eth0  proto kernel  scope link  src 192.168.70.101
169.254.0.0/16 dev eth0  scope link  metric 1002
default via 192.168.70.1 dev eth0

Si se desea desactivar Zeroconf, edite el archivo /etc/sysconfig/network:

vi /etc/sysconfig/network

Añada la variable NOZEROCONF con el valor yes:

NETWORKING=yes
HOSTNAME=nombre.dominio.tld
NOZEROCONF=yes

Al terminar, reinicie el servicio network, a fin de que surtan efecto los cambios:

service network restart

Para comprobar, ejecute de nuevo ip route list:

ip route list

Lo anterior deberá devolver una salida similar a la siguiente, en la cual la ruta para Zeroconf ha desaparecido:

192.168.70.0/25 dev eth0  proto kernel  scope link  src 192.168.70.101
default via 192.168.70.1 dev eth0

Una vez hecho lo anterior, existen dos servicios en el sistema en CentOS y Red Hat™ Enterprise Linux 5 y versiones posteriores, que se pueden desactivar puesto que sirven para establecer la comunicación a través de Zeroconf, estos son avahi-daemon y avahi-dnsconfd. Desactivar estos dos servicios ahorrará tiempo en el arranque y se consumirán algunos pocos menos recursos de sistema.

chkconfig avahi-dnsconfd off
chkconfig avahi-daemon off
service avahi-dnsconfd stop
service avahi-daemon stop

Muchas aplicaciones y componentes para el modo gráfico dependen de Zeroconf para su correcto funcionamiento. Por tanto, es poco conveniente desactivar este soporte en un sistema de escritorio.

Para más detalles acerca de Zeroconf, puede consultarla información disponible en:

Por favor continúe con el documento de ejercicios de este tema.

Última Edición: 28/05/2014, 09:26|Hits: 154,367 Ver la versión para imprimir