Маршрутизация трафика туда и обратно через сервер Mac mini с 2 сетевыми интерфейсами


2

У меня есть офисная сеть, которая выглядит следующим образом:

схема сети

Моя офисная сеть выглядит так:

  • Офисная сеть (Wi-Fi и проводная) имеет подсеть 192.168.88.0.
  • У меня есть несколько серверных машин в подсети 192.168.2.0(NODE_1, .... NODE_10).
  • У меня есть машина (это Mac mini) с 2 подсетевыми интерфейсами, которая действует как:
    • шлюз для всех машин в подсети 192.168.2.0.
    • предоставляет службу VPN (приложение по умолчанию для сервера Mac)
    • и предоставляет дополнительные услуги, такие как DNS)

Конфигурация Mac mini - моя большая проблема. Вот как это выглядит:

Интерфейс Ethernet en0

  • адрес: 192.168.88.10
  • маска подсети: 255.255.255.0
  • шлюз: 192.168.88.1

Интерфейс Ethernet en2

  • адрес: 192.168.2.1
  • маска подсети: 255.255.255.0
  • шлюз: 192.168.88.10

Мне нужно маршрутизация от машин в 192.168.88.0тех, кто в 192.168.2.0.

Для этого я активировал функцию « Общий доступ к Интернету » в Mac OS: на самом деле я не знаю, что происходит под капотом, но машины NODE_1 ... NODE_10 выходят в Интернет.

Затем, когда я подключен к офисной сети, чтобы я получил IP, такой как: 192.168.88.33я добавляю правило маршрутизации, такое как:

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Пока все хорошо: все работает отлично !!!!!

Большая проблема, когда я подключаюсь через VPN.

VPN-соединение

Я успешно подключаюсь к VPN, доступному по адресу:, 192.168.88.10затем добавляю правило маршрутизации.

 sudo route -n add 192.168.2.0/24 -gateway 192.168.88.10

Я не могу добраться до машин в подсети 192.168.2.0.

Обнюхивая пакеты, я вижу, что пакеты следуют за прыжками:

  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

Пакет отправляется на шлюз 192.168.88.1вместо 192.168.88.10. Изучая таблицы маршрутизации Mac mini, я вижу:

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это мак адрес 192.168.88.1.

Я хотел бы изменить маршрутизацию без использования общего доступа к Интернету , чтобы разрешить доступ к Интернету 192.168.2.0и охватить как VPN, так и локальный сценарий, но я не знаю, какие шаги мне нужно сделать, и как вручную написать правила.

Большое спасибо.


1. У вас есть два шлюза по умолчанию: один, установленный для en2, неверен - это должно быть nada / ничто. 2. У вас есть двойной NAT: 1-й - это ваш ADSL-роутер, 2-й - это ваш Mac mini en1> en2 (доступ в Интернет!) 3. Можно ли настроить статический маршрут на вашем ADSL-роутере? 4. Пожалуйста, добавьте свою версию системы / сервера MacOS. 5. Как вы настроили переадресацию на своем ADSL-маршрутизаторе (чтобы VPN работал)?
klanomath

3. к сожалению нет 4. El Capitan 5. Я открыл порты для протокола L2TP и перенаправил на машину 192.168.88.10.
JayZee

Маршрутизатор по умолчанию vodafone, "революция станции Vodafone". Это должен быть Huawei hhg2500.
JayZee

где MacOs хранят таблицы ip сети и файлы конфигурации?
JayZee

Ответы:


3

Должна быть возможность создать мост с en0 и en2 и включить net.inet.ip.forwarding, чтобы избавиться от всех проблем маршрутизации. Мост действует более или менее как другой переключатель между en0 и en2.


  • Отключить общий доступ к Интернету
  • удалите шлюз в настройках en2 Mac mini и измените IP-адрес на доступный в 192.168.88.0/24 (например, 192.168.88.11)
  • удалить все дополнительные статические маршруты
  • Проверьте мостовые интерфейсы с ifconfig
  • На сервере создайте файловый мост :

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

    с содержанием

    #!/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
    
  • войти sudo chmod +x nano /usr/local/bin/bridge
  • Создайте демон запуска usr.bridge.plist :

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

    с содержанием

    <?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>
    
  • Загрузить список

    sudo launchctl load /Library/LaunchDaemons/usr.bridge.plist
    
  • Измените IP-адреса node_1 и node_10 на доступные в 192.168.88.0/24 (например, 192.168.88.101 и 192.168.88.110). Измените их шлюзы по умолчанию на 192.168.88.1 и DNS-сервер на 192.168.88.10.

Большое спасибо за длинный ответ! на самом деле я предпочел бы оставить 192.168.2.0 отдельно от 192.168.88.0. Будет ли это возможно с моста?
JayZee

@JayZee Это не имеет особого смысла: вы хотите получить доступ ко всему со всех устройств, но без общего доступа к Интернету / NAT. Затем вам нужно либо создать много дополнительных статических маршрутов (один маршрут потерпит неудачу, поскольку вы, очевидно, не можете добавить статические маршруты на маршрутизаторе), либо создать такой мост.
Кланомат
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.