- О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS
- Как посмотреть, добавить или удалить маршрут в macOS
- Маршрутизация в Mac OS при VPN подключении
- Mac os таблица маршрутизации
- Как добавить постоянные статические маршруты (persistent static routes) в Mac OS X. 1
- Как посмотреть, добавить и удалить маршрут в Mac OS X
- 4 ответа
- Как направить IP-маршрут через определенный интерфейс в OS X?
- 8 ответов 8
- Блоггер.КГ
- Apple
- Прямой эфир
- Блоги
- Mac OS X: Добавление статических маршрутов при подключении по VPN
О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS
Я давно заметил, что многих пользователей пугает само слово «маршрутизация». Да чего там говорить про обычных пользователей, когда даже админы (особенно те, кто кроме Windows ничего другого не видели) с трудом понимают что это такое.
И я сейчас не преувеличиваю. Иногда требуется прописать статический маршрут на клиенте, а не на роутере и мне приходилось объяснять не пользователю, а админу зачем это нужно, как это делается и в чём отличие от маршрута по умолчанию.
Мальчик сказал маме: “Я хочу кушать” и мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать” и папа отправил его назад к маме.
Мальчик сказал маме: “Я хочу кушать” и мама снова отправила его к папе.
Так мальчик бегал туда-обратно, пока не упал.
Что случилось с мальчиком? TTL кончился.
Скажете бессмысленный анекдот? Чтобы его понять нужно изучить как работают сети, а пока давайте объясню простыми словами что такое «маршрутизация» (routing), чтобы это слово вас больше не пугало.
Если вы когда-либо настраивали свой роутер или смотрели свойства подключения к сети, то наверняка видели что кроме адреса вашего компьютера, есть ещё адрес шлюза (ещё одно непонятное слово).
Всё просто. Интернет можно представить как разветвлённую дорожную сеть с кучей направлений. Каждая из дорог может привести куда угодно и не факт что нам туда вообще нужно. Так вот, ваш шлюз — это отправная точка во всемирную сеть, откуда вы начинаете свой путь и, в большинстве случаев, он становится для вас маршрутом по умолчанию.
То есть, когда вы открываете какие-то сайты, качаете торренты или проверяете почту, все ваши данные проходят через устройство с данным адресом. Он знает куда нужно дальше передавать пакеты данных. Таких отправных точек может быть превеликое множество и каждая из них обладает информацией о своём сегменте сети, компьютерах и других устройствах, расположенных за ней. Собственно, маршрутизация — это процесс определения лучшего маршрута.
Когда мы знаем точный маршрут следования (его ещё называют статическим), то можем сразу начать движение по нему, в противном случае используется маршрут по умолчанию, который как бы говорит: всё, что не знаешь, куда послать — шли сюда.
В каком случае может потребоваться указывать статический маршрут? Например, при использовании VPN-соединений, когда не желательно гонять весь трафик в защищённом канале. Но это уже выходит за рамки простого описания, да и про VPN я уже много рассказывал ранее. Кому интересно что это такое, можете почитать тут, а сейчас расскажу как управлять статическими маршрутами на примере macOS (если вы хотите узнать как управлять маршрутами в Windows и Linux, оставляйте комментарии и в одном из следующих постов я постараюсь изложить данную тему подробнее).
Как посмотреть, добавить или удалить маршрут в macOS
Чтобы посмотреть все действующие маршруты, отрываем Терминал и вводим следующую команду:
Добавить статичный маршрут можно следующей командой:
sudo route -n add 192.168.10.0/24 10.8.0.9
Здесь мы указали что для доступа к сети 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
Указываем адрес сети с маской и куда направлять запросы для этой сети.
Удаляем статичный маршрут так:
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите 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, поэтому маршрут не может быть удален.
Источник
Как направить 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
Понятно, что в этом скрипте можно не только статические маршруты навешивать.
Ну и конечно указанный файл должен иметь права на выполнение:
Источник