У меня есть Mac Pro Tower с двумя портами Ethernet. Один из них подключен к внутренней сети компании, а другой — к моей домашней сети. Я бы хотел, чтобы мой Mac использовал прежнее соединение Ethernet только для тех служб, которые находятся в интрасети; для всего остального я хотел бы использовать последнее соединение (например, Интернет).
Учитывая, что адреса интрасети будут попадать в определенный диапазон, как это можно сделать?
Обновлять
Благодаря огромной помощи bmike
я добился некоторого прогресса, но еще не совсем там. Вот моя исходная таблица маршрутизации (с некоторыми опущенными деталями), показывающая два default
пути, ведущих из любого порта Ethernet:
default A.B.C.D UGSc 17 0 en0
default E.F.G.H UGScI 12 0 en1
Первый вход в сеть компании через Ethernet 1 ( en0
); второй в мою домашнюю сеть через Ethernet 2 ( en1
).
Цель состоит в том, чтобы заставить весь трафик, не предназначенный для местоположения внутри компании, маршрутизироваться через Ethernet 2. До сих пор мое понимание привело к тому, что я изменил таблицы маршрутизации как таковые:
sudo /sbin/route -n delete default A.B.C.D
sudo /sbin/route -n add -net A A.B.C.D
Предоставление мне следующей измененной таблицы:
default E.F.G.H UGScI 1 0 en1
A A.B.C.D UGSc 28 0 en0
Однако конечный результат не совсем такой, как я ожидал. Я все еще могу получить доступ ко всем сайтам в интрасети компании, однако весь трафик, например, на stackoverflow.com или куда-либо еще, кроме интрасети, не работает. Выборка из ping
подтверждает это:
FooBar:~ username$ ping latimes.com
PING latimes.com (144.142.224.43): 56 data bytes
ping: sendto: No route to host
Для этой цели недостаточно записи default
выше, или я что-то упустил?
Обновление 2
По-видимому, добавив следующее, все заработало так, как я ожидал:
sudo /sbin/route -n add default E.F.G.H
В результате получилась следующая таблица:
default E.F.G.H UGSc 0 0 en1
default E.F.G.H UGScI 25 0 en1
A A.B.C.D UGSc 2 0 en0
Но я не понимаю, почему оригинальной default
записи не хватило? Документация для I
флага гласит:
I RTF_IFSCOPE Route is associated with an interface scope
Так как же статус этой default
записи I
препятствует ее использованию для моей заявленной цели? (Я задал связанный с этим вопрос здесь .)
Решение заключалось в следующем:
sudo /sbin/route -n delete default A.B.C.D
sudo /sbin/route -n add -net A A.B.C.D
sudo /sbin/route -n add default E.F.G.H
(подробности относительно вышеизложенного можно найти в вопросе.)
bmike
фбререто
bmike
bmike