# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Configurar una VLAN en Linux con vconfig


La forma más conocida de configurar una VLAN en Linux es la de copiar el fichero de configuración de la interfaz y añadir/cambiar ciertos parámetros, ejemplo en RHEL asumiendo el ID 80 para la VLAN:

# cp -p /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.80
# vim /etc/sysconfig/network-scripts/ifcfg-eth0.80
    # Añadimos:
    VLAN=yes
    # Cambiamos el dispositivo:
    DEVICE=eth0.80
# /etc/init.d/network restart

El comando vconfig nos simplifica un poco la tarea de gestionar una o varias VLAN. Para el ejemplo anterior, sería tan sencillo como:

# vconfig add eth0 80
Added VLAN with VID == 80 to IF -:eth0:-

Ya tenemos la interfaz creada:

# ifconfig eth0.80
eth0.80   Link encap:Ethernet  HWaddr 08:00:27:E7:48:CC
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Podemos ver información detallada sobre ella en /proc/net/vlan/:

# cat /proc/net/vlan/eth0.80
eth0.80  VID: 80	 REORDER_HDR: 1  dev->priv_flags: 1
         total frames received            0
          total bytes received            0
      Broadcast/Multicast Rcvd            0

      total frames transmitted            0
       total bytes transmitted            0
            total headroom inc            0
           total encap on xmit            0
Device: eth0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings:

Podríamos asignarle la IP con el comando ifconfig:

# ifconfig eth0.80 192.168.1.222 netmask 255.255.255.0

Y si quisiéramos eliminar la interfaz:

# ifconfig eth0.80 down && vconfig rem eth0.80

Recordad que tiene que estar cargado en el kernel el módulo 8021q:

# lsmod | grep 8021q
8021q                  19491  0
garp                    5901  1 8021q

En fin, ¡para gustos los colores!

ifup e ifdown en FreeBSD


Para aquellos que estéis acostumbrados a trabajar con servidores Linux y de vez en cuando tengáis que lidiar con algún FreeBSD es posible que llegado el momento no encontréis la forma de arrancar o parar las interfaces de red.

En FreeBSD no encontraréis los comandos ifup o ifdown. En su lugar, podéis utilizar netif:

# /etc/rc.d/netif
Usage: /etc/rc.d/netif [fast|force|one](start|stop|restart|rcvar|cloneup|clonedown)

La propia ayuda del comando os indica como gestionar las interfaces de red, básicamente es ejecutar el comando seguido de la opción y seguido de la interfaz a gestionar.

Arrancar la interfaz bce0

#  /etc/rc.d/netif start bce0

Parar la interfaz bce0

# /etc/rc.d/netif stop bce0

Y así con el resto de opciones.

Cómo configurar tarjetas de red en Debian / Ubuntu


Vamos a ver cómo configurar las interfaces/tarjetas de red en sistemas GNU/Linux Debian (como por ejemplo Ubuntu) a través del fichero interfaces. Normalmente si disponemos de entorno gráfico solemos hacerlo a través de GUI pero nunca viene mal, para el caso de que este fallo o que no lo tengamos saber hacerlo desde los ficheros de configuración.

Lo primero que tenemos que saber es que el fichero de configuración en el que se almacena toda esta información es /etc/network/interfaces. Este fichero se puede dividir en “bloques” a través de los cuales definimos parámetros de configuración a cada una de las interfaces. Un ejemplo básico de configuración en un equipo de escritorio sería el siguiente:

Interfaz de red configurada con DHCP

auto eth0
iface eth0 inet dhcp

Este ejemplo implica una configuración en la que la interfaz de red eth0 está configurada para que arranque automáticamente y a través de DHCP. Lo primero que definimos cuando configuramos una interfaz es si queremos que arranque automáticamente con el sistema, para ello indicamos auto seguido del nombre de la interfaz. Después mediante iface definimos los parámetros de configuración de la interfaz de red, la estructura es la siguiente:

iface <nombre de la interfaz de red> <protocolo> <tipo de asignamiento IP>

Con esto ya tendríamos configurada nuestra tarjeta de red mediante DHCP

Interfaz de red configurada con IP estática

En equipos de escritorio rara vez configuramos nuestra red mediante IP estática, pero en servidores y otros sistemas es el método a utilizar. Una estructura básica de configuración de interfaz de red con IP estática es la siguiente, pasamos a explicarla:

auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8

Como podéis ver seguimos la misma estructura, en este caso utilizamos la interfaz eth1, la configuramos para que levante con el sistema (auto eth1) y pasamos a definir mediante iface todos los parámetros de red, que en este caso engloban la IP asignada a la interfaz (192.168.0.120), su máscara de red (255.255.255.0), la red en la que se encuentra (192.168.0.0), la IP asignada para Broadcast en la red (192.168.0.255), la puerta de enlace o router (192.168.0.1) y los servidores DNS (8.8.8.8).

