En respuesta, en particular:
You can create a new interface in the networking panel, based on an existing interface, but it will not act as a real fully functional interface (if the original interface is inactive, then the derived one is also inactive).
Esto se puede lograr usando un dispositivo/Tap Tun como sugiere psv141, y manipular el archivo /Library/Preferences/SystemConfiguration/preferences.plist
para añadir un NetworkService basado en ya sea un tonel o interfaz del grifo. Mac OS X no permitirá la creación de un NetworkService basado en una interfaz de red virtual, pero se puede manipular directamente el archivo preferences.plist
para agregar el NetworkService a mano. Básicamente, abriría el archivo preferences.plist
en Xcode (o edita el XML directamente, pero es probable que Xcode sea más infalible) y copiará la configuración desde una interfaz Ethernet existente. El lugar para crear el nuevo NetworkService se encuentra en "NetworkServices", y si su Mac tiene un dispositivo Ethernet, el perfil NetworkService también estará bajo esta entrada de propiedad. La entrada de Ethernet puede ser copiado casi textualmente, los únicos campos que en realidad sería cambiantes son:
- UUID
- UserDefinedName
- configuración
IPv4 y establecer el interfaz a la cuba o del grifo del dispositivo (es decir tun0 o tap0).
- Servidor DNS si es necesario.
Luego, también podría manipular la ubicación particular para la que desea este NetworkService (recuerde que Mac OS X puede configurar todas las interfaces de red según su "Ubicación"). El UUID de ubicación predeterminado se puede obtener en la raíz de PropertyList como la clave "CurrentSet". Después de averiguar qué ubicación (o conjunto) desea, expanda la propiedad Establecer y agregue entradas en Global/IPv4/ServiceOrder con el UUID del nuevo NetworkService. También en la propiedad Establecer, necesita expandir la propiedad del Servicio y agregar el UUID aquí como un diccionario con una entrada de Serie con la clave __LINK__ y valor como el UUID (use las otras interfaces como ejemplo).
Después de haber modificado su archivo preferences.plist
, simplemente reinicie y NetworkService estará disponible en SystemPreferences-> Network. Tenga en cuenta que hemos imitado un dispositivo Ethernet para que la capa de redes de Mac OS X tenga en cuenta que "un cable está desenchufado" y no le permitirá activar la interfaz a través de la GUI. Sin embargo, dado que el dispositivo subyacente es un dispositivo tun/tap y tiene una dirección IP, la interfaz se activará y se agregará el ruteo adecuado en el nivel BSD.
Como referencia, se utiliza para hacer magia de enrutamiento especial.
En caso de que llegue hasta aquí y tenga problemas, debe crear el dispositivo tun/tap abriendo uno de los dispositivos en/dev /. Se puede utilizar cualquier programa para hacer esto, pero yo soy un fan de la buena pasada de moda C a mí mismo:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd = open("/dev/tun0", O_RDONLY);
if (fd < 0)
{
printf("Failed to open tun/tap device. Are you root? Are the drivers installed?\n");
return -1;
}
while (1)
{
sleep(100000);
}
return 0;
}
en el mismo tema, más o menos http://compileyouidontevenknowyou.blogspot.com/2009/03/virtual-networking-with-virtualbox-on.html –
"Yo sé que se puede hacer una interfaz de red virtual en Windows (ver aquí), y en Linux también es bastante fácil con alias de IP "- ¿WUT? creación de interfaz con ip-aliases? Usted no sabe nada, de hecho. – poige