3 votos

¿Qué es la interfaz de red anpi?

Para contexto, estoy trabajando en un MBP de 2023 con M3 Pro.

Cuando escribo ifconfig en la terminal, obtengo una variedad de interfaces de red, de las cuales pude encontrar una documentación bastante detallada sobre todas menos una llamada anpi0. La única referencia que pude encontrar sobre lo que podría ser fue Plataformas y Sistemas de Software para una Internet Autónoma , que sugiere que podría ser una Interfaz de Programación de Red Autónoma. Esto parece razonable, pero este documento es de 2010 y si es a lo que se refiere, me sorprende un poco que haya sido tan difícil encontrar esta información, y que solo pueda encontrar documentos de hace 10 años de conferencias algo oscuras que hablen de eso. Parece que no puedo encontrar nada reciente que hable sobre ellos.

Hice algunas de las cosas mencionadas en la respuesta ¿Cómo elimino interfaces de red? para tratar de encontrar la pieza de hardware conectada a esta interfaz de red sin suerte, lo que sugiere que tal vez sea una interfaz de red virtual. También noté que esta interfaz no estaba presente en la salida de ifconfig de esta persona.

Entonces, ¿qué es anpi? ¿Cuál es su función en los Macs de hoy y qué tipo de situaciones lo activan?

3voto

James Marshall Puntos 528

Escribir el siguiente comando en la línea de comandos:

ifconfig -v anpi0

da como resultado que incluye estos elementos:

ether aa:bb:cc:dd:ee:ff
type: USB Ethernet
agent domain:Skywalk type:NetIf flags:0xa443 desc:"Userspace Networking"

defaults read /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

enumera las interfaces de red. Para mí, anpi0 correspondía a este bloque:

"BSD Name" = anpi0;
            HiddenConfiguration = 1;
            HiddenInterface = 1;
            IOBuiltin = 0;
            IOInterfaceNamePrefix = anpi;
            IOInterfaceType = 6;
            IOInterfaceUnit = 0;
            IOMACAddress = {length = 6, bytes = 0xaabbccddeeff};
            IOPathMatch = "IOService:/AppleARMPE/arm-io@xxxx/AppleT810xIO/usb-drd0@xxxx/AppleT8103USBXDCI@0/AppleUSBNCMDataAux@3/AppleUSBDeviceNCMData/anpi0";
            SCNetworkInterfaceInfo =             {
                UserDefinedName = "Ethernet Adapter (anpi0)";
            };
            SCNetworkInterfaceType = Ethernet;
        },

Observa el HiddenInterface = 1

..así que algún dispositivo USB utiliza esta interfaz de red, pero quizás no hasta que esté conectado.

Conecté un adaptador de USB a red que tenía, pero esto no cambió nada, ni tampoco conectar un iPhone a través de Lightning-USB.

Investigando más:

ioreg -l | grep anpi 
    | |   |       +-o anpi0  
    | |   |         |   "BSD Name" = "anpi0"
    | |   |         |   "IOInterfaceNamePrefix" = "anpi"

Buscar en la web 'Apple NCM Private Interface' da como resultado este post de Mastodon que dice que anpi0 y anpi1 podrían ser las interfaces de depuración para XCode. Recientemente desinstalé XCode pero las interfaces persisten en mi M1 MacMini.

De toda mi investigación, mi resumen sería ignorarlo; es una interfaz de red inactiva probablemente utilizada para enlazar la red de modo usuario (como en un simulador de dispositivo) a la red real.

2voto

user43889 Puntos 266

Mi exploración comienza duplicando el comienzo de la respuesta de @JBRWilkinson.

Escribir el siguiente comando:

ifconfig -v anpi0

da como resultado lo siguiente:

    agent domain:Skywalk type:NetIf flags:0xa443 desc:"Usuariospace networking"

A partir del domain:Skywalk, deduzco que es parte del subsistema Skywalk.

Ahora hago sudo skywalkctl list-providers | grep anp lo cual confirma esto:

net-if com.apple.netif.anpi1 075863F8-8544-40DE-A080-CB796BCA01DC
net-if com.apple.netif.anpi0 68CCB46E-D64B-49DC-A017-EFCBDDCF4981

La lista completa muestra que interfaces no físicas como en1, en2, en3 también están asociadas con Skywalk.

Entonces la verdadera pregunta quizás sea: ¿Qué es Skywalk y cuál es el rol de sus muchas interfaces?

Por lo que sé, esto no está documentado por Apple y los detalles no están incluidos en ninguna lista del núcleo XNU.

¿Qué podemos encontrar?

man skywalkctl no nos lleva mucho más lejos - incluye:

skywalkctl es una utilidad utilizada para interactuar con el subsistema Skywalk, que proporciona la infraestructura entre varios
       piezas de software y hardware relacionadas con la red. Solo debe usarse en un contexto de prueba y depuración. Usarlo
       para cualquier otro propósito está fuertemente desaconsejado.

skywalkctl tiene varios subcomandos que siento que no estoy preparado para explorar. ¿Alguien más puede ampliar sobre esto?

El comando skywalkctl tree lista todos los dispositivos asociados con Skywalk. ¡Nota, este subcomando no está en la página man!

La única referencia que puedo encontrar de alguna autoridad está cerca del final de este capítulo de bonificación del libro *OS Internals de Jonathan Levin.

Me abstengo de llamar a esto una respuesta, realmente es una exploración.

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