vyos #VEGA-4844
This commit is contained in:
@@ -190,6 +190,7 @@ export default defineConfig({
|
|||||||
collapsed: true,
|
collapsed: true,
|
||||||
items: [
|
items: [
|
||||||
{ text: 'Подключение по SSH к ВМ закрытого контура', link: '/compute/compute-guide/compute-guide-ssh-inside.md' },
|
{ text: 'Подключение по SSH к ВМ закрытого контура', link: '/compute/compute-guide/compute-guide-ssh-inside.md' },
|
||||||
|
{ text: 'Настройка site-to-site VPN с помощью VyOS', link: '/compute/compute-guide/compute-guide-vyos.md' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ section_links:
|
|||||||
- title: Подключение по SSH к виртуальной машине закрытого контура
|
- title: Подключение по SSH к виртуальной машине закрытого контура
|
||||||
link: /compute/compute-guide/compute-guide-ssh-inside.md
|
link: /compute/compute-guide/compute-guide-ssh-inside.md
|
||||||
description: Получение доступа из интернета к виртуальной машине закрытого контура
|
description: Получение доступа из интернета к виртуальной машине закрытого контура
|
||||||
|
- title: Настройка site-to-site VPN с помощью VyOS
|
||||||
|
link: /compute/compute-guide/compute-guide-vyos.md
|
||||||
|
description: Создание IPSEC-туннеля между частной сетью и Beeline Cloud с использованием VyOS 1.4.0
|
||||||
---
|
---
|
||||||
|
|
||||||
# Практические руководства
|
# Практические руководства
|
||||||
|
|
||||||
Рассмотрены сценарии использования сервиса **Виртуальные машины**.
|
Рассмотрены сценарии использования сервиса **Виртуальные машины**.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,290 @@
|
|||||||
|
# Настройка site-to-site VPN с помощью VyOS
|
||||||
|
|
||||||
|
В этом руководстве рассмотрено создание VPN-туннеля site-to-site между частной сетью и Beeline Cloud с использованием VyOS версии 1.4.0.
|
||||||
|
|
||||||
|
В процессе выполнения этого руководства вы:
|
||||||
|
|
||||||
|
- настроите VPN-сервер IKEv2 на виртуальной машине с VyOS, расположенной в Beeline Cloud;
|
||||||
|
- подключитесь к VPN-серверу из частной сети;
|
||||||
|
- настроите маршрутизацию для беспрепятсвенного хождения трафика между частной сетью и Beeline Cloud.
|
||||||
|
|
||||||
|
Виртуальная частная сеть (VPN) позволяет надежно шифровать трафик, проходящий через ненадежные сети, например в кафе, на конференции или в аэропорту.
|
||||||
|
|
||||||
|
Internet Key Exchange v2 (IKEv2) — это протокол, обеспечивающий прямое туннелирование IPSEC между сервером и клиентом. В реализациях VPN IKEv2 IPSEC обеспечивает шифрование сетевого трафика. IKEv2 изначально поддерживается на некоторых платформах (OS X 10.11+, iOS 9.1+ и Windows 10) без необходимости установки дополнительных приложений и довольно плавно справляется с перебоями в работе клиентов.
|
||||||
|
|
||||||
|
## Перед началом работы
|
||||||
|
|
||||||
|
Условные обозначения:
|
||||||
|
|
||||||
|
- **customer site**: локальное защищенное пространство;
|
||||||
|
- **beeline cloud**: изолированное пространство в Beeline Cloud, в котором создаются ресурсы.
|
||||||
|
|
||||||
|
Для выполнения этого урока вам понадобится:
|
||||||
|
|
||||||
|
- одна виртуальная машина с ОС VyOS версии 1.4.0 в **beeline cloud**, созданная по [инструкции](https://docs.cloud.dfcloud.ru/compute/compute-guide/compute-guide-ssh-inside.html#%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B4%D0%B6%D0%B0%D0%BC%D0%BF-%D1%85%D0%BE%D1%81%D1%82) для джамп-хоста;
|
||||||
|
- одна виртуальная машина с ОС VyOS версии 1.4.0, созданная в **customer site** с доступом в интернет с постоянным публичным IP-адресом `client real ip`.
|
||||||
|
- если в сети **customer site** используется ISO-образ VyOS, то установите OC VyOS на виртуальную машину согласно официальной документации.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 1. Посмотреть IP-адреса
|
||||||
|
|
||||||
|
Для настройки VPN-туннеля необходимо узнать публичный и внутренний IP-адреса виртуальных машин, на которых конфигурируется маршрутизатор VyOS.
|
||||||
|
|
||||||
|
В руководстве используются следующие значения IP-адресов виртуальных машин с ОС VyOS:
|
||||||
|
|
||||||
|
| IP-адрес | **beeline cloud** | **customer site** |
|
||||||
|
|---|---|---|
|
||||||
|
| публичный IP | 77.41.188.88 | 77.41.188.163 |
|
||||||
|
| внутренний IP | 10.0.0.10 | 172.16.0.10 |
|
||||||
|
|
||||||
|
### Как узнать публичный IP-адрес маршрутизатора
|
||||||
|
|
||||||
|
Для маршрутизатора на стороне **customer site** IP-адреса можно узнать c помощью команд:
|
||||||
|
|
||||||
|
- для публичного IP-адреса:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl ifconfig.me
|
||||||
|
```
|
||||||
|
|
||||||
|
- для внутреннего IP-адреса:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ip a
|
||||||
|
```
|
||||||
|
|
||||||
|
Для маршрутизатора на стороне **beeline cloud** публичный IP-адрес можно узнать на странице сервиса **Виртуальные машины** в разделе **IP-адреса**.
|
||||||
|
|
||||||
|
IP-адрес `10.0.0.10` является внутренним и сопоставляется с публичным IP-адресом (Floating IP или FIP). Значение публичного IP-адреса указано в поле **Имя** в разделе **IP-адреса**. По публичному IP-адресу можно подключиться к маршрутизатору VyOS по SSH.
|
||||||
|
|
||||||
|
## 2. Сгенерировать ключевые пары
|
||||||
|
|
||||||
|
1. Выполните команды для генерации ключевых пар на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
- Откройте терминал и подключитесь к маршрутизатору VyOS сети **beeline cloud** по публичному IP-адресу:
|
||||||
|
```bash
|
||||||
|
ssh vyos@77.41.188.88
|
||||||
|
```
|
||||||
|
- Перейдите в режим конфигурирования:
|
||||||
|
```bash
|
||||||
|
configure
|
||||||
|
```
|
||||||
|
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
|
||||||
|
```bash
|
||||||
|
run generate pki key-pair install 'beeline-cloud'
|
||||||
|
show pki key-pair 'beeline-cloud' public
|
||||||
|
```
|
||||||
|
Результатом команды будет публичный ключ.
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
- Откройте еще один терминал и подключитесь к ВМ с VyOS **customer site** по внутреннему IP-адресу:
|
||||||
|
```bash
|
||||||
|
ssh vyos@172.16.0.10
|
||||||
|
```
|
||||||
|
- Перейдите в режим конфигурирования:
|
||||||
|
```bash
|
||||||
|
configure
|
||||||
|
```
|
||||||
|
- Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав `Enter`:
|
||||||
|
```bash
|
||||||
|
run generate pki key-pair install 'customer-site'
|
||||||
|
show pki key-pair 'customer-site' public
|
||||||
|
```
|
||||||
|
Результатом команды будет публичный ключ.
|
||||||
|
|
||||||
|
::::
|
||||||
|
|
||||||
|
2. Публичные ключи, полученные на шаге 1, необходимо перекрестно добавить на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set pki key-pair 'customer-site' public key 'FAAOCAQ8AMII...' # - ключ из customer site
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set pki key-pair 'beeline-cloud' public key 'MIIBIjANBgkqh...' # - ключ из beeline cloud
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
|
||||||
|
## 3. Настроить IPSEC
|
||||||
|
|
||||||
|
1. Выберите сетевой интерфейс, на котором будет настраиваться IPSEC-туннель, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec interface eth1
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
- Узнайте имя сетевого интерфейса на маршрутизаторе, на котором будет настраиваться IPSEC:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
show interfaces
|
||||||
|
```
|
||||||
|
|
||||||
|
- Настройте интерфейс IPSEC:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec interface <имя_сетевого_интерфейса>
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
|
||||||
|
2. Для настройки IPSEC-туннеля используется протокол IKE набора протоколов IPSEC, который имеет две фазы.
|
||||||
|
- для настройки первой фазы выполните команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec ike-group aes256-sha256 dead-peer-detection action 'restart'
|
||||||
|
set vpn ipsec ike-group aes256-sha256 dead-peer-detection interval '30'
|
||||||
|
set vpn ipsec ike-group aes256-sha256 dead-peer-detection timeout '120'
|
||||||
|
set vpn ipsec ike-group aes256-sha256 key-exchange 'ikev2'
|
||||||
|
set vpn ipsec ike-group aes256-sha256 lifetime '3600'
|
||||||
|
set vpn ipsec ike-group aes256-sha256 proposal 1 dh-group '19'
|
||||||
|
```
|
||||||
|
|
||||||
|
- для настройки второй фазы выполните команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec esp-group aes256-sha256 proposal 1 encryption aes256
|
||||||
|
set vpn ipsec esp-group aes256-sha256 proposal 1 hash sha256
|
||||||
|
set vpn ipsec esp-group aes256-sha256 lifetime '28800'
|
||||||
|
set vpn ipsec esp-group aes256-sha256 mode 'tunnel'
|
||||||
|
set vpn ipsec esp-group aes256-sha256 pfs 'dh-group19'
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Настройте пиры и аутентификацию с использованием [публичных ключевых пар](#2-сгенерировать-ключевые-пары), выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication mode 'rsa'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa local-key 'beeline-cloud'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE authentication rsa remote-key 'customer-site'
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication mode 'rsa'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa local-key 'customer-site'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD authentication rsa remote-key 'beeline-cloud'
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
4. Настройте для пиров адреса подключения, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
На этом шаге [укажите ваши значения IP-адресов](#1-посмотреть-ip-адреса) виртуальных машин с VyOS.
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE ike-group 'aes256-sha256'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE local-address '10.0.0.10'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE remote-address '77.41.188.163'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 esp-group 'aes256-sha256'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE default-esp-group 'aes256-sha256'
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD ike-group 'aes256-sha256'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD local-address '172.16.0.10'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD remote-address '77.41.188.88'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 esp-group 'aes256-sha256'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD default-esp-group 'aes256-sha256'
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
5. Настройте статические маршруты, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
Для примера, в **customer site** используется сеть с адресом `172.16/16`, в **beeline cloud** — две сети: `10/8` и `192.168/16`.
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '10.0.0.0/8'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 local prefix '192.168.0.0/16'
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE tunnel 0 remote prefix '172.16.0.0/16'
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 local prefix '172.16.0.0/16'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '10.0.0.0/8'
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD tunnel 0 remote prefix '192.168.0.0/16'
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
6. Укажите *инициатора* и *ответчика*, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
:::: tabs
|
||||||
|
|
||||||
|
= beeline cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer CUSTOMER-SITE connection-type respond
|
||||||
|
```
|
||||||
|
|
||||||
|
= customer site
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set vpn ipsec site-to-site peer BEELINE-CLOUD connection-type initiate
|
||||||
|
```
|
||||||
|
|
||||||
|
::::
|
||||||
|
7. Сохраните конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
save
|
||||||
|
```
|
||||||
|
|
||||||
|
8. Примените конфигурации, выполнив команду на маршрутизаторах в сети **beeline cloud** и в сети **customer site**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
commit
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. Проверить соединение
|
||||||
|
|
||||||
|
Выполните команду на любом из маршрутизаторов в сети **beeline cloud** или в сети **customer site**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
run show vpn ipsec status
|
||||||
|
ping -c 3 172.16.0.10
|
||||||
|
ping -c 3 10.0.0.10
|
||||||
|
```
|
||||||
|
|
||||||
|
## Диагностика неисправностей
|
||||||
|
|
||||||
|
Если во время применения конфигурации команда `commit` завершится с ошибкой, то попробуйте выполнить команды для диагностики неисправностей.
|
||||||
|
|
||||||
|
Основные команды для диагностики проблем:
|
||||||
|
|
||||||
|
- `run show vpn ipsec status`
|
||||||
|
- `run show vpn ipsec state`
|
||||||
|
- `run show vpn ipsec sa`
|
||||||
|
- `run show vpn ipsec policy`
|
||||||
|
- `run show log vpn`
|
||||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 46 KiB |
Reference in New Issue
Block a user