Forma universal de conocer la dirección del enrutador

Forma universal de conocer la dirección del enrutador

¿Cómo puedo saber cuál es la dirección del enrutador cuando estoy en una interfaz múltiple? Sé que al usar netstat -rn puedo tener la puerta de enlace de la interfaz dominante, que es la dirección del enrutador. Pero ¿qué pasa con otra interfaz?

En mi caso, estoy en eth0 y wlan0 en un enrutador diferente, el sistema operativo elige eth0 como predeterminado, pero ¿existe alguna forma universal de consultar la dirección del enrutador de una interfaz?

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0

$ ifconfig
eth0      Link encap:Ethernet  HWaddr b4:b5:2f:32:f3:22  
      inet addr:192.168.1.132  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::b6b5:2fff:fe32:f322/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:22 errors:0 dropped:0 overruns:0 frame:0
      TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3035 (3.0 KB)  TX bytes:9857 (9.8 KB)
      Interrupt:17 Memory:d4400000-d4420000 

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:569 errors:0 dropped:0 overruns:0 frame:0
      TX packets:569 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:53950 (53.9 KB)  TX bytes:53950 (53.9 KB)

wlan0     Link encap:Ethernet  HWaddr 60:67:20:00:56:6c  
      inet addr:192.168.2.115  Bcast:192.168.2.255  Mask:255.255.255.0
      inet6 addr: fe80::6267:20ff:fe00:566c/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:8152 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4030 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:6316155 (6.3 MB)  TX bytes:574275 (574.2 KB)

Respuesta1

No es una solución completa, pero lo compruebas arp -n.

ddd@mmm ~ $ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
xxx.xxx.xxx.xxx          ether   00:e0:1e:b4:12:42   C                     eth0
yyy.yyy.yyy.yyy          ether   00:14:78:52:28:d2   C                     wlan0

Respuesta2

Para encontrar la primera interfaz hopan que se utiliza para acceder a Internet:

ping -I <interface or ip of interface> -t 1 8.8.8.8

-t 1: limita el paquete a ttl de 1, lo que significa que el paquete será eliminado por el primer enrutador que intenta pasar. Ese enrutador devolverá un paquete "Tiempo de vida excedido", que muestra la dirección IP del dispositivo que generó ese paquete.

From 192.168.0.254 icmp_seq=1 Time to live exceeded

En Windows el comando es ligeramente diferente:

ping -S <ip address of interface> -i 1 8.8.8.8

-i 1 es la opción para limitar el ttl a 1 en Windows, la respuesta será:

Reply from 192.168.0.254: TTL expired in transit.

Si aumenta el número después de -t/-i, obtendrá el enésimo salto por el que pasa el paquete. Esta técnica se puede utilizar si no tiene tracert y necesita saber la ruta que tomará un paquete.

Tenga en cuenta que la ruta que toma un paquete en Internet y en algunas LAN puede cambiar cada vez que se envía un paquete.

información relacionada