Добавить статический маршрут mac os

О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS

Я давно заметил, что многих пользователей пугает само слово «маршрутизация». Да чего там говорить про обычных пользователей, когда даже админы (особенно те, кто кроме Windows ничего другого не видели) с трудом понимают что это такое.

И я сейчас не преувеличиваю. Иногда требуется прописать статический маршрут на клиенте, а не на роутере и мне приходилось объяснять не пользователю, а админу зачем это нужно, как это делается и в чём отличие от маршрута по умолчанию.

Мальчик сказал маме: “Я хочу кушать” и мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать” и папа отправил его назад к маме.
Мальчик сказал маме: “Я хочу кушать” и мама снова отправила его к папе.
Так мальчик бегал туда-обратно, пока не упал.
Что случилось с мальчиком? TTL кончился.

Скажете бессмысленный анекдот? Чтобы его понять нужно изучить как работают сети, а пока давайте объясню простыми словами что такое «маршрутизация» (routing), чтобы это слово вас больше не пугало.

Если вы когда-либо настраивали свой роутер или смотрели свойства подключения к сети, то наверняка видели что кроме адреса вашего компьютера, есть ещё адрес шлюза (ещё одно непонятное слово).

Всё просто. Интернет можно представить как разветвлённую дорожную сеть с кучей направлений. Каждая из дорог может привести куда угодно и не факт что нам туда вообще нужно. Так вот, ваш шлюз — это отправная точка во всемирную сеть, откуда вы начинаете свой путь и, в большинстве случаев, он становится для вас маршрутом по умолчанию.

То есть, когда вы открываете какие-то сайты, качаете торренты или проверяете почту, все ваши данные проходят через устройство с данным адресом. Он знает куда нужно дальше передавать пакеты данных. Таких отправных точек может быть превеликое множество и каждая из них обладает информацией о своём сегменте сети, компьютерах и других устройствах, расположенных за ней. Собственно, маршрутизация — это процесс определения лучшего маршрута.

Когда мы знаем точный маршрут следования (его ещё называют статическим), то можем сразу начать движение по нему, в противном случае используется маршрут по умолчанию, который как бы говорит: всё, что не знаешь, куда послать — шли сюда.

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

Как посмотреть, добавить или удалить маршрут в macOS

Чтобы посмотреть все действующие маршруты, отрываем Терминал и вводим следующую команду:

Добавить статичный маршрут можно следующей командой:

sudo route -n add 192.168.10.0/24 10.8.0.9

Читайте также:  Нету папки windows client fortnite

Здесь мы указали что для доступа к сети 192.168.10.0 с маской 255.255.255.0 (24) следует использовать шлюз 10.8.0.9.

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

sudo route -n delete 192.168.10.0/24 10.8.0.9

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Источник

Маршрутизация в Mac OS при VPN подключении

Появилась как-то задача подключатся по VPN к рабочей сети, чтобы иметь доступ к внутренним ресурсам.
Средствами Мака это можно сделать создав VPN подключение и 2 варианта:
1. поставить галочку «Слать весь трафик через VPN подключение»
2. статически прописать статически route add -net 192.168.10.0/24 192.168.44.1, где 192.168.10.0/24 — сеть в которой находятся компьютеры на работе, 192.168.44.1 VPN шлюз к которому я подключаюсб.

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

Итак задачу я решил следующим образом:
создал скрипт: touch /etc/ppp/ip-up
дал ему прав на исполнение: chmod +x /etc/ppp/ip-up
создал файл для логов: touch /tmp/ppp.log

Содержимое скрипта:
#!/bin/sh
VPNWORK=»192.168.44.1″; #обьявляем переменную (например по названию VPN подключения)
if [ $IPREMOTE = $VPNWORK ] #проверяем, если совпадает добавляем маршрут
then
/sbin/route -n add -net 192.168.10.0/24 $IPREMOTE > /tmp/ppp.log 2>&1
fi

Таким образом после подключения к сети добавляется маршрут, и нет необходимости добавлять его вручную, так-же при отключении от VPN он удаляется сам.

При необходимости добавлять DNS сервер можно дописать текст между then и fi:
echo «nameserver 4.2.2.1» > /etc/resolv.conf
Вместо 4.2.2.1 укажите свой основной DNS и второй записью рабочий.

Но при этом после отключения нам надо вернуть предыдущий DNS конфиг на место, для этого создаем: touch /etc/ppp/ip-down && chmod +x /etc/ppp/ip-down

Перед началом работы делаем бекап:
cp /etc/resolv.conf /etc/resolv.conf_original

и добавляем в скрипт /etc/ppp/ip-down:
#!/bin/sh
cat /etc/resolv.conf_original > /etc/resolv.conf

