viernes, enero 12, 2007

Configuración avanzada de TCP/IP en Linux(II): Gestión de dispositivos de red (ip link)

Con el nuevo esquema de gestión de dispositivos de red, las funciones que realiza el comando ifconfig pasan a estar ahora integradas en ip, concretamente cuando se utiliza el objeto link
[root@xxxx ~]# ip link help
Usage: ip link set DEVICE { up | down |
                             arp { on | off } |
                             dynamic { on | off } |
                             multicast { on | off } |
                             allmulticast { on | off } |
                             promisc { on | off } |
                             trailers { on | off } |
                             txqueuelen PACKETS |
                             name NEWNAME |
                             address LLADDR | broadcast LLADDR |
                             mtu MTU }
       ip link show [ DEVICE ]
Como podemos ver, existen dos órdenes fundamentales. La set que permite establecer parámetros, que lleva como parámetro obligatorio sobre el dispositivo que queremos actuar y la orden show que nos da información sobre los dispositivos, admitiendo como parámetro opcional el dispositivo sobre el cual queremos obtener información. En caso contrario lo muestra todo:
ip link show
1: lo:  mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: sit0:  mtu 1480 qdisc noop 
    link/sit 0.0.0.0 brd 0.0.0.0
Como podemos ver, la primera nos da el índice de la interfaz - que es único en todo el kernel -, el nombre del dispositivo, que puede cambiarse con ip link set. Entre < y > están los flags que tiene esa intefaz activa. También permite ver la mtu de la interfaz, la disciplina de cola que está usando, así como la la longitud de cola que permite.

La lista de flags que tiene cada interfaz es la siguiente:

  • UP: La interfaz está levantada.
  • DOWN: La interfaz está bajada.
  • LOOPBACK: Es una interfaz interna - la clásica 127.0.0.1 -, usada para comunicarse entre sí procesos en la misma máquina que usa TCP/IP.
  • BROADCAST: El dispositivo permite mandar tramas de broadcast, es decir, tramas que alcancen a todas las máquinas conectadas a un mismo medio compartido. Por ejemplo la ethernet soporta broadcast y tendrán este flag activado.
  • POINTTOPOINT: Se trata de un dispositivo punto a punto, como es un enlace ppp.
  • MULTICAST: El dispositivo permite mandar una trama a algunos de los dispositivos conectados al mismo medio compartido - aunque ya sea punto a punto o broadcast (difusión), siempre existe esta funcionalidad -. Este flag es informativo.
  • PROMISC: El dispositivo se encuentra en modo promiscuo, es decir, captura todo el tráfico que va por el enlace.
  • ALLMULTI: El dispositivo recibe todo los paquetes multicast que van por el medio.
  • NOARP: El dispositivo no necesita averiguar cual es la dirección de enlace para mandar paquetes, aunque la interpretación depende del tipo de nivel de enlace que se utilice.
  • DYNAMIC: Un flag informativo que indica que el interfaz se crea y destruye dinámicamente
  • SLAVE: La interfaz forma parte de un enlace compartido para tener mayor ancho de banda - por ejemplo un trunk.
  • NBMA: La interfaz es del tipo Non-broadcast multi access.

Las disciplinas de colas que permite Linux, y que pueden estar usando disciplinas sin clases como disciplinas con clases.

La segunda línea depende del tipo de medio que utiliza el dispositivo de red. Por ejemplo en el caso anterior tenemos link/loopback, que hace referencia al loopback, link/ether que hace referencia a un medio de tipo ethernet. También se puede ver las direcciones MAC y de broadcast de las interfaces se ve.

A la hora de establecerse los parámetros de dispositivo se usa la orden ip link set dev disposito, donde dispositivo es el nombre del mismo sobre el cual queremos actuar. Así, para activar o desactivar un dispositivo usamos up o down:

[root@xxxx ~]# ip link set dev eth0 down
Desactivaría la interfaz eth0. Se activaría usando el parámetro up. Este es el equivalente al comando ifconfig eth0 down Para configurar el flag NOARP se usa:
 ip link set dev eth0 arp off
Para poder usar esta orden el dispositivo de red debe de estar en estado desactivado (down). Es el equivalente a ifconfig eth0 -arp. Puede cambiarse el nombre de un dispositivo fácilmente con el parámetro name. Por ejemplo para cambiar el nombre de eth0 a externa:
[root@xxxx ~]# ip link set dev eth0 name externa
Para cambiar la MTU del dispositivo usamos el parámetro mtu. Por ejemplo, vamos a cambiar ahora la mtu de la eth0 a 1400. Aunque es normal, puede ser necesario en tránsito de redes que no funcione bien las pruebas de MTU (PMTU)
[root@xxxx ~]# ip link set dev eth0 mtu 1400
Si quisieramos establecer la dirección MAC del dispositivo y la dirección MAC de broadcast también puede hacerse:
[root@xxxx ~]# ip link set dev eth0 address 01:02:03:04:05:06 broadcast FE:FE:FE:FE:FE:FE
Ojo con cambiar las MAC. Normalmente, esta información se toma de las tarjetas de red donde se supone que es única, pero si se cambian debe de tenerse cuidado para no pisar otra que exista ya en la red local donde estén conectados los equipos.

La longitud de la cola de transmisión del dispositivo puede tocarse con el párametro txqueuelen, que establece el número de paquetes que puede haber en la cola de transmisión del dispositivo.

Por último, puede establecerse los flags multicast, allmulticast y dynamic. La sintaxis es la misma para todos. Se establecen de la misma manera que el flag arp.

Technorati Tags: ,

No hay comentarios: