Решения о маршрутизации VPN, настройка маршрута между впн соединением и интернетом
впн

Решения о маршрутизации для VPN

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

Решения о маршрутизации для VPN.

Сетевые маршруты необходимы сетевому стеку, чтобы понять, какой интерфейс использовать для исходящего трафика. Один из важнейших критериев принятия решений о конфигурация VPN состоит в том, хотите ли вы отправлять все данные по VPN (принудительное использование тоннеля) или передавать только часть данных по VPN (разделение туннеля). Этот выбор влияет на планирование конфигурации и ресурсов, а также на уровень безопасности соединения.

Организация VPN каналов между офисами. Маршрутизация

Организация каналов между удаленными сетями посредством VPN-соединения одна из самых популярных тем на нашем сайте. В тоже время, как показывает читательский отклик, наибольшие затруднения вызывает правильная настройка маршрутизации, хотя мы специально уделяли внимание этому моменту. Проанализировав наиболее часто задаваемые вопросы, мы решили посвятить теме маршрутизации отдельную статью. Есть вопросы? Надеемся, что после прочтения данного материала их станет меньше.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Возьмем произвольную рабочую станцию, подключенную к сети, каким образом она определяет куда посылать тот или иной пакет? Для этой цели предназначена таблица маршрутизации, которая содержит перечень правил для всех возможных адресов назначения. На основании этой таблицы хост (или маршрутизатор) принимают решение, на какой интерфейс и адрес назначения отправить пакет, адресованный определенному получателю.

Чтобы не быть голословными рассмотрим таблицу маршрутов самой обыкновенной рабочей станции. В Windows системах это можно сделать командой:

route printВ итоге мы увидим следующую таблицу:

VPN-route-001.jpg
Все очень просто, нас интересует секция IPv4 таблица маршрута, первые две колонки содержат адрес назначения и маску сети, затем следует шлюз — узел которому следует перенаправить пакеты для указанного назначения, интерфейс и метрика. Если в колонке Шлюз указано On-link, то это означает что адрес назначения находится в одной сети с хостом и доступен без маршрутизации. Метрика определяет приоритет правил маршрутизации, если адрес назначения имеет в таблице маршрутов несколько правил, то используется тот, что имеет меньшую метрику.

VPN_route-4.png

Наша рабочая станция принадлежит к сети 192.168.31.0 и, согласно таблице маршрутов, все запросы к данной сети отправляет на интерфейс 192.168.31.175, что соответствует сетевому адресу это станции. Если адрес назначения находится в одной сети с адресом источником, то доставка информации происходит без использования IP-маршрутизации (сетевой уровень L3 модели OSI), на канальном уровне (L2). В противном случае пакет отправляется узлу, указанному в соответствующему сети назначения правилу таблицы маршрутов.

Если такого правила нет, то пакет отправляется по нулевому маршруту, который содержит адрес основного шлюза сети. В нашем случае это адрес роутера 192.168.31.100. Нулевым этот маршрут называется потому, что адресом назначения для него указывается 0.0.0.0. Этот момент является очень важным для дальнейшего понимания процесса маршрутизации: все пакеты, не принадлежащие данной сети и не имеющие отдельных маршрутов, всегда отправляются основному шлюзу сети.

Что сделает маршрутизатор, получив такой пакет? Прежде всего разберемся, чем отличается маршрутизатор от обычной сетевой станции. Если говорить крайне упрощенно, то маршрутизатором (роутером) является сетевое устройство, которое настроено передавать пакеты между сетевыми интерфейсами. В Windows это достигается включением службы Маршрутизация и удаленный доступ, в Linux заданием опции ip_forward.

Решение о передаче пакетов в этом случае также принимается на основании таблицы маршрутизации. Посмотрим, что содержит данная таблица на самом обычном роутере, например, описанном нами в статье: Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3. В Linux-системах получить таблицу маршрутов можно командой:

route -n

Как видим, наш роутер содержит маршруты к известным ему сетям 192.168.31.0 и 192.168.3.0, а также нулевой маршрут к вышестоящему шлюзу 192.168.3.1.

VPN-route-002.jpg
Адрес 0.0.0.0 в колонке шлюза (Gateway) обозначает, что адрес назначения доступен без маршрутизации. Таким образом все пакеты с адресами назначения в сетях 192.168.31.0 и 192.168.3.0 будут отправлены на соответствующий интерфейс, а все остальные пакеты будут переданы дальше по нулевому маршруту.

Следующий важный момент — адреса приватных (частных) сетей, они же «серые», к ним относятся три диапазона:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

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

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

Самое время проверить, как это все работает. Попробуем с нашего узла 192.168.31.175 пропинговать узел 192.168.3.106, который находится в сети за роутером. Как видим, это нам удалось, хотя таблица маршрутов узла не содержит никаких сведений о сети 192.168.3.0.

VPN-route-003.jpg
Как это стало возможным? Так как узел-источник ничего не знает о сети назначения, то он отправит пакет на адрес шлюза. Шлюз проверит свою таблицу маршрутов, обнаружит там запись для сети 192.168.3.0 и отправит пакет на соответствующий интерфейс, в этом несложно убедиться выполнив команду трассировки, которая покажет весь путь нашего пакета:

tracert 192.168.3.106VPN-route-004.jpg
Теперь попробуем выполнить пинг узла 192.168.31.175 с узла 192.168.3.106, т.е. в обратном направлении. У нас ничего не вышло. Почему?

VPN-route-005.jpg
Давайте внимательно посмотрим таблицу маршрутизации. Никаких записей для сети 192.168.31.0 она не содержит, поэтому пакет будет отправлен маршрутизатору 192.168.3.1, как основному шлюзу сети, который данный пакет отбросит, так как никаких данных о сети назначения не имеет. Как быть? Очевидно, что следует отправить пакет тому узлу, который содержит нужную информацию и может передать пакет по назначению, в нашем случае это роутер 192.168.31.100, который в данной сети имеет адрес 192.168.3.108.

Чтобы пакеты для сети 192.168.31.0 отправлялись именно ему, нам нужно создать отдельный маршрут.

192.168.31.0 mask 255.255.255.0 192.168.3.108В дальнейшем мы будем придерживаться такой записи маршрутов, что она значит? Все просто, пакеты для сети 192.168.31.0 с маской 255.255.255.0 следует отправлять узлу 192.168.3.108. В Windows маршрут можно добавить командой:

route add 192.168.31.0 mask 255.255.255.0 192.168.3.108В Linux:

route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108Попробуем.

VPN-route-006.jpg
Давайте проанализируем результат, в таблице маршрутизации появился маршрут и все пакеты к сети 192.168.31.0 теперь отправляются роутеру этой сети, что видно из ответа команды ping, но до назначения не доходят. В чем дело? Самое время вспомнить, что одной из основных задач роутера является не только маршрутизация, но и функция сетевого экрана, который явно запрещает доступ из внешней сети внутрь. Если мы временно заменим данное правило разрешающим, то все будет работать.

VPN-route-007.jpg
Добавленные вышеуказанными командами маршруты сохраняются до перезагрузки узла, это удобно, даже если вы сильно накуролесили, достаточно просто выполнить перезагрузку, чтобы отменить внесенные изменения. Чтобы добавить постоянный маршрут в Windows выполните команду:

route add 192.168.31.0 mask 255.255.255.0 192.168.3.108 -pВ Linux в /etc/network/interfaces, после описания интерфейса, следует добавить:

post-up route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108Кстати, это не единственный способ настроить доступ из сети 192.168.3.0 в сеть 192.168.31.0, вместо того, чтобы добавлять маршрут для каждого узла, можно «научить» правильно отправлять пакеты маршрутизатор.

VPN-route-008.jpg
В этом случае узел источник не имеет записей о сети назначения и отправит пакет шлюзу, в прошлый раз шлюз такой пакет отбросил, но теперь мы добавили в его таблицу маршрутизации нужный маршрут, и он отправит пакет узлу 192.168.3.108, который доставит его по назначению.

Мы настоятельно рекомендуем самим потренироваться на аналогичных примерах, чтобы маршрутизация перестала быть для вас черным ящиком, а маршруты — китайской грамотой. После того как возникнет понимание, можно переходит ко второй части данной статьи.

Теперь рассмотрим реальные примеры по объединению сетей офисов через VPN-соединение. Несмотря на то, что чаще всего для этих целей используется OpenVPN и в наших примерах мы также подразумеваем решения на его основе, все сказанное будет справедливо для любого типа VPN-соединения.

Самый простой случай, когда VPN-сервер (клиент) и маршрутизатор сети располагаются на одном хосте. Рассмотрим схему ниже:

VPN-route-009.jpg
Так как теорию, надеемся, вы усвоили и закрепили на практике, проанализируем маршрут пакетов из сети офиса 192.168.31.0 в сеть филиала 192.168.44.0, такой пакет будет отправлен на шлюз по умолчанию, который является также VPN-сервером. Однако данный узел ничего не знает о сети назначения и должен будет откинуть данный пакет. В тоже время мы уже можем обратиться к маршрутизатору филиала по его адресу в VPN-сети 10.8.0.2, так как данная сеть доступна с маршрутизатора офиса.

Чтобы получить доступ к сети филиала нам нужно предать пакеты для этой сети узлу, который является частью этой сети или имеет маршрут к ней. В нашем случае это маршрутизатор филиала. Поэтом на маршрутизаторе офиса добавляем маршрут:

192.168.44.0 mask 255.255.255.0 10.8.0.2Теперь шлюз офиса, получив пакет для сети филиала, отправит его через VPN-канал маршрутизатору филиала, который, являясь узлом сети 192.168.44.0 доставит пакет по назначению. Для доступа из сети филиала в сеть офиса нужно прописать аналогичный маршрут на маршрутизаторе филиала.

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

Сначала рассмотрим первый вариант.

VPN-route-010.jpg
Для того, чтобы пакеты для сети филиала попали в VPN-сеть мы должны добавить на каждый клиент сети маршрут к VPN-серверу (клиенту), в противном случае они будут отправлены шлюзу, который их отбросит:

192.168.44.0 mask 255.255.255.0 192.168.31.101

Однако VPN-сервер ничего не знает о сети филиала, но может отправлять пакеты в пределах VPN-сети, где есть интересующий нас узел сети филиала, поэтому направим пакет туда, добавив на VPN-сервере (клиенте) маршрут:

192.168.44.0 mask 255.255.255.0 10.8.0.2

Недостаток данной схемы — необходимость прописывать маршруты на каждом узле сети, что не всегда удобно. Его можно использовать если устройств в сети немного или требуется выборочный доступ. В остальных случаях задачу маршрутизации будет правильнее переложить на основной маршрутизатор сети.

VPN-route-011.jpg
В этом случае сетевые устройства офиса ничего не знают о сети филиала и отправят пакеты для него по нулевому маршруту, шлюзу сети. Теперь задача шлюза перенаправить этот пакет VPN-серверу (клиенту), это просто сделать, добавив в его таблицу маршрутизации нужный маршрут:

192.168.44.0 mask 255.255.255.0 192.168.31.101

Про задачу VPN-сервера (клиента) мы упоминали выше, он должен доставить пакеты тому узлу VPN-сети, который является частью сети назначения или имеет маршрут к ней.

192.168.44.0 mask 255.255.255.0 10.8.0.2

Для доступа из сети филиала в сеть офиса потребуется добавить соответствующие маршруты на сетевые узлы филиала. Сделать это можно любым удобным способом, не обязательно также, как это сделано в офисе. Простой реальный пример: все компьютеры филиала должны иметь доступ к сети офиса, но не все компьютеры офиса должны иметь доступ в филиал. В таком случае в филиале добавляем маршрут к VPN-серверу (клиенту) на маршрутизаторе, а в офисе добавляем его только на нужные компьютеры.

В целом, если вы представляете, как работает маршрутизация и каким образом принимается решение о перенаправлении пакетов, а также умеете читать таблицу маршрутизации, то настройка правильных маршрутов не должна вызывать затруднений. Надеемся, что после прочтения данной статьи у вас их также не будет.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Конфигурация разделение туннеля

В конфигурации с разделением туннеля можно указать маршруты, которые будут проходить через VPN, а весь другой трафик будут проходить через физический интерфейс.

Маршруты можно настроить с помощью параметра VPNv2/имя_профиля/RouteList в разделе Поставщик службы конфигурации (CSP) VPNv2.

Для каждого элемента маршрута в списке можно указать следующие параметры.

  • Адрес: VPNv2/ProfileName/RouteList/routeRowId/Address
  • Размер префикса: VPNv2/ProfileName/RouteList/routeRowId/Prefix
  • Маршрут исключения: VPNv2/ProfileName/RouteList/routeRowId/ExclusionRouteVPN-платформа Windows теперь позволяет указать маршруты исключения, которые не должны проходить через физический интерфейс.

Для приложений VPN платформы UWP маршруты также можно добавить во время подключении через сервер.

Конфигурация принудительного использования туннеля

В конфигурации с принудительным туннелированием весь трафик проходит через VPN. Это конфигурация по умолчанию, которая используется, если маршруты не заданы.

Этот параметр предназначен только для обработки записей маршрутизации. Для принудительного туннеля VPN V4 и V6 маршруты по умолчанию (например, 0.0.0.0/0) добавляются в таблицу маршрутизации с более низкой метрикой, чем для других интерфейсов. При этом трафик передается через VPN, пока не существует маршрута через физический интерфейс.

Для встроенной VPN этой настройкой можно управлять с помощью параметра MDM VPNv2/имя_профиля/NativeProfile/RoutingPolicyType.

Для подключаемого модуля VPN платформы UWP это свойство управляется непосредственно приложением. Если подключаемый модуль VPN указывает маршруты по умолчанию для IPv4 и IPv6 как единственные два маршрута включения, платформа VPN отмечает, что для туннель используется для подключения принудительно.

Настройка маршрутизации

Сведения о настройке XML см. в разделе Параметры профиля VPN и VPNv2 CSP.

При настройке VPN-профиля в Microsoft Intune установите флажок, чтобы включить конфигурацию с разделением туннеля.

Затем в разделе Корпоративные границы добавьте маршруты, которые будут использовать VPN-подключение.

Добавление маршрутов при работе с VPN (VPN маршруты)

Недавно столкнулся с одной проблемой, один из моих клиентов попросил настроить VPN тоннель на роутере для связи с одним из его серверов, я это настроил, но заметил, что после добавления VPN соединения на ПК с которого я подключаюсь к VPN серверу, доступ в интернет начинает по умолчанию идти через VPN подключение (что напрочь убивает скорость интернета на ПК). Я долго искал в интернете способы решения данного вопроса, но ничего толкового я не нашел. Однако я понимал что дело в маршруте через который идет доступ в Интернет. Я долго копался в метриках и маршрутах и решил данную проблему следующим образом:

1. Заходим в центр управления сетями и общим доступом и переходим во вкладку изменение параметров адаптера.

2. Кликаем правой клавишей по ранее созданному VPN подключению, заходим в свойства, в свойствах находим раздел Сеть и заходим в настройки протокола Интернет версии 4.

3. Далее переходим во вкладку дополнительно.

4. Чтобы не использовать VPN сервер основным маршрутом выхода в Интернет ставим галочку на пункте «Отключить добавление маршрута основанное на классе» и сохраняем изменения.

Для доступа к серверу через VPN подключение добавляем маршрут в командной строке, открытой от имени Администратора.

route add 192.168.9.0 mask 255.255.255.0 192.168.2.1, где 192.168.9.0 — сетевой адрес, 255.255.255.0 — сетевая маска, 192.168.9.0 — сетевой шлюз (IP адреса настроенные на VPN сервере)

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

Автоматическое добавление маршрутов для VPN-соединения в Windows

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

Но вернемся к нашему вопросу. Для добавления маршрутов в удаленную сеть традиционно использовали несколько методов:

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

Запустим консоль PowerShell и прежде всего узнаем имена имеющихся в системе VPN-подключений:

Результатом работы команды будет информация обо всех коммутируемых подключениях, нас интересует поле Name:

Add VPNConnectionRoute 001
Теперь добавим маршрут к удаленной сети для подключения с именем L2TP MT.

Теперь проверим как это все работает. Проверим таблицу маршрутизации при отключенном VPN-подключении и убедимся, что маршруты в удаленную сеть отсутствуют:

Данная команда добавит маршрут к узлу 192.168.111.101, к другим узлам удаленной сети доступа у VPN-пользователя не будет.

Чтобы удалить маршрут следует воспользоваться командой Remove-VPNConnectionRoute, синтаксис которой полностью повторяет команду добавления маршрута:

Как видим, современные версии Windows дают нам в руки достаточно простой и удобный инструмент управления маршрутами для VPN-подключений.

Важно! Данные возможности не поддерживаются в Windows 7.

Как прописать статический маршрут? И зачем он нужен?

В данной статье мы рассмотрим, что такое статический маршрут и зачем его вообще прописывать. Мы будем использовать так называемые «руты» или другими словами будем прописывать маршруты с помощью команды route add в командной строке Windows.

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

Для начала пару определений:

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

Статический маршрут — представляет собой заданный администратором маршрут, который заставляет пакеты, перемещающиеся между источником и адресатом, отправляться по указанному пути. Другими словами — это явно указанный путь, по которому должен пройти пакет из пункта А в пункт Б.

В этой статье мы с Вами говорим, о статическом маршруте на обыкновенном компьютере с операционной системой Windows. Для чего же нам нужно уметь прописывать статические маршруты? спросите Вы, сейчас попробую объяснить, где это знание Вам может пригодиться.

Сейчас очень распространено для безопасности использовать «Виртуальные частные сети» (VPN). VPN используют как в организациях, для организации своей защищенной сети, так и провайдеры, для предоставления доступа, к глобальной сети Интернет, простым пользователям. Но, так или иначе, это иногда вызывает небольшие неудобства, как в организациях, так и у обычных пользователей.

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

Это можно исправить как раз с помощью статического маршрута. Или другой случай, пригодится сисадминам, (пример из жизни) есть организация, у которой имеются небольшие удаленные офисы, связь с которыми идет по средствам OpenVPN. Был случай, когда мне пришлось узнать внешние ip адреса у этих удаленных офисов, я подключался к компьютеру по VPN сети и соответственно не мог узнать внешний ip, так как он мне бы показал внешний ip нашего VPN соединения. В итоге я просто на всего прописал один статический маршрут на удаленном компьютере, с помощью которого и попал на нужный мне сайт (который показывал внешний ip) и все. Есть, конечно, и другой вариант, съездить туда и узнать ip без подключения к VPN сети, но Вы сами понимаете, что на это нет времени и попросту неохота. Теперь Вы немного представляете, где и для чего Вам может пригодиться знание того, как прописываются статические маршруты.

Примеры использования утилиты route

Хватит теории, переходим к практике. Сейчас мы с Вами пропишем маршрут, который разрешит нам получить доступ к локальной сети при включенном VPN соединении, пригодится обычным пользователям, у которых дома более одного компьютера, а в Интернет выходят по средствам VPN.

Имеем локальную сеть: 192.168.1.0/24

Локальный IP первого компьютера (пусть он будет компьютер — A) – 192.168.1.2 (на котором присутствует VPN соединение)

Локальный IP второго компьютера (а этот компьютер — B) – 192.168.1.3

IP адрес шлюза т.е. модема – 192.168.1.1

Нам нужно прописать маршрут на компьютере A, чтобы он смог видеть компьютер B при включенном VPN соединении. Делается это следующем образом: запускаем командную строку Пуск->Выполнить->cmd и набираем следующую команду:

route –p add 192.168.1.0 mask 255.255.255.0 192.168.1.1

  • route – сама программа, которая работает с таблицей маршрутизации;
  • -p – ключ, который говорит, что маршрут будет постоянный, так как (Важное замечание!) без этого ключа все маршруты, которые Вы добавите удалятся после перезагрузке, поэтому если Вы хотите использовать маршрут всегда, то пропишите этот ключ, если только один раз, то его можно не писать;
  • add – команда, добавляющая запись в таблицу маршрутизации;
  • 192.168.1.0 – сеть, с которой Вы хотите иметь связь;
  • mask 255.255.255.0 – маска подсети;
  • 192.168.1.1 – адрес шлюза, обычно это адрес модема.

Добавив всего один маршрут, Вы получаете доступ к своей сети при подключенном Интернете, т.е. VPN соединении.

Вот еще один небольшой пример, у Вас дома подключение к Интернету через модем ADSL и Вам иногда (ну или постоянно) требуется подключение к VPN сети, и соответственно выхода в Интернет через свой канал у Вас уже не будет. Но с помощью статического маршрута Вы можете получить доступ к определенным сайтам (узнав предварительно их ip адреса, с помощью команды ping в командной строке, например ping yandex.ru), к которым Вам бы хотелось иметь постоянный доступ (и при подключенном VPN соединении и неподключенном). Например, сайт имеет ip адрес 172.18.24.13, а шлюз (маршрутизатор, модем) имеет IP адрес 192.168.0.1, Вам необходимо прописать следующее:

route –p add 172.18.24.13mask 255.255.255.255 192.168.0.1

Синтаксис и основные ключи утилиты route

Теперь поговорим поподробней о команде route.

route [-f] [-p][destination] [mask] [gateway] [metric] [if]

  • -f — удаляет из таблицы маршрутизации все маршруты;
  • -p – сохраняет маршрут на постоянную основу;
  • add – добавляет новый маршрут;
  • change — меняет текущий маршрут в таблице маршрутизации;
  • delete — удаляет маршрут из таблицы маршрутизации;
  • print — отображает содержимое таблицы маршрутизации;
  • destination — при добавлении или изменении маршрута этот параметр используется для указания идентификатора сети назначения;
  • mask — при добавлении или изменении маршрута этот параметр используется для указания маски подсети для сети назначения;
  • gateway — при добавлении или изменении нового маршрута этот параметр используется для указания шлюза (маршрутизатора или модема);
  • metric — используется для указания целого числа в диапазоне от 1 до 9999, являющегося метрикой стоимости для маршрута. Если для определенной сети назначения существует несколько возможных маршрутов, будет использован маршрут с наименьшим значением метрики;
  • if — используется для указания номера индекса интерфейса, который подключен к сети назначения.

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

route print

Вот в принципе и все что я хотел Вам рассказать, но следует помнить что, проводя все выше указанные манипуляции нужно быть внимательным, так как ошибка всего в одной цифре приведет к нежелательным результатам, не критичным, но нежелательным. В особенности это относится к корпоративным сетям, где маршрутизация уже настроена, и Вы можете легко изменить, удалить нужные маршруты.

Как прописать статический маршрут в Windows 10

У некоторых Интернет-провайдеров иногда возникает необходимость дополнительно прописать статический маршрут. Например, для работы файлообменных сетей DC++ и torrent. Если Вы подключены через роутер, то все настройки маршрутизации делаются на нём, а на компьютере ничего дополнительно указывать не нужно.

А вот если кабель провайдера подключен напрямую в компьютер или через модем в режиме “мост”(Bridge), тогда может возникнуть необходимость прописать статический маршрут, добавив его в таблицу маршрутизации Windows. Чтобы это сделать, Вы должны запустить командную строку с правами Администратора. Для этого надо нажать кнопку “Пуск” и выбрать пункт меню “Программы” -> “Стандартные” -> “Командная строка”, либо нажать комбинацию клавиш Win+R и ввести команду “cmd”.

В открывшемся черном окне консоли нужно прописать маршруты используя команду route.

Параметры команды:
-f Очистка таблиц маршрутов от записей всех шлюзов. При указании одной из команд таблицы очищаются до выполнения команды.
-p При использовании с командой ADD задает сохранение маршрута при перезагрузке системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, изменяющих соответствующие постоянные маршруты.
-4 Обязательное использование протокола IPv4.
-6 Обязательное использование протокола IPv6.
Одна из следующих команд:
PRINT Печать маршрута
ADD Добавление маршрута
DELETE Удаление маршрута
CHANGE Изменение существующего маршрута
destination Адресуемый узел.
MASK Указывает, что следующий параметр интерпретируется как маска сети.
netmask Значение маски подсети для записи данного маршрута. Если этот параметр не задан, по умолчанию используется значение 255.255.255.255.
gateway Шлюз.
interface Номер интерфейса для указанного маршрута.
METRIC Определение метрики, т.е. цены для адресуемого узла.

Для примера рассмотрим три основных подсети, используемые как локальные:

192.168.0.0/16
10.0.0.0/8
172.16.0.0/16

Соответственно, Вам надо будет прописать 3 вот такие строки:

route -p add 192.168.0.0 mask 255.255.0.0
route -p add 10.0.0.0 mask 255.0.0.0
route -p add 172.16.0.0 mask 255.240.0.0

Например, Ваш шлюз 192.168.50.1, тогда команды будут выглядеть так:

route -p add 192.168.0.0 mask 255.255.0.0 192.168.50.1
route -p add 10.0.0.0 mask 255.0.0.0 192.168.50.1
route -p add 172.16.0.0 mask 255.240.0.0 192.168.50.1

Если возникнет необходимость удалить статические маршруты – просто введите следующие команды:

route delete 192.168.0.0
route delete 10.0.0.0
route delete 172.16.0.0

Как прописать статический маршрут в windows с помощью утилиты командной строки route

Сегодня расскажу как прописать статический маршрут в windows с помощью утилиты командной строки route и как посмотреть таблицу маршрутизации Windows. Утилита route выводит на экран и изменяет записи в локальной таблице IP-маршрутизации. Когда вам может потребоваться добавление маршрута windows, тут за примером далеко ходить не нужно, самое простое, что вам нужно направить трафик до определенной локальной сети, понятно что все маршруты должен знать шлюз по умолчанию, но не всегда это возможно выполнить по ряду причин и не правильном построении сети. Кстати если кому интересно, то я рассказывал, как делается настройка маршрутов в centos, советую посмотреть для расширения кругозора.

Добавление маршрута windows

Добавление маршрута Windows начинается с изучения синтаксиса команды отвечабщего за это, открываем командную строку от имени администратора и вводим вот такую команду:

Запущенная без параметров, команда route выводит справку.

Утилита командной строки Route

  • -f Очищает таблицу маршрутизации от всех записей, которые не являются узловыми маршрутами (маршруты с маской подсети 255.255.255.255), сетевым маршрутом замыкания на себя (маршруты с конечной точкой 127.0.0.0 и маской подсети 255.0.0.0) или маршрутом многоадресной рассылки (маршруты с конечной точкой 224.0.0.0 и маской подсети 240.0.0.0). При использовании данного параметра совместно с одной из команд (таких, как add, change или delete) таблица очищается перед выполнением команды.
  • -p При использовании данного параметра с командой add указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации каждый раз при запуске протокола TCP/IP. По умолчанию добавленные маршруты не сохраняются при запуске протокола TCP/IP. При использовании параметра с командой print выводит на экран список постоянных маршрутов. Все другие команды игнорируют этот параметр. Постоянные маршруты хранятся в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes команда Указывает команду, которая будет запущена на удаленной системе. В следующей таблице представлен список допустимых параметров.
  • add > Добавление маршрута
  • change > Изменение существующего маршрута
  • delete > Удаление маршрута или маршрутов
  • print > Печать маршрута или маршрутов

Конечная точка определяет конечную точку маршрута. Конечной точкой может быть сетевой IP-адрес (где разряды узла в сетевом адресе имеют значение 0), IP-адрес маршрута к узлу, или значение 0.0.0.0 для маршрута по умолчанию. mask маска_сети Указывает маску сети (также известной как маска подсети) в соответствии с точкой назначения. Маска сети может быть маской подсети соответствующей сетевому IP-адресу, например 255.255.255.255 для маршрута к узлу или 0.0.0.0. для маршрута по умолчанию. Если данный параметр пропущен, используется маска подсети 255.255.255.255. Конечная точка не может быть более точной, чем соответствующая маска подсети. Другими словами, значение разряда 1 в адресе конечной точки невозможно, если значение соответствующего разряда в маске подсети равно 0. шлюз Указывает IP-адрес пересылки или следующего перехода, по которому доступен набор адресов, определенный конечной точкой и маской подсети. Для локально подключенных маршрутов подсети, адрес шлюза — это IP-адрес, назначенный интерфейсу, который подключен к подсети. Для удаленных маршрутов, которые доступны через один или несколько маршрутизаторов, адрес шлюза — непосредственно доступный IP-адрес ближайшего маршрутизатора. metric метрика Задает целочисленную метрику стоимости маршрута (в пределах от 1 до 9999) для маршрута, которая используется при выборе в таблице маршрутизации одного из нескольких маршрутов, наиболее близко соответствующего адресу назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика отражает количество переходов, скорость прохождения пути, надежность пути, пропускную способность пути и средства администрирования. if интерфейс Указывает индекс интерфейса, через который доступна точка назначения. Для вывода списка интерфейсов и их соответствующих индексов используйте команду route print. Значения индексов интерфейсов могут быть как десятичные, так и шестнадцатеричные. Перед шестнадцатеричными номерами вводится 0х. В случае, когда параметр if пропущен, интерфейс определяется из адреса шлюза. /? Отображает справку в командной строке.

Большие значения в столбце metric таблицы маршрутизации — результат возможности протокола TCP/IP автоматически определять метрики маршрутов таблицы маршрутизации на основании конфигурации IP-адреса, маски подсети и стандартного шлюза для каждого интерфейса ЛВС. Автоматическое определение метрики интерфейса, включенное по умолчанию, устанавливает скорость каждого интерфейса и метрики маршрутов для каждого интерфейса так, что самый быстрый интерфейс создает маршруты с наименьшей метрикой. Чтобы удалить большие метрики, отключите автоматическое определение метрики интерфейса в дополнительных свойствах протокола TCP/IP для каждого подключения по локальной сети.

Имена могут использоваться для параметра конечная_точка, если существует соответствующая запись в файле базы данных Networks, находящемся в папке системный_корневой_каталог\System32\Drivers\Etc. В параметре шлюз можно указывать имена до тех пор, пока они разрешаются в IP-адреса с помощью стандартных способов разрешения узлов, таких как запрос службы DNS, использование локального файла Hosts, находящегося в папке системный_корневой_каталог\system32\drivers\etc, или разрешение имен NetBIOS.

Если команда — print или delete, параметр шлюз опускается и используются подстановочные знаки для указания точки назначения и шлюза. Значение конечной_точки может быть подстановочным значением, которое указывается звездочкой (*). При наличии звездочки (*) или вопросительного знака (?) в описании конечной точки, они рассматриваются как подстановки, тогда печатаются или удаляются только маршруты, соответствующие точке назначения. Звездочка соответствует любой последовательности символов, а вопросительный знак — любому одному символу. 10.*.1, 192.168.*, 127.* и *224* являются допустимыми примерами использования звездочки в качестве подстановочного символа.
При использовании недопустимой комбинации значений конечной точки и маски подсети (маски сети) выводится следующее сообщение об ошибке : «Маршрут: неверная маска подсети адреса шлюза». Ошибка появляется, когда одно или несколько значений разрядов в адресе конечной точки равно 1, а значения соответствующих разрядов маски подсети — 1. Для проверки этого состояния выразите конечную точку и маску подсети в двоичном формате. Маска подсети в двоичном формате состоит из последовательности единичных битов, представляющей часть сетевого адреса конечной точки, и последовательности нулевых битов, обозначающей часть адреса узла конечной точки. Проверьте наличие единичных битов в части адреса точки назначения, которая является адресом узла (как определено маской подсети).
Параметр -p поддерживается в команде route только в операционных системах Windows NT 4.0, Windows 2000, Windows Millennium Edition и Windows XP. Этот параметр не поддерживается командой route в системах Windows 95 и Windows 98.

Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).

Домашняя VPN — настройка клиентов, работающих под упралением Android

Продолжаем тему про настройку и использование домашней VPN сети. Было уже и теоретическое введение, и настройка роутера в качестве VPN сервера на практике. Подошло время рассказать про настройку клиентских устройств. Ведь вся эту канитель с VPN затевалась для того, чтобы иметь доступ к домашней сети, находясь вне дома. Наверное, я повторюсь, но все же, перечислю, какие для этого у меня есть возможности. Обычно, в то время, когда я нахожусь вне дома, в моем распоряжении имеются (не обязательно одновременно):

  • планшет под управлением Android (с недавнего времени используется версия Android 5.0.1 на планшете Asus Memo Pad 7)
  • смартфон Asus ZenFone 5, тоже уже с Android 5 на борту
  • планшет Acer Iconia Tab W701 под управлением Windows 8.1 Professional
  • ноутбук-трансформер HP TouchSmart 2 на котором установлена профессиональная версия Windows 7.
  • беспроводное устройство хранения данных Seagate Wireless Plus с какой-то урезанной версией Linux

Еще у меня есть пара мобильных роутеров: TP LINK MR-3040, в который можно подключить как GSM так и CDMA модемы (они у меня есть и прекрасно работают с этим роутером), и Huawei E5776, известный также, как МТС 821FT. К этому роутеру никаких внешних модемов подключить нельзя, у него встроенный модем, поддерживающий, кстати, 4G.
Также, я довольно активно пользуюсь виртуалками, в основном, для работы — я разрабатываю и тестирую на них софт. Все мои виртуалки созданы и выполняются при помощи VirtualBox. Среди них есть машинки под Linux, Windows XP и, в последнее время, стали появляться под Windows 7.
Что с операторами? Несмотря на наличие в Memo Pad-е слота для микросим и поддержку встроенным в него модемом стандарта LTE, планшет, на сегодняшний день, переведен в «Режим полета», то есть, GSM модуль выключен, используются только WiFi и Bluetooth. Смартфон (ZenFone) снабжен симкой МТС, на ней имеется подключенный пакет интернета, Бит, по моему. В основном, передача мобильных данных тоже выключена. А все почему? Потому, что в роутере от Huawei установлена симка Мегафона, на которой подключен хороший пакет интернета (не скажу какой, потому что дорогой, вдруг жена прочитает). Этот роутер трудится постоянно — и на работе, и в автомобиле, и даже при пеших прогулках. Именно к нему подключены и смарт,  и планшет, и планшет с Windows 8.1 (опять же, несмотря на слот для микросимки), когда я ими пользуюсь вне дома. Ну, иногда я включаю MR-3040, с модемом от Скайлинка, тоже для раздачи интернета всем моим устройствам. Вот так обстоят дела с доступом в интернет вне домашних стен.
Почему, собственно,  я так рвался в домашнюю сеть извне? Во-первых, я хотел получить доступ к домашнему хранилищу данных, размещенному на WD MyBook Live и MyBook Live Duo. Музыка, книги, софт, фильмы, документы, резервные копии — все там. Иногда к этому нужен доступ, причем не вечером, когда вернусь с работы, а вот прямо сейчас. Во-вторых, иногда нужно поуправлять какими-нибудь устройствами, например, компьютером, который подключен к телевизору. Там у меня торентокачалка, и не только. Нет, я использую TeamViewer, но… Ведь весь этот трафик идет через чьи-то сервера, и, хотя, скорее всего, никому до меня нет дела, да и трафик, как обещают, защищен, ощущение, что за мной все-таки могут подглядывать, пусть и чисто теоретически, мне не нравится. А так подключился в локальную сеть, и делай, все что надо через SSH, или по RDP, и не надо пробрасывать порты, выводить компьютеры в DMZ. Можно привести и в-третьих, и в-четвертых, и, может быть, если хорошенько подумать, даже в-пятых. Так что, есть, как видите, причины подключаться к домашней сети извне.
Как я уже писал, для начала я выбрал вариант, простейший с точки зрения получения конечного результата, и не требующий стороннего софта, а именно, развертывание VPN сети по протоколу PPTP. Сервер настроен, учетная запись заведена, опишу-ка я настройку доступа в VPN своих устройств, работающих под управлением Android.
Первое, что необходимо сделать — войти в настройки.
Но не надейтесь, что сразу увидите что-то вроде «Настройки VPN». Нужный пункт спрятан в глубине, для того, чтобы добраться до него, надо, для начала, выбрать пункт » Ещё…»
и только потом появится возможность перейти непосредственно к настройкам VPN.
При выборе пункта «VPN» на экране появится список виртуальных сетей, которые уже настроены, а также элементы, позволяющие выполнить другие действия, в частности, настроить новую сеть. На приведенной ниже картинке список сетей пуст и нам надо открыть меню операций.
Для добавления новой VPN сети необходимо выбрать соответствующий пункт меню.

На самом деле, есть один нюанс — если на устройстве никогда не настраивалась ни одна виртуальная сеть, и устройство не защищено ни паролем, ни пином, ни графическим ключом — ничем, то, при попытке настроить VPN, система потребует установить такую защиту. Это, конечно, отвлекает от достижения цели, но ненадолго. Надо вернуться в настройки системы и немного прокрутить экран. В группе «Личные данные» находим пункт «Экран блокировки»:
Выбрав его, попадаем в соответствующий экран настроек.
На моем скриншоте пункт «Блокировка экрана» имеет значение «Граический ключ», просто потому, что я уже проходил эти шаги. Выбрав этот пункт, получаем возможность определиться, как хотим разблокировать экран: графическим ключом, PIN-кодом или же паролем.
Вдоволь намучившись с вводом пароля, я, в конце концов, остановился на графическом ключе.
Итак, пароль установлен, вернемся к процессу добавления новой VPN сети. После выбора пункта меню «Добавить профиль VPN» на экране отобразится окно, в котором надо заполнить несколько полей.
Поле «Название сети» ни на что особенно не влияет. То, что будет в него введено, будет показываться в списке сетей, к которым можно будет подключиться.
Поле «Тип» значительно важнее, с помощью него задается, а, вернее, выбирается из списка, протокол, по которому будет производиться подключение к серверу VPN.
Мой сервер использует протокол PPTP, который, к счастью, присутствует в списке выбора, в отличии, например, от того же OpenVPN. Надо, также, отметить, что значение, выбранное в этом поле, может повлиять на список параметров, которые надо задать. Мы рассматриваем случай для PPTP.
Поле «Адрес сервера» тоже очень важное — значение, которое будет указано в этом поле, позволит подсоединиться именно к вашему серверу, а не какому-нибудь другому.
В качестве значения можно указать либо IP адрес, либо обычный URL сервера — его домен. Именно поэтому, в случае с домашним  VPN сервером, очень часто можно встретить указание на то, что для него провайдером должен быть выделен фиксированный «белый» IP. Белый — потому, что иначе ваш сервер будет не виден внешним клиентам, а фиксированный — потому, что иначе придется перенастраивать клиентов каждый раз, когда ваш провайдер предоставляет вам новый адрес.
Отсюда же, кстати, растут ноги и второго совета — в случае выделения провайдером динамического»белого» IP, подключить какую-нибудь службу динамического DNS. Эти службы занимаются тем, что привязывают ваш динамический белый адрес, выданный провайдером, к домену, выделенному вам службой DNS. Как можно догадаться, у вас устанавливается ПО от этого сервиса, которое оповещает сервис каждый раз, когда ваш провайдер выдает вам новый адрес. В результате, вы можете указывать в настройках свой домен — он не меняется, и перенастраивать клиентов не надо.
Конечно же, если у вас статический IP адрес и есть имя домена, связанное с этим адресом, смело можете указывать этот домен в описываемом поле.
В моем случае, все несколько интересней. У меня провайдер выдает условно постоянный белый IP адрес. Этот адрес не меняется при переподключениях, длительном отключении и так далее. Но стоит просрочить оплату по счетам, как адрес изменится. Также, у меня есть домен, но он привязан к Google Apps, как и парочка поддоменов, заведенных под блоги. Вообще-то, у меня есть в планах выделить поддомен и связать его со своим условно постоянным IP адресом, выданным провайдером, при помощи какого-нибудь сервиса динамического DNS. Но  это — планы, а пока я указываю в этом поле тот самый условно фиксированный IP адрес, и стараюсь не забывать вовремя оплачивать интернет.
Еще в окне настройки VPN есть две галки: одна — для управлением шифрованием (ну как управлением, включить и выключить), ее я включил (вернее, оставил включенной), так как сервер настроен на использование шифрования; вторая — для доступа к дополнительным параметрам. Эту вторую, в моем случае, включать не потребовалось — все заработало и так, но если все-таки ее включить, то появится возможность понастраивать еще три параметра. На всякий случай, приведу их описание тут, тем более, что эту информацию трудно найти собранной в одном месте. Итак.
Поле «Домены для поиска DNS» служит вот для чего. Если за VPN сервером имеется полноценная локальная сеть, например, корпоративный интранет, то в ней могут использоваться локальные домены и внутренние DNS сервера. Это поле позволяет указать, какие домены ищутся внутренними DNS серверами первыми. По этому поводу довольно хорошо написано тут.
Поле «DNS серверы» позволяет задать не что иное, как DNS серверы. Они будут использоваться, когда Android устройство подключено к VPN. Если надо указать больше одного сервера, их следует разделить пробелом.
И последнее поле — «Маршруты пересылки» — позволяет указать, какой трафик будет проходить через VPN. Все, что не будет отвечать заданным правилам, через VPN не пойдет. Маршруты задаются в формате CIDR.
После того, как вся нужная информация введена и сохранена, можно попробовать подключиться к VPN серверу. Для этого надо снова проделать путь в настройках до списка настроенных  VPN сетей и выбрать в нем нужную сеть (идентифицировать ее можно по названию, которое задавали при настройке):
Затем, в появившемся окошке, надо вбить имя и пароль.
Естественно, они должны соответствовать тем значениям, которые задавались при настройке удаленного пользователя на сервере. И, кстати, в окошке соединения можно включить галочку «Сохранить учетные данные». Тогда, при последующих подключениях, поля для имени пользователя и пароля будут уже заполнены нужными значениями.
Потом некоторое время на экране устройства повисит вот такая заставка, щекоча нервы — получится или нет?
Лично у меня все прошло просто замечательно, подключение состоялось, и я действительно получил доступ к ресурсам, размещенным в домашней сети.

Осталось лишь описать процесс завершения работы с VPN соединением. Сделать это совсем не сложно. Для завершения сеанса работы нужно войти в настройки, добраться до нужной сети, и, выбрав ее, в появившемся окна нажать на «Разъединить».
В Android KitKat можно было вытянуть шторку, и, выбрав в ней строчку, соответствующую оповещению о том, что соединение состоялось, опять-таки,  нажать на «Разъединить». Однако в Lollipop такого оповещения более не выводится и, соответственно, через шторку операцию не выполнить. А жаль.
Вот такая настройка производится для устройств под управлением Android 5.0.1. Для других версий она очень похожа, может, немного отличаются внешние виды окон, или названия пунктов меню, но принцип остается одинаковым.
В следующий раз поговорим о настройке какой-нибудь другого устройства с другой операционной системой на борту. Так что, продолжение следует…

Настройка встроенного VPN для Android

  • Зайдите в Настройки Android, перейдите в пункт меню Подключение и общий доступ и найдите там VPN. Нужная нам настройка может скрываться и в другом месте, поэтому вы вполне можете воспользоваться поиском, вбив в его поле VPN.

  • Нажмите в открывшемся окне на значок «+» для добавления нового VPN.
  • Введите любое имя в поле Название сети.

  • В выпадающем списке поля Тип VPN выберите L2TP/IPSec PSK
  • В поле Адрес сервера необходимо указать адрес доступного вам VPN — его IP или адрес, заканчивающийся на «.opengw.net». Это может быть как какой-то платный сервис, так и один из открытых VPN-серверов. Единственное условие в том, что такой сервер должен поддерживать L2TP/IPSec.
  • Введите «vpn» в поле Общий ключ IPSec
  • В поле Маршрут пересылки или Перенаправление маршрутов введите 0.0.0.0/0.

  • Сохраните новое VPN соединение, нажав значок галки в правом верхнем углу экрана.

Включение встроенного VPN в Android