Собственно всё. При каждом подключении VPN прописывается маршрут, работаете сколько надо, после отключения удаляется, при этом у вас не будет загвоздок с DNS.

Источник

Mac os таблица маршрутизации

Как добавить постоянные статические маршруты (persistent static routes) в Mac OS X. 1

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

ТЗ: Прописать статические маршруты, автоматически подгружаемые при перезагрузке PC под управлением OS X.

В примере будет использована маршрутизация сети 172.1.0.0/22 на маршрутизатор 172.0.0.200.

1. Создаем Launch Daemon.

Launch Daemon загружается при загрузке ОС, Launch Agent при загрузке профиля. В целях безопасности OS X блокирует попытку запуска Launch Agent под root, а необходимая нам команда route add требует его привилегий. Конечно можно было бы поправить конфиг sudo, но в этом случае обновление системы может сломать реализуемую функциональность, так что было принято решение использовать именно Launch Daemon.

info: Все последующие операции выполняются в консоли.

Создадим и заполним конфиг нового Launch Daemon:

Про АйТи и около айтишные темы

Как посмотреть, добавить и удалить маршрут в Mac OS X

Запускаем терминал Terminal.app и вводим следующую команду — netstat -nr. В результате мы увидим все маршруты пользователя, под которым работаем в системе.


Добавить статичный маршурт можно следующей командой:

Пример: sudo route -n add 192.168.10.0/24 10.0.247.43
Указываем адрес сети с маской и куда направлять запросы для этой сети.

Читайте также:  Install windows error type 3211266

Удаляем статичный маршрут так:

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!

Хотите поблагодарить автора за эту заметку? Вы можете это сделать!

Я использую vpnc для VPN-клиента. Я также делаю некоторые сложные вещи с помощью route , чтобы убедиться, что я все еще могу получить доступ к своей локальной сети и т. Д. И т. Д. (Подробности здесь не очень важны).

Иногда я получаю таблицу маршрутизации таким образом, что я получаю ping: sendto: Network is unreachable для URL-адресов, которые в противном случае разрешаются.

В настоящее время, если я перезапущу Mac OS X, все возвращается к норме. То, что я хотел бы сделать, — сбросить таблицы маршрутизации на «по умолчанию» (например, на то, что он установлен при загрузке) без для всей системы.

Я думаю, что шаг 1 — это route flush (для удаления всех маршрутов). Шаг 2 должен перезагрузить все маршруты по умолчанию.

Любые мысли о том, как это сделать? (например, что такое шаг 2?)

ИЗМЕНИТЬ Кроме того, я замечаю, что другой симптом traceroute также не работает на указанном адресе. Например:

traceroute: bind: Can’t assign requested address

4 ответа

Вам нужно очистить маршруты. Используйте route -n flush несколько раз. Затем добавьте свои маршруты с добавлением маршрута.

Я столкнулся с этой проблемой при использовании домашнего сервера OpenVPN и подключился к нему с помощью приложения Tunnelblick на Mac.

Что происходит с моей стороны, так это то, что маршрут с моим домашним IP-адресом в качестве адресата и неправильным шлюзом оставался после отключения от VPN. Удаление этого маршрута решило проблему, просто

Пример: я нахожусь в школе и после новой загрузки компьютера подключаюсь к беспроводной сети. Я подключаюсь к моему домашнему серверу OpenVPN с помощью Tunnelblick.

Я отключусь от VPN-сервера. Я меняю беспроводные сети. Это изменяет мой шлюз по умолчанию.

Я не могу ни при каких обстоятельствах подключиться к моей домашней сети (VPN, ping, что-либо) после этого. Если я просто удалю маршрут:

Он отлично работает.

Возможно, возникла проблема с тем, как настроен сервер /клиент OpenVPN, который уходит от него (и мне было бы интересно узнать, что это такое), но я установил сценарий post-disconnect Tunnelblick, который автоматизирует удаление этого маршрута .

Сначала вам нужен маршрут для сетевого интерфейса. Если VPN отключен, просто снимите сетевой интерфейс и верните его с помощью ifconfig. Затем используйте команду commnand для построения в вашем gw по умолчанию. Так что-то вроде:

ifconfig en0 down

ifconfig en0 up

route add default

Я столкнулся с той же проблемой, что и @Sean (я также использую OS X), поскольку при переключении между домашними и рабочими сетями маршрут по умолчанию не удалялся.

Для полноты, когда я подключаюсь к своей VPN дома и выполняю следующую команду, он будет показывать шлюз по умолчанию, как показано ниже

И когда я отключусь, шлюз [home-ip] все равно будет там. Когда я подключился к своей рабочей сети, я вообще не смог подключиться к Интернету и столкнулся с той же проблемой, что и OP

