3 votos

No se pueden hacer ping a dispositivos desde una Mac a menos que primero hagan ping a la Mac.

Mi red se ve así y tengo todo tipo de dispositivos: teléfonos Android, tabletas, Raspberry Pis, algunos de los cuales mi Mac no puede pinguear por WiFi.

diagrama de red

Otros dispositivos en la red pueden hacer ping al objetivo perfectamente. En un caso, incluso pude usar ssh -L 2222:objetivo:22 otro-dispositivo -N; ssh localhost -p 2222 ping mac, y luego pude hacer ssh al objetivo desde el Mac directamente.

Los objetivos no responden a ninguna conexión desde el Mac (ping, ssh, http). No es un problema de NIC en suspensión en los objetivos porque otros dispositivos pueden comunicarse con los objetivos perfectamente (en todos los mismos protocolos).

El Mac está conectado por ethernet, los objetivos están conectados por wireless a la misma red (sin modo invitado, vlan, etc., pero podría haber otras opciones que no he considerado). Sin embargo, otro-dispositivo en la instancia anterior también está conectado por cable.

Editado para agregar información de la red:

  • los objetivos están conectados a un AP inalámbrico que está conectado al switch principal.
  • el Mac está conectado a un switch que está conectado al switch principal.
  • otrohost está conectado al switch principal
  • el switch principal es el único dispositivo LAN conectado al router (el otro dispositivo es el módem de cable WAN)

Editado para agregar más información:

Ping desde el Mac:

ping objetivo
PING target.domain (192.168.1.126): 56 datos bytes
Tiempo de espera agotado para icmp_seq 0
Tiempo de espera agotado para icmp_seq 1
ping: sendto: No route to host
Tiempo de espera agotado para icmp_seq 2
ping: sendto: Host is down
Tiempo de espera agotado para icmp_seq 3
ping: sendto: Host is down
Tiempo de espera agotado para icmp_seq 4
ping: sendto: Host is down
Tiempo de espera agotado para icmp_seq 5
ping: sendto: Host is down
Tiempo de espera agotado para icmp_seq 6
^C
--- target.domain estadísticas de ping ---
8 paquetes transmitidos, 0 recibidos, 100.0% pérdida de paquetes

Ping desde otrohost:

ssh otrohost
ping objetivo
PING target.domain (192.168.1.126) 56(84) bytes of data.
64 bytes from target.domain (192.168.1.126): icmp_seq=1 ttl=64 time=46.1 ms
64 bytes from target.domain (192.168.1.126): icmp_seq=2 ttl=64 time=70.2 ms
64 bytes from target.domain (192.168.1.126): icmp_seq=3 ttl=64 time=95.8 ms
64 bytes from target.domain (192.168.1.126): icmp_seq=4 ttl=64 time=118 ms
64 bytes from target.domain (192.168.1.126): icmp_seq=5 ttl=64 time=38.6 ms
^C
--- target.domain estadísticas de ping ---
5 paquetes transmitidos, 5 recibidos, 0% pérdida de paquetes, tiempo 6ms
rtt min/avg/max/mdev = 38.572/73.770/118.162/29.918 ms

netstat en el Mac: (gracias @slm)

netstat -rn -f inet
Tablas de enrutamiento

Internet:
Destino            Pasarela           Banderas      Refs      Uso   Interfaz Vence
default            192.168.1.1        UGSc          222        0     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             20     1512     lo0
169.254            link#5             UCS             0        0     en0      !
192.168.1          link#5             UCS            14        0     en0      !
192.168.1.1/32     link#5             UCS             1        0     en0      !
192.168.1.1        78:8a:20:xx:xx:xx  UHLWIir       167      954     en0   1183
192.168.1.7        0:1e:6:xx:xx:xx    UHLWIi          1       43     en0   1149
192.168.1.59/32    link#5             UCS             0        0     en0      !
...
192.168.1.126      link#5             UHLWI           0       13     en0      !
...
192.168.1.186      9c:8e:cd:xx:xx:xx  UHLWI           0        0     en0   1180
...
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0       15     en0      !
224.0.0/4          link#5             UmCS            1        0     en0      !
224.0.0.251        1:0:5e:0:0:fb      UHmLWI          0        0     en0
255.255.255.255/32 link#5             UCS             1        0     en0      !
255.255.255.255    ff:ff:ff:ff:ff:ff  UHLWbI          0        7     en0      !

Parece que algo está raro en la tabla de enrutamiento. Para otrohost (.7), hay una dirección MAC y tiempo de expiración, pero para objetivo solo hay link#5 y un ! en la expiración. (Las banderas también difieren un poco, pero hay otras entradas con las mismas banderas que incluyen una dirección MAC y expiración, así que no estoy seguro de que sea relevante).

