3.4. Explorar la configuración actual

Puede que le sorprenda, ¡pero iproute2 ya está configurado! Las órdenes ifconfig y route actuales ya usan las llamadas a sistema avanzadas, pero en su mayoría con configuraciones por defecto (es decir, aburridas).

La herramienta ip es central, y le pediremos que nos muestre nuestras interfaces.

3.4.1. ip nos muestra nuestros enlaces

[ahu@home ahu]$ ip link list
1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy: <BROADCAST,NOARP> mtu 1500 qdisc noop 
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1400 qdisc pfifo_fast qlen 100
    link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff
3764: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 10
    link/ppp 

Puede que para usted varíe, pero esto es lo que muestra mi enrutador NAT en casa. Sólo voy a explicar parte de la salida ya que no todo es directamente relevante.

Primero vemos la interfaz loopback. Aunque su computador puede funcionar sin una, le advierto que no lo haga. El tamaño MTU (Maximum Transfer Unit) es de 3924 octetos, y no se supone que deba encolar. Lo cual tiene sentido porque la interfaz loopback es una fantasía en la imaginación del núcleo.

Dejaré de lado por ahora la interfaz dummy, que puede no estar presente en su computador. Después están mis dos interfaces de red físicas, una está del lado de mi cable módem, y la otra sirve a mi segmento ethernet casero. Más aún, vemos una interfaz ppp0.

Observe la ausencia de direcciones IP. iproute desconecta los conceptos de «enlace» y «dirección IP». De todas maneras, con el alias de IP, el concepto de «la» dirección IP se ha vuelto bastante irrelevante.

Sin embargo, nos muestra las direcciones MAC, el identificador en hardware de nuestras interfaces ethernet.

3.4.2. ip nos muestra nuestras direcciones IP

[ahu@home ahu]$ ip address show        
1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: dummy: <BROADCAST,NOARP> mtu 1500 qdisc noop 
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1400 qdisc pfifo_fast qlen 100
    link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/8 brd 10.255.255.255 scope global eth0
4: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff
3764: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 10
    link/ppp 
    inet 212.64.94.251 peer 212.64.94.1/32 scope global ppp0

Esto contiene más información. Nos muestra todas nuestras direcciones, y a qué tarjetas pertenecen. «inet» significa Internet (IPv4). Hay muchas otras familias de direcciones, pero no nos importan por el momento.

Examinemos eth0 más de cerca. Dice que está relacionada con la dirección inet «10.0.0.1/8». ¿Qué significa esto? El /8 indica el número de bits que están en la Dirección de Red. Hay 32 bit, de manera que quedan 24 bits que son parte de nuestra red. Los primeros 8 bits de 10.0.0.1 corresponden a 10.0.0.0, nuestra Dirección de Red, y nuestra máscara de red (netmask) es 255.0.0.0.

Las otras máquinas están conectadas a esta interfaz, de manera que 10.250.3.13 es accesible de forma directa desde eth0, al igual que 10.0.0.1, por ejemplo.

Con ppp0, vemos el mismo concepto, aunque los números son diferentes. Su dirección es 212.64.94.251, sin máscara de subred. Esto significa que tenemos una conexión punto a punto y que cada dirección, con la excepción de 212.64.94.251, es remota. Hay más información, sin embargo. Nos dice que en la otra punta del enlace hay, de nuevo, una única dirección, 212.64.94.1. El /32 nos dice que no hay «bits de red».

Es absolutamente vital que comprenda bien estos conceptos. Remítase a la documentación mencionada al principio de este Cómo si tiene problemas.

También observará «qdisc», que significa Disciplina de Cola (Queueing Discipline). Más adelante veremos que es vital.

3.4.3. ip nos muestra nuestras rutas

Bien, ya sabemos cómo encontrar direcciones 10.x.y.z, y somos capaces de alcanzar 212.64.94.1. Sin embargo, esto no es suficiente, de manera que necesitamos instrucciones sobre cómo alcanzar al resto del mundo. La Internet está disponible mediante nuestra conexión ppp, y parece que 212.64.94.1 está deseando esparcir nuestros paquetes por el mundo, y entregarnos resultados de vuelta.

[ahu@home ahu]$ ip route show
212.64.94.1 dev ppp0  proto kernel  scope link  src 212.64.94.251 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.1 
127.0.0.0/8 dev lo  scope link 
default via 212.64.94.1 dev ppp0 

Bastante explícito. Las primeras 4 líneas indican explícitamente lo que quedó implícito con ip address show, y la última línea nos dice que el resto del mundo lo podemos encontrar mediante 212.64.94.1, nuestra pasarela por defecto. Podemos saber que es una pasarela por la palabra «via», que nos dice que necesitamos enviar paquetes a 212.64.94.1, que ya se encargará del resto.

Como referencia, esto es lo que la vieja utilidad route nos muestra:

[ahu@home ahu]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
212.64.94.1     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         212.64.94.1     0.0.0.0         UG    0      0        0 ppp0