Preguntas sobre cómo funciona Internet Sharing

Una simple casilla de verificación y un menú le permiten compartir su conexión a Internet (sin importar en qué interfaz la tenga) con cualquier otra interfaz (teóricamente). Pero, el fondo de esto es un poco confuso. Esta página http://www.manpagez.com/man/8/InternetSharing/ describe InternetSharing, un proceso que lee la lista de propiedades com.apple.nat.plist almacenada en /Library/Preferences/SystemConfiguration.

Primera pregunta: ¿Por qué se destaca el AirPort con su propia entrada especial en el plist? Entiendo las entradas para la interfaz principal (la fuente) y los dispositivos compartidos (los objetivos) Pero, ¿a quién le importa si AirPort está habilitado en esta lista si está configurando un NAT entre Ethernet y Bluetooth, por ejemplo?

Segunda pregunta: ¿Por qué permite compartir la conexión Ethernet con la conexión Ethernet y luego le advierte que su ISP lo odiará? (También permite Firewire con Firewire) No permite Bluetooth a Bluetooth o AirPort a AirPort; desaparecen las entradas del menú para la autorreferencia.

Tercera pregunta: ¿Cómo cambia la red predeterminada cuando comparte Ethernet a través de su AirPort? InternetSharing configura las direcciones IP para las interfaces que no son AirPort a partir de 192.168.2.1 y la propiedad SharingNetworkNumberStart le permite cambiar eso. La interfaz AirPort por defecto tiene asignada 10.0.2.1. ¿Cómo cambiar?

Cuarta pregunta: si solo tiene un conector Ethernet en una MacBook, ¿cómo podría tener más de una interfaz? InternetSharing configura las direcciones IP para las interfaces que no son AirPort a partir de 192.168.2.1, subiendo por una red de clase C (máscara de subred 255.255.255.0) para cada interfaz posterior, es decir, 192.168.3.1, 192.168.4.1, 192.168.5.1, etc. en. ¿Es esto para abordar la posibilidad de un Mac Pro o un Xserve con múltiples NIC?

[SOLUCIONADO] 1) el aeropuerto no es como las otras interfaces 2) es menos probable que las conexiones duras se conecten a sí mismas; en realidad, tiene que CABLEARLAS y nadie haría eso 3) edite el bootpd.plist 4) adaptadores usb tnx. resolvi el problema aunque apagué el firewall en la interfaz gráfica de usuario, ipfw todavía se estaba ejecutando. Sudo ipfw list dio la misma lista de reglas, independientemente de si tenía el firewall activado o desactivado. ¡No sé cómo logré lograr eso!

Miré a noobproof y desactivé la regla para bloquear el puerto 80. Ahora funciona, al menos para navegar por la web.

Bienvenido al sitio! ¡Esa es una gran pregunta! Sí, las redes son muy complicadas, poderosas y flexibles. Va a ser difícil responder a esto de una manera que sea útil para ti, pero haré lo mejor que pueda. Es posible que descubra que marcar el ritmo de las cosas, separar esto y solo hacer una pregunta le permite aprender mejor y obtener mejores respuestas en general.

Respuestas (3)

Como dijo @bmike, Internet Sharing esconde mucha complejidad detrás de una interfaz muy simple, y algunas de sus preguntas no pueden responderse con autoridad sin entrevistar a algunos de los ingenieros de Apple detrás de esto. Pero eso no me impedirá intentarlo...

1) AirPort es diferente de los otros tipos de interfaz porque para compartir a través de AirPort, su Mac tiene que crear realmente la red inalámbrica (en lugar de simplemente brindar servicio a través de una conexión Ethernet, FireWire, etc. existente). Esto significa que InternetSharing necesita tener mucha información sobre cómo crear la red inalámbrica: nombre de la red (SSID), canal, seguridad, etc.

2) Compartir a través de la misma interfaz Ethernet es útil en algunas circunstancias. Por ejemplo, en mi red doméstica, mi ISP proporciona una cantidad limitada de direcciones IP estáticas para mi uso. Ejecuto una Mac haciendo el equivalente a Internet Sharing (en realidad, configuré los demonios manualmente como recomienda @Spiff) para volver a compartir a través de la misma Ethernet. Resultado: si coloco una computadora en la red Ethernet de mi hogar y la configuro a través de DHCP, obtengo una dirección IP privada (detrás del firewall) de mi grupo interno virtualmente ilimitado. Si configuro manualmente la computadora con una de las direcciones IP públicas, obtengo acceso completo a Internet no habilitado, pero uso una de mis limitadas direcciones IP públicas. Debido a que ambos están en la misma red, "mover" una computadora detrás o delante del firewall es solo un simple cambio de configuración.

Por otro lado, si hiciera este mismo truco en una red ethernet que ya tenía un servidor DHCP, las computadoras conectadas a la red obtendrían la configuración aleatoriamente de un servidor u otro, lo que generaría imprevisibilidad, confusión y tirones de pelo. Definitivamente es una característica de uso exclusivo si sabe lo que está haciendo. Afortunadamente, Internet Sharing es inteligente: si detecta otro servidor DHCP en "su" red privada, se apaga para evitar problemas.