traceroute desde el Mac:

traceroute objetivo
traceroute hacia target.domain (192.168.1.126), 64 saltos máximo, 52 bytes de paquetes
 1  * *traceroute: sendto: No route to host
traceroute: escribió target.domain 52 caracteres, ret=-1
 *
traceroute: sendto: Host is down
 2 traceroute: escribió target.domain 52 caracteres, ret=-1
 *traceroute: sendto: Host is down
traceroute: escribió target.domain 52 caracteres, ret=-1
 *traceroute: sendto: Host is down
traceroute: escribió target.domain 52 caracteres, ret=-1

tracepath desde otrohost (con cable, pero con Linux):

tracepath objetivo
 1?: [LOCALHOST]                      pmtu 1500
 1:  target.domain                                         5.742ms alcanzado
 1:  target.domain                                         3.304ms alcanzado
     Continuación: pmtu 1500 saltos 1 retrocede 1

netstat después de hacer ping desde el objetivo al Mac:

...
192.168.1.126      64:a2:f9:xx:xx:xx  UHLWI           0        9     en0   1133
...

traceroute después de hacer ping desde el objetivo al Mac:

traceroute objetivo
traceroute hacia target.domain (192.168.1.126), 64 saltos máximo, 52 bytes de paquetes
 1  target.domain (192.168.1.126)  5.718 ms  3.204 ms  3.538 ms

ifconfig en0 en el Mac:

en0: flags=8863 mtu 1500
    opciones=10b
    ether 38:c9:86:xx:xx:xx
    inet6 fe80::xx...xx%en0 longitud de prefijo 64 seguro scopeid 0x5
    inet6 2601:xx...xx longitud de prefijo 64 autoconf seguro
    inet6 2601:xx...xx longitud de prefijo 64 autoconf temporal
    inet 192.168.1.59 máscara de red 0xffffff00 broadcast 192.168.1.255
    opciones nd6=201
    multimedia: autoseleccionar (1000baseT )
    estado: activo

Editar: Parece que el problema radica en la tabla ARP en el Mac.

arp -a durante el problema:

target.domain (192.168.1.126) en (incompleto) en en0 ifscope [ethernet]

arp -a después de hacer ping desde el objetivo al Mac:

target.domain (192.168.1.126) en 64:a2:f9:xx:xx:xx en en0 ifscope [ethernet]

sudo arp -ad vuelve inmediatamente al estado incorrecto, y requiere un ping fresco desde el objetivo.

¿Cómo puedo asegurarme de que la tabla ARP se construya correctamente?
(Reiniciar no parece ayudar, toda la salida anterior es de un reinicio en frío, hace 31 minutos)

¿Hay algún filtro ARP integrado en Mac, o alguna forma de escuchar broadcast que necesite habilitarse en macOS?

0 votos

¿Cómo se ve la red? Se necesita la dirección IP de origen y destino también si ambos utilizan el mismo enrutador / gateway. Esto parece ser un problema de red, pero definamos un poco más la red antes de intentar responder.

0 votos

Red de muy simple. Puntos de acceso inalámbricos y dispositivos cableados todos conectados a un solo switch.

0 votos

Entendido: todos están en la misma red de clase C / no enrutables.

1voto

slm Puntos 118

Asegúrese de que las tablas de enrutamiento de su cliente tengan rutas que le indiquen cómo dirigir el tráfico para direcciones IP específicas y bloques de IPs a su ruta predeterminada (enrutador).

Puede verificarlo de esta manera:

$ netstat -rn -f inet
Tablas de enrutamiento

Internet:
Destino            Puerta de enlace     Banderas     Refs      Uso   Interfaz Expira
default            192.168.1.2          UGSc           73   320174     en0
10.3.144.1/32      link#10              UCS             0        0     en0
127                127.0.0.1            UCS             0        0     lo0
127.0.0.1          127.0.0.1            UH             47  5116272     lo0
169.254            link#10              UCS             1        0     en0
169.254.134.80     b8:27:eb:ee:bc:4c    UHLSW           0        0     en0
192.168.1          link#10              UCS             7        0     en0
192.168.1.2/32     link#10              UCS             1        0     en0
192.168.1.2        14:cc:20:d4:56:2a    UHLWIir        27      391     en0   1178
192.168.1.10       0:22:15:91:c1:2d     UHLWI           0       51     en0   1180
192.168.1.66       6c:ad:f8:75:71:6d    UHLWIi          1     1735     en0   1174
192.168.1.81       30:b5:c2:3d:6c:37    UHLWIi          1     1440     en0   1080
192.168.1.85       b8:27:eb:75:c5:c2    UHLWIi          2    21229     en0   1194
192.168.1.87       b8:27:eb:ee:bc:4c    UHLWI           0        0     en0    866
192.168.1.89       34:93:42:2d:92:c4    UHLWI           0       62     en0   1113
192.168.1.91       0:21:bd:af:61:cf     UHLWI           0        0     en0    784
192.168.1.95/32    link#10              UCS             0        0     en0
224.0.0/4          link#10              UmCS            2        0     en0
224.0.0.251        1:0:5e:0:0:fb        UHmLWI          0        0     en0
239.255.255.250    1:0:5e:7f:ff:fa      UHmLWI          0     2440     en0
255.255.255.255/32 link#10              UCS             0        0     en0

