Настройка маршрутизации для двух сетей (одна внутренняя, одна внешняя)

0

Вот ситуация. Мой Mac подключается к двум сетям - одна внутренняя, одна внешняя. Внутренний DNS работает как для внутренних, так и для внешних URL, внешний DNS (очевидно) ничего не знает о внутренних URL. Внутренняя сеть не подключается к внешним IP-адресам, внешняя сеть не подключается к внутренним IP-адресам.

Поэтому в зависимости от того, как я настроил Сервисный заказ в разделе «Сеть» Системных настроек:

Так что если я поставлю внутреннюю сеть перед внешней в сервисном заказе:

  1. Внутренний DNS отвечает на все запросы правильно (как для внутренних, так и для внешних URL)
  2. Внутренняя сеть не может подключиться к внешним URL-адресам, поэтому, я думаю, мне нужно добавить несколько записей в таблицу маршрутизации, чтобы все, что не является внутренним IP-адресом, отправлялось во внешнюю сеть.

Если я сначала поставлю внешнюю сеть, а затем внутреннюю сеть и добавлю запись в таблицу маршрутизации, чтобы все внутренние запросы отправлялись во внутреннюю сеть:

  1. Даже если я сначала добавлю внутренний DNS в настройках внешней сети, я все равно не смогу разрешить внутренние URL.

Итак, вот мои вопросы:

1) Почему я не могу разрешить внутренние URL? Так как у меня есть запись в таблице маршрутизации, отправляющая все внутренние IP-адреса во внутреннюю сеть, разве DNS-запросы не должны идти во внутренний DNS, даже если внешняя сеть является первой в заказе на обслуживание?

2) Есть ли умный способ добавить записи в таблицу маршрутизации, чтобы сказать «все, кроме 10.xxx идет в сеть X»?

ps Что касается моего вопроса №2, я подумал, что способ указать «все, кроме 10.xxx» состоит в том, чтобы иметь целую серию команд маршрута:

/sbin/route add -net 128.0.0.0 -netmask 128.0.0.0 -interface en0
/sbin/route add -net  64.0.0.0 -netmask 192.0.0.0 -interface en0
/sbin/route add -net  32.0.0.0 -netmask 224.0.0.0 -interface en0
/sbin/route add -net  16.0.0.0 -netmask 240.0.0.0 -interface en0

но я надеюсь, что есть более простой способ.

Бетти Кроккер
источник
Является ли внутренняя сеть действительно сетью с подсетями и маршрутизацией просто большой локальной сети?
Махди
Кроме того, вы подключены к внутреннему и внешнему через два интерфейса?
Махди
Два интерфейса - один проводной, другой беспроводной. Внутренняя сеть (10.xxx) огромна и географически распределена (не только локальная сеть).
Бетти Кроккер

Ответы:

1

Предполагая, что ваша внутренняя сеть похожа на 10.0.0.0/8 со шлюзом 10.0.0.1 на eth1, а ваш внешний шлюз по умолчанию на eth1 с IP abcd, это должно сделать это:

route change default -interface en0 route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en1

Вы также можете настроить их в своих сетевых скриптах (вы можете сделать это в Linux - не уверен насчет Mac), см. здесь в качестве примера. На самом деле это был бы более стойкий способ, так как вам не нужно добавлять туда маршруты вручную при каждой загрузке (или помещать их в скрипт).

Обновление: команды обновлены для Mac OS X в соответствии с комментариями ОП, см. Ссылку для альтернатив Linux.

мессия
источник
Я думаю, что это работает, но ваш ответ использует формат Linux, я на Mac. Я думаю, что эквивалентными командами (штопать это форматирование мини-разметки) являются [route change default -interface en0] и [route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en1], я думаю, что он выбрал правильные шлюзы для каждого интерфейс. Спасибо!
Бетти Кроккер
Извините, что пропустил эту часть.
Махди
@Mahdi - Вы должны рассмотреть вопрос об обновлении ответа в этом случае.
Ramhound
Мне просто нужно добраться до ПК. :)
Махди