Мне пришлось бы вручную удалить маршрут с помощью

Первоначально я помещал «route -n delete» в сценарий post-disconnect.sh , но это было немного грязно, поэтому вместо этого я нашел эту ссылку

По-видимому, причина связана с установкой следующего в моем файле .ovpn

Это означает, что маршрут настроен как root, но когда соединение выполняется, пользователь больше не является root, поэтому маршрут не может быть удален.

Читайте также:  Dbf редактор для windows

Источник

Как направить IP-маршрут через определенный интерфейс в OS X?

Я на Mac и пытаюсь маршрутизировать определенный адрес через определенный шлюз на моем Wi-Fi-соединении.

Иногда это будет работать, а иногда — нет. Я обнаружил, что интерфейс, который он выбирает, каждый раз отличается. Это не должно быть en0 чтобы работать

Вывод netstat -nr когда он не работает:

Это когда это работает: (примечание en0)

Почему я это делаю? Потому что у нашей компании есть прокси, на котором HipChat не работает. Таким образом, я маршрутизирую трафик hipchat через открытую сеть Wi-Fi, все еще находясь в моей сети Ethernet.

Я также попытался добавить запись, используя только интерфейс

HipChat не может подключиться.

РЕДАКТИРОВАТЬ 2: Кто-то попросил всю мою таблицу маршрутизации, вот она сегодня. Обратите внимание, что 54.81.143.201 теперь связан с en3, а не en0

8 ответов 8

Как указали другие, это на самом деле 3 проблемы.

Ваш беспроводной интерфейс, кажется, меняется между en0, en3 и en5.

На моем MacBook Air en0 всегда беспроводная; Thunderbolt-to-Ethernet всегда en3, а USB-to-Ethernet всегда en5. Но если вы подключите адаптер к другому порту на вашем Mac, то имя его сетевой карты изменится. Вы должны решить это в первую очередь. Убедитесь, что ваше беспроводное устройство всегда имеет одно и то же имя. В противном случае при вводе команды статического маршрута, если в расположение en0 не подключен сетевой адаптер , команда (очевидно) завершится с ошибкой адреса (физический адрес не имеет связи).

Также убедитесь, что адаптер всегда подключается к одному и тому же SSID. Очевидно, адрес шлюза должен быть действительным для подсети, и разные сети WiFi будут иметь разные подсети. Это может вызвать другой тип ошибки.

Вы не указали, является ли беспроводное соединение единственным сетевым подключением. Учитывая вышесказанное, я думаю, нет . Это и виртуальные сети из-за VMware или Parallels могут вызвать дополнительные сложности. (Например, если обе подключенные сети используют одно и то же пространство IP . Виртуальные машины часто соединяются и имеют свои собственные IP-адреса / маршруты / ссылки . ) Размещение топологии сети поможет.

После этого попробуйте либо sudo route add -host 54.81.143.201 -iface en0 либо sudo ipfw . Если вы не уверены в имени адаптера, вы можете вместо этого указать его MAC-адрес, например: sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a

Если вы перезагрузитесь, это может не сохраняться. Вам нужно будет справиться с этим отдельно.

Источник

Блоггер.КГ

Apple

Прямой эфир

daite_piva 16 сентября 2020, 16:54

daite_piva 5 декабря 2016, 11:57

daite_piva 22 ноября 2016, 13:29

daite_piva 26 августа 2016, 12:00

daite_piva 7 июля 2016, 14:41

daite_piva 23 февраля 2016, 12:16

daite_piva 22 декабря 2015, 11:10

daite_piva 16 декабря 2015, 18:49

manas_anarov 13 октября 2015, 17:19

daite_piva 5 октября 2015, 17:31

manas_anarov 4 октября 2015, 16:11

manas_anarov 7 сентября 2015, 14:29

daite_piva 20 августа 2015, 11:23

daite_piva 30 июня 2015, 12:02

Блоги

  • Музыка2.34
  • Книги1.15
  • Рейтинг сайтов WWW.NET.KG1.15
  • NIX1.15
  • Юмор2.61
  • Кирнет2.26
  • Google1.31
  • Apple1.29
  • Технопарки2.42
  • Мобильные устройства связи4.97

Mac OS X: Добавление статических маршрутов при подключении по VPN

Для поднятия статических маршрутов при подключении по VPN создаём файл /etc/ppp/ip-up:

Если у вас несколько VPN-соединений, то очевидно придётся проверять IP-адрес шлюза, например:
if [ $IPREMOTE = «10.3.3.1» ]
then
# делаем что надо для подключения к 10.3.3.1
fi

Понятно, что в этом скрипте можно не только статические маршруты навешивать.

Ну и конечно указанный файл должен иметь права на выполнение:

Источник

Оцените статью