О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в 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.
#Hello world
четверг, 6 февраля 2014 г.
Маршрутизация в Mac OS при VPN подключении
sudo touch /etc/ppp/ip-up
sudo chmod a+x /etc/ppp/ip-up
Открываем созданный файл для редактирования
sudo vim /etc/ppp/ip-up
и пропишем в нем:
В данном примере 172.42.38.116 это ip-адрес сервера VPN. 192.0.2.0/24 и 192.168.12.54 подсеть и хост, которые пойдут через VPN туннель. IP-адрес сервера можно посмотреть после установления VPN соединения командой ifconfig и найти интерфейс ppp0.
Аналогично можно сделать скрипт для удаления маршрутов /etc/ppp/ip-down, который будет вызываться при остановке VPN туннеля:
sudo route add -net 192.0.2.0 -netmask 255.255.255.0 172.42.38.116
sudo route add -host 192.168.12.54 -netmask 255.255.255.0 172.42.38.116
VOIP-LAB
Devops Engineer Laboratory — техническая документация. Быстрые решения.
Статические маршруты в macos при поднятии VPN
По-умолчанию, при поднятии VPN соединения, Mac OS X пропишет только один статический маршрут, соответствующий создаваемому туннелю. Но бывают ситуации когда необходимо прописать несколько маршрутов для подсетей или хостов. Решить данный вопрос в GUI Mac OS X невозможно. Но возможно через консоль(терминал).
Итак, открываем терминал. Для решения данной задачи создадим файл /etc/ppp/ip-up, и сделаем его исполняемым:
Открываем созданный файл для редактирования
В данном примере 192.168.20.1 и 192.168.1.239 это ip-адреса VPN-серверов после установления соединения. 192.173.0.0/24 и 192.168.1.0 подсети которые нам необходимо прописать в статичных маршрутах. IP-адрес сервера можно посмотреть после установления VPN соединения командой ifconfig и найти интерфейс ppp0.
Аналогично можно сделать скрипт для удаления маршрутов /etc/ppp/ip-down, который будет вызываться при остановке VPN туннеля:
27 комментариев к “ Статические маршруты в macos при поднятии VPN ”
I?d need to contact you right here. Which is not something I generally do! I delight in reviewing a post that will certainly make people think. Also, many thanks for enabling me to comment!
you have a fantastic blog site here! would certainly you like to make some welcome messages on my blog?
Aw, this was a truly wonderful message. In suggestion I would like to place in composing similar to this furthermore? taking time as well as actual initiative to make an excellent write-up? however what can I claim? I procrastinate alot and also by no means appear to get something done.
Howdy! I simply want to offer you a huge thumbs up for your excellent info you’ve got right here on this post. I’ll be coming back to your web site for more soon.
Area on with this article, I really believe this web site requires far more factor to consider. I?ll possibly be once more to review a lot more, thanks for that details.
There are some interesting points in this write-up however I don?t recognize if I see every one of them facility to heart. There is some legitimacy yet I will certainly take hold point of view till I explore it additionally. Great article, thanks and also we want a lot more! Contributed to FeedBurner too
I was really happy to discover this web-site. I intended to thanks for your time for this fantastic read!! I definitely appreciating every bit of it and also I have you bookmarked to check out new things you post.
Hello There. I found your blog using msn. This is an extremely well written article.
I’ll be sure to bookmark it and return to read more of
your useful info. Thanks for the post. I’ll definitely return. cheap flights 32hvAj4
The following time I review a blog site, I wish that it doesn’t disappoint me as much as this set. I mean, I know it was my selection to review, however I actually assumed youd have something fascinating to state. All I listen to is a number of whimpering about something that you could take care of if you werent as well hectic looking for interest.
You made some respectable factors there. I viewed the internet for the issue and also found most people will certainly go along with with your site.
Hiya! Quick question that’s totally off topic. Do you know how to make your site mobile friendly?
My blog looks weird when browsing from my iphone4.
I’m trying to find a template or plugin that might be able to correct
this issue. If you have any recommendations, please share.
Cheers!
Wonderful goods from you, man. I’ve understand your
stuff previous to and you’re just extremely wonderful.
I actually like what you’ve acquired here, certainly
like what you are stating and the way in which you say it. You make it entertaining and you still take
care of to keep it smart. I can not wait to read far more from you.
This is actually a great website.
If you wish for to obtain a good deal from this post then you have to apply these
strategies to your won weblog.