Aquí, cuando hago ping a una IP que no estaba presente:

$ ping -c 2 192.168.1.107
PING 192.168.1.107 (192.168.1.107): 56 bytes de datos
64 bytes desde 192.168.1.107: icmp_seq=0 ttl=64 tiempo=1.867 ms
64 bytes desde 192.168.1.107: icmp_seq=1 ttl=64 tiempo=7.939 ms

--- Estadísticas de ping a 192.168.1.107 ---
2 paquetes transmitidos, 2 recibidos, 0.0% pérdida de paquetes
mín/avg/máx/desv = 1.867/4.903/7.939/3.036 ms

Y obtendrá una nueva entrada en su tabla de enrutamiento:

$ netstat -rn -f inet
...
...
192.168.1.107      0:19:d1:e8:4c:95     UHLWI           0        2     en0   1197
...
...

Estas entradas también tienen un tiempo de expiración asociado (columna más a la derecha).

0 votos

Gracias por la sugerencia. He añadido la salida de netstat. Desafortunadamente, después de hacer ping a otrohost no obtengo una entrada con una MAC y vencimiento, sino una con link#5 y vencimiento !. ¿Alguna idea?

0voto

Tim Campbell Puntos 111

Cuando haces un "ping" a un dispositivo (o cada vez que un dispositivo se hace conocido para otro dispositivo en tu red independientemente de cómo suceda) se crea una entrada en la tabla arp. (arp = protocolo de resolución de direcciones)

Puedes usar arp -a para ver el contenido de la tabla.

Captura el contenido de la tabla de enrutamiento a través de netstat -rn -f net antes y después de hacer ping al mac desde la máquina remota. Estamos buscando rutas que tengan indicadores específicos de host (la "H" mayúscula aparecerá en algún lugar de la columna "Flags").

Sospecho un poco que posiblemente tengas una máscara de red inválida.

Sería útil si pudieras proporcionar el contenido de tu salida de ifconfig en0 (genéricamente puede ser útil ver la configuración de todas las interfaces, pero según la salida de muestra que proporcionaste anteriormente, veo que solo en0 y lo0 (la interfaz de loopback) parecen estar en uso en tu mac, así que no tiene sentido ver otras interfaces).

1 votos

Agregada la salida de ifconfig. Las banderas de netstat para el objetivo incluyen "H" tanto antes como después de hacer ping al mac desde el objetivo. La diferencia es que la dirección MAC no está presente hasta después del ping entrante. arp muestra 'at (incompleto)' antes, y la dirección MAC después. Creo que arp es el problema, porque al emitir arp -ad puedo reproducir el problema de inmediato.

0voto

Oskar Puntos 1242

Esto sería típico si el WiFi también está configurando una red. Asegúrese de que el WiFi esté en modo puente y permita que el enrutador principal con cable maneje DHCP / DNS.

Verifique que los firewall / reglas de enrutamiento sean bidireccionales en todos los dispositivos que no son el enrutador principal (la puerta de enlace principal - 192.168.1.2)

Puede hacer traceroute para descubrir si su dispositivo inalámbrico tiene un salto de un lado u otro.

1 votos

Buen pensamiento, pero los puntos de acceso inalámbricos definitivamente no están configurando una red. Veo las concesiones DHCP de todos los dispositivos (con cable e inalámbricos) en el enrutador. Otros dispositivos con cable pueden hacer ping al objetivo sin problemas, solo hay un problema con la mac, y nunca he añadido reglas de firewall especiales para la mac. Se añadió la salida del traceroute/path, pero también falla desde la mac, funciona desde el otro host.

0 votos

@Soumya definitivamente vamos a aprender algo aquí. Ya sea que se trate de una configuración de software o de que el enrutador inalámbrico esté haciendo algo raro para gestionar el tráfico o piense que estos son paquetes de difusión o simplemente no los esté entregando.

0 votos

Tampoco se trata solo de dispositivos inalámbricos. Algunos de ellos pueden ser pingueados perfectamente, incluso cuando aún no están en las tablas netstat/arp, mientras que otros necesitan un poco de ... estímulo primero.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X