Podríamos combinar ambos ejemplos si por ejemplo tuviéramos un equipo con dos tarjetas de red y quisiéramos asignar una mediante DHCP y otra con IP estática:

# Interfaz de red por DHCP
auto eth0
iface eth0 inet dhcp
# Interfaz de red con IP estática
auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8

Como podréis imaginar, esto es lo más básico, podemos hacer otras cosas como asignar IPs virtuales o alias, añadir rutas estáticas permanentes, etc.

Interfaz de red configurada con IP estática y alias

Para asignar un alias tenemos que definir primero la interfaz principal. Si tomamos como ejemplo la configuración anterior para IP estática, podemos añadir a la interfaz un alias y así poder tener dos IPs distintas a través de una única tarjeta de red:

# Interfaz principal
auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8
# Alias
auto eth1:1
iface eth1:1 inet static
       address 192.168.0.121
       netmask 255.255.255.0
       network 192.168.0.0
       broadcast 192.168.0.255
       gateway 192.168.0.1
       dns-nameservers 8.8.8.8

Una vez que hayamos finalizado la configuración, podemos reiniciar la red por completo o levantar manualmente la interfaz que queramos con el comando ifup:

Reiniciar toda la red

# /etc/init.d/networking restart

Levantar por separado cada interfaz

# ifup eth0

Averiguar información sobre las tarjetas de red de nuestro sistema

Mediante dmesg podéis averiguar tanto el nombre de interfaz como cuantas tarjetas de red tiene el equipo, su modelo, etc. Aquí tenéis un ejemplo en el que encontramos dos tarjetas de red a las que se les ha asignado los nombres eth0 y eth1:

# dmesg | grep eth

e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
e1000: eth1: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
eth0: no IPv6 routers present
eth1: no IPv6 routers present

Cómo configurar tarjetas de red en Red hat Enterprise, CentOS y Fedora Core


Existen tres modos para configurar tarjetas de red en sistemas operativos Red Hat 5 y CentOS 5. Nos vamos a centrar en dos, las cuales son modificando manualmente los ficheros de configuración de las tarjetas de red, y la otra mediante una interfaz GUI basada en texto. Para la tercera sería necesario disponer de X.

Configurar tarjetas de red mediante GUI interfaz basada en texto:

Introducimos el siguiente comando en nuestra shell:

system-config-network-tui

Accederemos a la interfaz basada en texto, donde tendremos la opción de configurar las tarjetas de red de nuestro equipo, en este caso vemos dos, la eth0 y la eth1:

Configurar tarjetas de red Red Hat CentOS Fedora

Elegimos la tarjeda de red que queremos configurar, en este caso la eth0, a la cual le vamos a asignar IP estática , máscara y puerta de enlace, aquí ya entra la configuración que deseemos establecer a cada tarjeta de red:

Configurar tarjetas de red Red Hat CentOS Fedora

Salimos de la interfaz, y reiniciamos la red:

/etc/init.d/network restart

Configurar tarjetas de red manualmente, modificando ficheros de configuración:

Los ficheros de configuración de las tarjeras de red se encuentran en

cd /etc/sysconfig/network-scripts/, accedemos a dicha ruta:
cd /etc/sysconfig/network-scripts/

Veréis que los ficheros de configuración son del tipo ifcfg-eth0, ifcfg-eth1. abrimos el fichero de la tarjeta a configurar en este caso la eth0:

 vi ifcfg-eth0

Configuramos en función de nuestras necesidades, en los comentarios véis lo que es cada línea (he usado valores ficticios):

# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
BROADCAST=22.23.112.255
HWADDR=01:09:4B:7F:6C:E3  # Dirección MAC
IPADDR= 64.34.55.50  # Ip de la interfaz de red
NETMASK= 255.255.255.0  # Máscara de red
NETWORK= 64.34.55.0 # Red en la que se encuentra
ONBOOT=yes  # Arranque automático al inicio del sistema
GATEWAY= 64.34.55.1 # Puerta de enlace
TYPE=Ethernet

Reiniciamos la red:

/etc/init.d/network restart

Para ambos casos, especificaremos nuestro HostName y Puerta de enlace en el siguiente fichero:

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.rm-rf.es
GATEWAY=64.34.55.1

Y finalmente, recordad configurar unos servidores DNS válidos para el equipo (valores ficticios):

vi /etc/resolv.conf
nameserver 80.58.0.33
nameserver 95.112.45.43

Vuestro equipo ya debería responder a ping con los servidores de la misma red, y si habéis configurado la tarjeta para salir a Internet, deberíais tener ping a webs, y una resolución DNS correcta (resolver otros Hostnames)-