viernes, febrero 02, 2007

Configuración avanzada de TCP/IP en Linux (V): Gestión de las direcciones.

En el artículo artículo sobre el tema estuve hablando de como obtener la información para manejar las direcciones y de los tipos que nos encontramos en Linux. Ahora voy a comentar un poco como se gestionen.

Añadir direcciones

La sintaxis del comando para añadir direcciones es la siguiente
Usage: ip addr add IFADDR dev STRING
      
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
Para asignar una dirección IP es tan sencillo como:
terron@menzoberrazan:~$ip addr add 192.168.1.10/24 broadcast 192.168.1.255 scope global dev eth0
¿Y qué pasa con los alias?. Con la utilidad ifconfig, la manera de colocar un alias era ifconfig eth0:0 192.168.2.1 mask 255.255.255.0. Este comando asignaría una interfaz virtual con la IP asignada. Con la utilidad ip se puede asignar cualquier nombre de interfaz, porque realmente lo que tiene la interfaz son etiquetas. Sin embargo, por compatibilidad, debe de llamarse disposito:etiqueta. Por ejemplo:

terron@menzoberrazan:~$ip addr add 192.168.2.10/24 broadcast 192.168.1.255 scope global label eth0:0 dev eth0
Como podemos ver el alcance en los dos ejemplos anteriores es global. Por ejemplo, el alcanza de una dirección asociada al localhost:
terron@menzoberrazan:~$ip addr add 127.0.0.1/8 broadcast 127.255.255.255 scope host dev lo
Para el caso de una dirección asociada a una dirección peer to peer (por ejemplo un túnel). En este caso la máscara de red está asociado al otro extremo. Por ejemplo si estamos usando 172.16.0.0/30 y se crea un túnel entre la 172.16.0.1 y 172.16.0.2 la dirección se crearía:
terron@menzoberrazan:~$ip addr 172.16.0.1 peer 172.16.0.2/30 broadcast 172.16.0.3 scope global dev ppp0

Borrado de direcciones

Para borrar una direción:
Usage: ip addr del IFADDR dev STRING

IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
Para borrar todas las direcciones asociadas a la interfaz eth0
terron@menzoberrazan:~$ip del dev eth0
Si quisieramos borrar una sola dirección podríamos especificarla:
terron@menzoberrazan:~$ip addr del 192.168.1.2/24 label eth0:0 dev eth0
Esa orden quitaría la dirección 192.168.1.2 asociada a la eth0 y con etiqueta eth0:0 - que en la terminología de ifconfig equivaldría a la interfaz virtual eth0:0 -

Technorati Tags: ,

No hay comentarios: