3 votes

Routage du trafic dans les deux sens à travers un serveur Mac mini avec 2 interfaces réseau.

Le réseau de mon bureau ressemble à ça :

networking scheme

Le réseau de mon bureau ressemble à ceci :

  • le réseau du bureau (wifi et câblé) possède le sous-réseau 192.168.88.0 .
  • J'ai quelques serveurs sur le sous-réseau. 192.168.2.0 (NŒUD_1,.... NŒUD_10).
  • J'ai une machine (c'est un Mac mini) avec 2 interfaces de sous-réseau qui agit comme.. :
    • la passerelle pour toutes les machines du sous-réseau 192.168.2.0 .
    • expose un service VPN (celui par défaut de l'application Mac server)
    • et fournit des services supplémentaires, comme un DNS)

La configuration du Mac mini est mon gros problème. Voici à quoi ça ressemble :

Interface Ethernet en0

  • l'adresse : 192.168.88.10
  • netmask : 255.255.255.0
  • passerelle : 192.168.88.1

Interface Ethernet en2

  • adresse : 192.168.2.1
  • netmask : 255.255.255.0
  • passerelle : 192.168.88.10

J'ai besoin du routage des machines dans 192.168.88.0 à ceux qui sont dans 192.168.2.0 .

Pour ce faire, j'ai activé le "Partage d'Internet" de Mac OS : en fait, je ne sais pas ce qui se passe sous le capot, mais les machines NODE_1 ... NODE_10 aller sur internet.

Ensuite, quand je suis connecté au réseau du bureau, pour que j'obtienne une IP telle que : 192.168.88.33 J'ajoute une règle de routage telle que :

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Jusqu'ici tout va bien : tout fonctionne bien !!!!!

Le gros problème est lorsque je me connecte via le VPN.

Connexion VPN

Je me connecte avec succès au VPN exposé à : 192.168.88.10 puis j'ajoute la règle de routage.

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Je n'arrive pas à joindre les machines du sous-réseau. 192.168.2.0 .

En reniflant les paquets, je vois que les paquets suivent les sauts :

  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

Le paquet va vers la passerelle 192.168.88.1 au lieu de la 192.168.88.10 . En regardant dans les tables de routage du Mac mini, je vois :

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 est l'adresse mac de 192.168.88.1 .

Je voudrais modifier le routage sans utiliser la fonction partage de l'internet afin de permettre l'accès à l'internet pour 192.168.2.0 et couvrent à la fois le VPN et le scénario local, mais je ne sais pas quelles sont les étapes à suivre, ni comment rédiger les règles à la main.

Merci beaucoup.

4voto

klanomath Points 63400

Il devrait être possible de créer un pont avec en0 et en2 et d'activer net.inet.ip.forwarding pour se débarrasser de tous les problèmes de routage. Le pont agit plus ou moins comme un autre commutateur entre en0 et en2.


  • Désactiver le partage d'Internet

  • supprimez la passerelle dans les paramètres en2 du Mac mini et changez l'adresse IP en une adresse disponible dans 192.168.88.0/24 (par exemple 192.168.88.11).

  • supprimer toutes les routes statiques supplémentaires

  • Vérifiez les interfaces de pont avec ifconfig

  • Sur le serveur, créez un fichier pont :

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

    avec le contenu

    #!/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
  • entrez sudo chmod +x nano /usr/local/bin/bridge

  • Créer un démon de lancement usr.bridge.plist :

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

    avec le contenu

    <?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>
  • Charger la plist

    sudo launchctl load /Library/LaunchDaemons/usr.bridge.plist
  • Changez les adresses IP de node_1 et node_10 en adresses disponibles dans 192.168.88.0/24 (par exemple 192.168.88.101 et 192.168.88.110). Changez leurs passerelles par défaut en 192.168.88.1 et le serveur DNS en 192.168.88.10.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X