Instradamento del traffico avanti e indietro attraverso un mini server Mac con 2 interfacce di rete

3

Ho la mia rete aziendale simile a questa:

Lamiareteaziendalesipresentacosì:

  • laretedell'ufficio(wifiecablata)halasottorete192.168.88.0.
  • Hoalcunemacchineserversullasottorete192.168.2.0(NODE_1,....NODE_10).
  • Hounamacchina(èunMacmini)con2interfaccedisottoretechefunzionacome:
    • ilgatewaypertuttelemacchinenellasottorete192.168.2.0.
    • esponeunservizioVPN(l'applicazionepredefinitaperilserverMac)
    • efornisceserviziextra,comeunDNS)

LaconfigurazionedelMacminièilmiogrossoproblema.Eccocomeappare:

InterfacciaEtherneten0

  • indirizzo:192.168.88.10
  • netmask:255.255.255.0
  • gateway:192.168.88.1

InterfacciaEtherneten2

  • indirizzo:192.168.2.1
  • netmask:255.255.255.0
  • gateway:192.168.88.10

Hobisognodiinstradaredamacchinein192.168.88.0aquellein192.168.2.0.

Perfarlohoattivatolafunzione"Condivisione Internet" di Mac OS: in realtà non so cosa succede sotto il cofano, ma le macchine NODE_1 ... NODE_10 vai su Internet.

Quindi, quando sono connesso alla rete dell'ufficio, così ottengo un IP come: 192.168.88.33 Aggiungo una regola di routing come:

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Fin qui tutto bene: tutto funziona bene !!!!!

Il grosso problema è quando mi collego tramite VPN.

Connessione VPN

Mi collego correttamente alla VPN esposta a: 192.168.88.10 , quindi aggiungo la regola di routing.

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Non riesco a raggiungere le macchine in subnet 192.168.2.0 .

Annusando i pacchetti vedo che i pacchetti seguono l'hop:

  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

Il pacchetto va al gateway 192.168.88.1 anziché 192.168.88.10 . Osservando le tabelle di routing di Mac mini vedo:

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 è l'indirizzo mac di 192.168.88.1 .

Vorrei modificare il routing senza utilizzare la condivisione Internet per consentire l'accesso a Internet per 192.168.2.0 e coprire sia la VPN che lo scenario locale, ma non conosco i passaggi Ho bisogno di fare e come scrivere le regole.

Grazie mille.

    
posta JayZee 10.05.2017 - 12:51
fonte

1 risposta

3

Dovrebbe essere possibile creare un bridge con en0 ed en2 e abilitare net.inet.ip.forwarding per sbarazzarsi di tutti i problemi di routing. Il bridge agisce più o meno come un altro interruttore tra en0 e en2.

  • Disabilita Condivisione Internet
  • rimuovi il gateway nelle impostazioni di en2 di Mac mini e cambia l'indirizzo IP in uno disponibile in 192.168.88.0/24 (ad esempio 192.168.88.11)
  • rimuovi tutte le route statiche aggiuntive
  • Verifica le interfacce bridge con ifconfig
  • Sul server crea un file bridge :

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

    con il contenuto

    #!/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
    
  • inserisci sudo chmod +x nano /usr/local/bin/bridge
  • Crea un demone di lancio usr.bridge.plist :

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

    con il contenuto

    <?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>
    
  • Carica il plist

    sudo launchctl load /Library/LaunchDaemons/usr.bridge.plist
    
  • Cambia gli indirizzi IP di node_1 e node_10 in quelli disponibili in 192.168.88.0/24 (ad esempio 192.168.88.101 e 192.168.88.110). Cambia i loro gateway predefiniti in 192.168.88.1 e il server DNS in 192.168.88.10.
risposta data 10.05.2017 - 20:48
fonte

Leggi altre domande sui tag