¿Interfaces Ethernet falsas (feth / if_fake)? ¿Alguna vez alguien ha visto esto?

5

He estado investigando la fuente de Darwin para intentar encontrar alguna forma de crear interfaces Ethernet virtuales en Mac / Darwin sin agregar una extensión de kernel como tuntaposx. Al hacerlo, encontré algo interesante que parece existir pero que no tiene documentación.

Aquí está el archivo fuente:

enlace

Leer el archivo me lleva a pensar que esto es similar a un par veth en Linux: crea dos interfaces y paquetes que van de un lado a otro.

El único problema es que no puedo encontrar nada en Internet sobre esto.

He podido confirmar que existe desde OSX Mojave y supongo que también existen en versiones anteriores:

# ifconfig feth0 create
feth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
  ether 66:65:74:68:00:00
  peer: <none>
  media: autoselect
  status: inactive

Después de buscar un poco más, parece que encontré una opción no documentada en ifconfig para vincular dos de estos:

# ifconfig feth0 peer feth1
# ifconfig feth0
feth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
  ether 66:65:74:68:00:00
  inet 9.9.9.9 netmask 0xffffff00 broadcast 9.9.9.255
  peer: feth1
  media: autoselect
  status: active

Ahora, cuando agrego una IP a feth0 y tcpdump feth1, veo un montón de paquetes que son cosas como anuncios de mDNS que usted esperaría que una Mac escupiera en un nuevo enlace Ethernet.

Estoy publicando esto aquí porque tengo curiosidad acerca de si alguien más tiene alguna pista sobre esto o si alguna vez lo ha usado.

Editar: ahora puedo confirmar que si los miras y los subes a ambos (si se configura feth0, etc.) puedes inyectar paquetes en cualquiera de los lados y verlos en el otro. Parece que esto podría funcionar como un dispositivo de conexión Ethernet de capa 2 o dispositivo de par de máquinas virtuales sin necesidad de una extensión de kernel. Esto no solo es increíble para la virtualización de la red, sino que, junto con las extensiones de virtualización de Apple, también permitiría un host de máquina virtual sin kext con capacidades de red completas.

Editar # 2: También encontramos esto, que tampoco está muy bien documentado, aunque es mucho mejor que Feth. Puede ofrecer una forma más oficial de crear dispositivos virtuales Ethernet. Tendremos que ver cómo funciona. ¡Las cosas de Feth todavía son interesantes!

enlace

    
pregunta Adam Ierymenko 27.09.2018 - 00:32

0 respuestas

Lea otras preguntas en las etiquetas