Теперь, когда мы закончили настройку встроенного в Android VPN, пришло время воспользоваться результатами нашего труда. Снова перейдите в Подключение и общий доступ -> VPN. На сей раз вы увидите там наше VPN подключение с заданным вами в поле Название сети именем. Кликните по нему. Введите «vpn» в поля логин и пароль и нажмите Подключиться.


Подождите несколько секунд для установки соединения. Вы увидите надпись «Подключение выполнено», а в строке уведомлений появится соответствующий значок. VPN активен, и вы можете начать им пользоваться.

Особенности настройки VPN соединения

Присутствует большая вероятность того, что клиентами VPN будут рабочие станции под управлением операционной системы Windows. Но необходимо выделить, что сервер может беспрепятственно выполнять свои основные функции как под Windows, так и под Linux или BSD. В связи с этим мы приступим к рассмотрению Windows 7. Не стоит останавливать свое внимание на базовых настройках. В них нет ничего сложного, и они понятны абсолютно каждому пользователю. Нужно остановиться на одном тонком нюансе:

  • Во время подключения стандартного VPN соединения главный шлюз будет указан для VPN сети, иными словами, на клиентской машине интернет полностью исчезнет или же будет использоваться через подключения в какой-либо удаленной сети. Такое неудобство может привести к существенным финансовым затратам – двойной оплате трафика (первый раз оплачивается удаленная сеть, а во второй раз сеть провайдера). Чтобы не допустить таких ситуаций необходимо на закладке «Сеть », в свойствах протокола TCP/IPv4, нажать кнопку «дополнительно» и в новом открытом окне снять галочку с позиции «Использовать основной шлюз в удаленной сети». На рисунке можно визуально ознакомиться с этим действием.

Использовать основной шлюз в удаленной сети

Этот вопрос не требовал подробного рассмотрения, если бы не массовые возникновения проблем и незнание причин такого странного поведения VPN соединения у многих системных сотрудников.

Что же такое маршрутизация? Если особо не вдавться в подробности темриналогий то можно сказать, что это совокупность правил, которые определяют маршрут следования данных в связных сетях. Их можно сравнить с дорожными указателями и разметкой. Представьте себе ситуацию: вы попали в совершенно чужой для вас город, где отсуствуют какие-либо знаки и разметка на перекрестках. Вы впадаете в растерянность. Аналогичная ситуация происходит и в сетях. Люые сетевые пакеты осуществляют свое передвижение согласно определенному набору правил – таблиц маршрутизации. Именно благодаря им можно отправить документ на сетевой принтер для его распечатки, а электронное письмо попадет точно адрессату.

Если же вы желаете использовать VPN соединение в качестве работы удаленных клиентов в корпоративной сети, то возникает необходимость настройки маршрутов. Если же не провести этот процесс, то, как тогда пакет самостоятельно определит, что ему необходимо именно через туннель попасть в вашу корпоративную сеть? Вы же не указываете в почтовом письме или телеграмме, что ее нужно доставить «бабушке в деревню».

На сегодняшний день известны несколько способов построения виртуальной сети. Каждый из них подразумевает в себе свою уникальную схему маршрутизации. Давайте рассмотрим их подробней:

Все клиенты получают адреса из диапазона локальной сети

Все клиенты получают адреса из диапазона локальной сети

Этот вариант функционирует только при условии поддержки со стороны Proxy ARP, позволяющий объеденить две не связные между собой сети в одну целую. Считается, что все хосты расположены на одной физической сети и обмениваются траффиком без дополнительной маршрутизации.

Основными преимуществами этого способа являются простота и полный доступ к сети удаленных клиентов. Однако в таком случае вы получаете низкий уровень безопасности и невозможность разграничения доступа между пользователями локальной сети и VPN клиентам.

В результате клиенты могут получить адреса из диапазона, не являющегося частью локальной сети, но который маршрутизируется из нее.

VPN

В таком случае удаленные клиенты выделяются в отдельную подсеть (на картинке это 10.0.1.0/24). При этом на рисунке видно, что обе подсети могут быть составляющими общей сети — 10.0.0.0/23. Таким образом, управление структурой может осуществляться с помощью маршрутизации или маски подсети.

Первый вариант заключается в перемещении компьютеров в сеть 10.0.0.0/23 (для этого необходимо изменить маску сети на 255.255.254.0), что предоставит ему доступ к обеим подсетям.

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

Для того чтобы получить доступ с клиентского компьютера, находящегося в одной подсети, в другую, следует использовать статическую маршрутизацию. Записи будут иметь такой шаблон:

X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z

В этом шаблоне сеть — Х.Х.Х.Х, маска сети — Y.Y.Y.Y, а шлюз — Z.Z.Z.Z. для того чтобы добавить маршрут в ОС Windows нужно воспользоваться командой routeadd. Общая запись команды выглядит так:

routeadd X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z

В ОС Linux запись немного меняет свою форму, но в целом остается неизменной:

routeadd -net X.X.X.X netmask Y.Y.Y.Y gw Z.Z.Z.Z

Стоит отметить, что команды действуют до первой перезагрузки. Хотя это создает определенные трудности, этим свойством можно воспользоваться при ошибке в создании маршрута. После того как вы убедились, что всё работает правильно, следует добавить постоянные маршруты. Для этого к уже известной нам команде следует добавить ключ –p:

routeadd X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z -p

Чтобы осуществить это в Ubuntu, после описания интерфейса в файле /etc/network/interfaces, следует добавить строку:

uprouteadd -net X.X.X.X netmask Y.Y.Y.Y gw Z.Z.Z.Z

Теперь вернемся к маршрутам. Для того чтобы предоставить доступ к локальной сети, следует для удаленных клиентов прописать к ней маршрут:

10.0.0.0 mask 255.255.255.0 10.0.1.1

И наоборот: для осуществления доступа из локальной сети к ПК удаленных клиентов следует прописать

10.0.1.0 mask 255.255.255.0 10.0.0.1

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

Удаленные клиенты имеют адреса, которые не являются частью локальной сети, но могут из нее маршрутизироваться.

Настройка VPN

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

Публикацию ресурса в сети VPN можно осуществить следующими путями: с помощью размещения его на VPN сервере и разрешению доступа к нему из удаленной сети, путем прокинутого порта в удаленную сеть или же подключения ресурса в роли клиента сети. Ниже представлена схема, на которой изображен сервер терминалов с маршрутом 10.0.0.2, доступный по адресу 172.16.0.2 удаленной сети.

VPN Соединение двух подсетей

Соединение двух подсетей

Приведенная схема служит для соединения нескольких подсетей в целостную единственную сеть. Такая сеть имеет более сложную структуру. Однако если понять процесс направления пакетов через интерфейсы, сразу все становится на места. При данных условиях X.X.X.X — IP адрес основного офиса, а филиалы имеют серые IP адреса. Роутер офиса осуществляет подключение в качестве клиента. На нем находится VPN сервер.

Теперь поговорим о маршрутизации. Клиенты подсети LAN1 производят передачу пакетов к подсети LAN2 на сетевой шлюз роутера. Равным образом роутер передает пакеты на противоположный конец VPN туннеля. Точно такая же маршрутизация должна быть проведена для подсети LAN2.

Для этого необходимо написать маршрут к LAN2 на клиентах подсети LAN1:

10.0.1.0 mask 255.255.255.0 10.0.0.1

Нужно также прописать маршрут другого конца туннеля на роутере LAN1:

10.0.1.0 mask 255.255.255.0 172.16.0.2

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

10.0.0.0 mask 255.255.255.0 10.0.1.1