3) No conozco una forma de cambiar el rango de IP privado en una red inalámbrica creada por IS. Por otro lado, en realidad no debería importar, ya que la red está siendo creada por Internet Sharing y, por lo tanto, no tiene que preocuparse por los conflictos con la numeración de red existente.

4) Puede agregar interfaces con el adaptador Ethernet USB de Apple . ¡Obtenga algunos concentradores USB y apílelos!

Excelente explicación de por qué wifi es diferente a otras redes de nivel de enlace. También + para la opción USB Ethernet. Me muero por los adaptadores Ethernet de velocidad Thunderbolt.
gracias. Sí, recibí su respuesta a los números 1 y 4. DUH. pero creo que no estaba claro sobre #2. en cualquier caso, descubrí el n. ° 2 y puse mi comprensión en el comentario a bmike.
¿Cómo supiste lo que Spiff iba a decir si su respuesta vino después de la tuya?
puntero a esto => "en realidad, configuré los demonios manualmente" ¿dónde puedo encontrar los detalles, por favor?
@aquagremlin: estoy ejecutando esto en el servidor OS X, que tiene interfaces bastante sencillas para configurar el firewall, el enrutamiento NAT, DHCP y DNS. Configuré esto en el cliente OS X una vez, pero no conozco ninguna buena documentación: simplemente ejecuté Internet Sharing, cloné los archivos de configuración que creó y los edité para lo que necesitaba, luego escribí un LaunchDaemon para comenzar natd . Por cierto, la respuesta de Spiff apareció mientras yo escribía la mía, no hay presciencia aquí.
@Gordon tnx. problema resuelto-agregado a la pregunta inicial.

Creo que simplificas demasiado el proceso de compartir. Es mucho más complicado que tu párrafo inicial. Los conceptos de cortafuegos, nat/dhcp y redes lo matarán si no tiene una buena base sobre las convenciones y reglas básicas, así como sobre cómo se diseñaron las redes para que funcionen.

1) ¿Por qué? No sé, la respuesta sarcástica es pedirles a los ingenieros de Apple que compartan su opinión. En lugar de especular, siéntase libre de hacer una pregunta más concreta que pueda ser respondida.

2) No sé sobre el odio, pero recibo un "puede interrumpir la red" ya que muchas redes asumen que cada cliente es un punto final, no una puerta de entrada a más tráfico que tiene que manejar de manera diferente. Puede interrumpir la conexión de su Mac y también interrumpir a otras personas en la red. A su ISP no le importará a menos que los llame para solucionar un problema que creó :-)

3) Decide si quieres mapear tu red usando DHCP o manualmente. Decide si quieres una red o dos. Una vez que haya leído qué es una subred , verá que es probable que necesite un enrutador de software para unir las direcciones que no están en la subred del enrutador actual. La implementación depende del camino que decidas tomar.

4) Se llama creación de alias de interfaz. Estudie las capas que componen el modelo de IP y tendrá una mejor idea de cómo puede agregar múltiples datos de segunda capa sobre una conexión de red de nivel de enlace físico.

No se dé por vencido, puedo ver cuánto trabajo ha puesto en su pregunta: siga preguntando y encontrará muchas personas realmente bien informadas aquí que contribuirán según su tiempo lo permita para ayudarlo. Atráelos haciéndoles preguntas bien investigadas y específicas.

gracias por sus respuestas Investigué un poco más. con respecto al n.° 2, ethernet-ethernet y firewire-firewire son conexiones HARDWARE y, por lo tanto, específicamente configurables. Los demás no lo son y si estuvieran permitidos darían lugar a una red en malla. con el problema difícil de querer engancharte a ti mismo sin querer (¿cibermasturbación? Tengo que pensar en un término más elegante)
con respecto al n. ° 3, también descubrí eso, solo semántica, creo que simplemente agregaría una subred al archivo /etc/bootpd.plist
Tiene razón con respecto al n. ° 2: querrá leer sobre el ifconfigprotocolo del árbol de expansión si va a puentear / expandir y tiene bucles potenciales en la red. Me divertí mucho con la agregación de enlaces en tigre y leopardo, pero últimamente no tuve la oportunidad de jugar con esto.

La función Compartir Internet siempre ha parecido ser un servicio fácil de configurar a través del panel Compartir en las Preferencias del Sistema. Me sorprende que incluso hayan documentado el demonio InternetSharing con una página de manual.

Si la configuración a la que puede acceder fácilmente desde la GUI no es suficiente para sus necesidades, le recomiendo que salte directamente a configurar e invocar los otros demonios subyacentes usted mismo, en lugar de jugar con InternetSharing y nat.plist.

ipfw, natd, bootpdy namedson poderosos y vale la pena aprender a usarlos directamente.

[SOLUCIONADO] 1) el aeropuerto no es como las otras interfaces 2) es menos probable que las conexiones duras se conecten a sí mismas; en realidad, tiene que CABLEARLAS y nadie haría eso 3) edite el archivo bootpd.plist 4) adaptadores usb tnx. resolvi el problema aunque apagué el firewall en la interfaz gráfica de usuario, ipfw todavía se estaba ejecutando. Sudo ipfw list dio la misma lista de reglas, independientemente de si tenía el firewall activado o desactivado. ¡No sé cómo logré lograr eso! Miré a noobproof y desactivé la regla para bloquear el puerto 80. ahora funciona, al este para navegar por la web.