Enrutar el tráfico de ida y vuelta a través de un mini servidor Mac con 2 interfaces de red

3

Tengo la red de mi oficina que se ve así:

Lareddemioficinaseveasí:

  • lareddelaoficina(wifiycableada)tienelasubred192.168.88.0.
  • Tengoalgunasmáquinasdeservidorenlasubred192.168.2.0(NODE_1,....NODE_10).
  • Tengounamáquina(esunaMacmini)con2interfacesdesubredqueactúacomo:
    • lapuertadeenlaceparatodaslasmáquinasenlasubred192.168.2.0.
    • exponeunservicioVPN(elpredeterminadodelaaplicacióndelservidorMac)
    • yproporcionaserviciosadicionales,comounDNS)

LaconfiguracióndeMacminiesmigranproblema.Asíescomoseve:

InterfazEtherneten0

  • dirección:192.168.88.10
  • máscaradered:255.255.255.0
  • puertadeenlace:192.168.88.1

InterfazEtherneten2

  • dirección:192.168.2.1
  • máscaradered:255.255.255.0
  • puertadeenlace:192.168.88.10

Necesitoenrutamientodelasmáquinasen192.168.88.0alasde192.168.2.0.

Parahacerlo,heactivadolafunción"Internet sharing" de Mac OS: en realidad no sé qué sucede debajo del capó, pero las máquinas NODE_1 ... NODE_10 vaya a Internet.

Luego, cuando estoy conectado a la red de la oficina, obtengo una IP como: 192.168.88.33 agrego una regla de enrutamiento como:

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Hasta ahora, bien: todo funciona bien !!!!!

El gran problema es cuando me conecto a través de la VPN.

Conexión VPN

Me conecto con éxito a la VPN expuesta en: 192.168.88.10 , luego agrego la regla de enrutamiento.

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

No puedo llegar a las máquinas en la subred 192.168.2.0 .

Olfateando los paquetes veo que los paquetes siguen los saltos:

  1. - > 192.168.88.10
  2. - > 192.168.2.1
  3. - > 192.168.2.110
  4. < - 192.168.2.1
  5. < - 192.168.88.1

El paquete va a la puerta de enlace 192.168.88.1 en lugar del 192.168.88.10 . Viendo las tablas de enrutamiento de Mac mini que veo:

192.168.88.202     192.168.88.10      UH              2       93    ppp1
192.168.88.202     40:6c:8f:3:d5:e7   UHLS2           0        0     en0

40:6c:8f:3:d5:e7 es la dirección mac de 192.168.88.1 .

Me gustaría cambiar la ruta sin usar compartir Internet para permitir el acceso a Internet para 192.168.2.0 y cubrir tanto el escenario VPN como el local, pero no conozco los pasos. Necesito hacerlo y cómo escribir las reglas a mano.

Muchas gracias.

    
pregunta JayZee 10.05.2017 - 12:51

1 respuesta

3

Debería ser posible crear un puente con en0 y en2 y habilitar net.inet.ip.forwarding para deshacerse de todos los problemas de enrutamiento. El puente actúa más o menos como otro cambio entre en0 y en2.

  • Deshabilitar el uso compartido de Internet
  • elimine la puerta de enlace en la configuración en2 de Mac mini y cambie la dirección IP a una disponible en 192.168.88.0/24 (por ejemplo, 192.168.88.11)
  • eliminar todas las rutas estáticas adicionales
  • Comprueba las interfaces de puente con ifconfig
  • En el servidor, cree un archivo bridge :

    sudo mkdir -p /usr/local/bin/ #only if the folder is missing
    sudo nano /usr/local/bin/bridge
    

    con el contenido

    #!/bin/bash
    
    sysctl -w net.inet.ip.forwarding=1
    ifconfig bridge create
    ifconfig bridge0 addm en0 addm en2 up #use the first available bridge number here and the proper interface device names
    
  • ingrese sudo chmod +x nano /usr/local/bin/bridge
  • Crear un demonio de lanzamiento usr.bridge.plist :

    sudo nano /Library/LaunchDaemons/usr.bridge.plist
    

    con el contenido

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>usr.bridge</string>
        <key>ProgramArguments</key>
        <array>
            <string>/bin/sh</string>
            <string>-c</string>
            <string>/usr/local/bin/bridge</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/usr.bridge.err</string>
        <key>StandardOutPath</key>
        <string>/tmp/usr.bridge.out</string>
    </dict>
    </plist>
    
  • Cargar el plist

    sudo launchctl load /Library/LaunchDaemons/usr.bridge.plist
    
  • Cambie las direcciones IP de node_1 y node_10 a las disponibles en 192.168.88.0/24 (por ejemplo, 192.168.88.101 y 192.168.88.110). Cambie sus puertas de enlace predeterminadas a 192.168.88.1 y el servidor DNS a 192.168.88.10.
respondido por el klanomath 10.05.2017 - 20:48

Lea otras preguntas en las etiquetas