PPTP является простым в реализации протоколом. Но не стоит забывать о том, что не нужно использовать его при работе с важнейшими данными, поскольку PPTP – слабозащищенный протокол.

Созданная нами в тестовой лаборатории схема, которая поможет практически ознакомиться с технологией:

Настройка VPN

Мы имеем локальную сеть 10.0.0.0/24, в которой расположен роутер, выполняющий функции VPN сервера терминальный сервер. Для VPN была закреплена сеть с маршрутом 10.0.1.0/24. Наружный вид сервера имеет условленный адрес X.X.X.X. Нам необходимо предоставить доступ удаленным клиентам к ресурсам терминального сервера.

Настройка сервера PPTP

Устанавливаем пакет pptpd:

sudo apt-get install pptpd

Далее запускаем /etc/pptpd.conf и задаем наиболее важные настройки VPN сервера. Для этого указываем в конце файла адрес сервера:

localip 10.0.1.1

Для выдачи клиентам указываем диапазон адресов:

remoteip 10.0.1.200-250

Не перезапустив pptpd, невозможно будет увеличить количество адресов, поэтому необходимо задавать их с запасом. Необходимо также найти и переписать строку:

bcrelay eth1

Существует две опции, которые возможно использовать. Это listen и speed. С помощью listen указывается IP адрес от локального интерфейса. Нужно это с целью прослушивания РРТР-соединения. Второй – speed – позволяет с точностью показать VPN-соединения в бит/с. В качестве примера можно взять разрешение для серверов прием РРТР-соединения, но лишь при внешнем интерфейсе:

listen X.X.X.X

В файле /etc/ppp/pptpd—options находятся настройки намного тоньше. Принимая настройки «по умолчанию», это будет наиболее соответствовать необходимым требованиям. Для лучшего представления стоит рассказать о нескольких из них.

За шифровку приложенных данных, а также проверку на подлинность несет ответственность секция #Encryption. Любой предположительно опасный протокол типа CHAP, PAP и MS-CHAP, устаревшие протоколы запрещаются опциями:

refuse-pap
refuse-chap
refuse-mschap

Следующим этапом является применение протокола проверки на подлинность (MS-CHAP v2, а также 128-битное MPPE-128):

require-mschap-v2
require-mppe-128

Далее стоит упомянуть о секции #Network и Routing. Секция для использования DNS-серверов, ориентируясь на внутреннюю сеть. Почему это, вероятнее всего, станет весьма выгодным? Потому что позволяет обратить сигнал напрямую к компьютеру через имена, не исключительно через IP. Такое возможно при содержании в DNS всех портативных компьютеров. Но в нашей ситуации вышеуказанная опция совершенно бесполезна. В этом случае нужно всего лишь ввести адрес WINS-сервера через опцию ms-wins.

В том же разделе имеется proxyarp опция. Она включает в себя поддержание с помощью сервера Proxy ARP.

Следующая секция #Miscellaneous и содержащаяся в ней lock-опция. Лимитирует возможности любого клиента всего лишь через одно подключение.

Настраивание сервера вполне можно считать завершенным процессом. Последнее, что осталось, это разработать самих пользователей. Для того чтобы сделать это, внесите в /etc/ppp/chap-secrets все нужные записи:

ivanov * 123 *
petrov * 456 10.0.1.201

Первая запись дает возможность подключиться к серверу пользователю, пароль которого 123, а также присваивается персональный IP-адрес. Вторая запись создает следующего пользователя. Она так же выдает ему постоянный адрес (10.0.1.201).

Далее нужно перезапустить pptpd:

sudo /etc/init.d/pptpd restart

Обратите внимание! В тех случаях, когда pptpd отказывает в перезапуске, виснет, /var/log/syslog выдает строчку о long config file line ignored, незамедлительно вводите в конце файла /etc/pptpd.conf перенос строчки.

Наконец, сервер полностью подготовлен к работе.

Настройка клиентского компьютера

В большинстве случаев для VPN соединения подходят настройки «по умолчанию», но не будет лишним указать конкретный тип соединения и отключить протоколы шифрования, которые не будут использоваться.

VPN - Настройка клиентского компьютера

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

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

VPN - Настройка клиентского компьютера

Внимание, еще одно важное замечание! Зачастую доступ к ПК в локальной сети будет осуществляться по IP адресам. Имеется в виду – путь \\\\10.0.0.1 будет рабочим, а \\\\SERVER – не будет работать. Такой вариант будет весьма непривычным для пользователей и может вызвать дополнительные трудности. От этих проблем можно избавиться несколькими способами:

  1. Если ваша сеть построена на основе доменной структуры, тогда необходимо для VPN соединения адресом DNS-сервера указать адрес сервера контроллера домена. Можно воспользоваться функцией в настройках сервера ms-dnsв /etc/ppp/pptpd-options и данные настройки клиентом будут получаться автоматически.
  2. Если в вашей сети отсутствует DNS сервер, тогда можно создать WINS-сервер и аналогично настроить для него автоматическую передачу данных для клиентских компьютеров, используя опцию ms-wins.
  3. Если количество удаленных клиентов невелико, вы можете настроить файлы hosts на каждом из компьютеров, прописав в них строку вида: 10.0.0.2 SERVER. Файл hosts вы можете найти в папке (C:\\Windows\\System32\\drivers\\etc\\hosts).

Основой нашего сервера стал маршрутизатор, использующий WindowsServer 2008 R2. Настройка сервера рассматривалась ранее. Настройки актуальны и для серверов на основе WindowsServer 2003 – 2008 с небольшими особенностями.

Настройка закончена и, в крайнем случае, в процессе запуска мастера, необходимо будет выбрать нужную конфигурацию. При открытии диспетчера сервера, в ролях нужно найти «маршрутизация и удаленный доступ» зайти в ее свойства (открывается при помощи правой кнопки мыши). В появившемся окне, нужно установить переключатель «IPv4» в состояние локальной сети и вызова по требованию и установить галочку напротив «IPv4 сервер удаленного доступа«.

IPv4 сервер удаленного доступа

После данных манипуляций нужно в закладке «безопасность» выбрать проверку подлинности при помощи протокола MS-CHAPV2 и запретить подключение без проверки.

MS-CHAPV2

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

VPN - настройка

После сохранения изменений, служба перезапустится и добавится роль VPN сервера. В консоли (левая часть) должен появиться пункт «порты», в его свойства нам и нужно зайти. По умолчанию система создает 5 PPTP и 5 L2TP портов. В настройках PPTP устанавливаем галочки напротив подключения по требованию и подключения удаленного доступа. Кроме этого, необходимо указать максимальное количество портов. Все лишние порты рекомендуется отключить.

VPN - Все лишние порты рекомендуется отключить

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

Настройка доступа производится разделе локальных пользователей и групп, где находим «свойства пользователя» и разрешаем доступ в разделе «права доступа к сети» во «входящих звонках».

права доступа к сети

Чтобы удостовериться в правильности всех настроек, нужно подключиться из клиентского компьютера, при этом выбрав нужный нам тип проверки доступа. Список подключенных клиентских компьютеров можно увидеть в консоли, где расположен пункт «Клиенты удаленного доступа».

Клиенты удаленного доступа

Для произведения диагностики проблем с подключением в первую очередь необходимо изучать журнал событий, в котором фиксируются все наиболее важные происшествия. В описаниях вы сможете найти полную информацию для быстрого обнаружения и устранения возникшей проблемы.

VPN - настройка клиентского приложения

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: