Files
fox/src/compute/compute-guide/compute-guide-vyos.md
T
Речкина Елена Валерьевна c140ec8b21 vyos #VEGA-4844
2025-08-21 17:21:44 +00:00

14 KiB
Raw Blame History

Настройка 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, созданная по инструкции для джамп-хоста;
  • одна виртуальная машина с ОС 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-адреса:

    curl ifconfig.me
    
  • для внутреннего IP-адреса:

    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-адресу:
      ssh vyos@77.41.188.88
      
    • Перейдите в режим конфигурирования:
      configure
      
    • Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав Enter:
      run generate pki key-pair install 'beeline-cloud'
      show pki key-pair 'beeline-cloud' public
      

    Результатом команды будет публичный ключ.

    = customer site

    • Откройте еще один терминал и подключитесь к ВМ с VyOS customer site по внутреннему IP-адресу:
      ssh vyos@172.16.0.10
      
    • Перейдите в режим конфигурирования:
      configure
      
    • Сгнерируйте сертификаты для аутентификации, во время выполнения команды согласитесь со всеми значениями по умолчанию, нажав Enter:
      run generate pki key-pair install 'customer-site'
      show pki key-pair 'customer-site' public
      

    Результатом команды будет публичный ключ.

    ::::

  2. Публичные ключи, полученные на шаге 1, необходимо перекрестно добавить на маршрутизаторах в сети beeline cloud и в сети customer site: :::: tabs

    = beeline cloud

    set pki key-pair 'customer-site' public key 'FAAOCAQ8AMII...' # - ключ из customer site
    

    = customer site

    set pki key-pair 'beeline-cloud' public key 'MIIBIjANBgkqh...' # - ключ из beeline cloud
    

    ::::

3. Настроить IPSEC

  1. Выберите сетевой интерфейс, на котором будет настраиваться IPSEC-туннель, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:

    :::: tabs

    = beeline cloud

    set vpn ipsec interface eth1
    

    = customer site

    • Узнайте имя сетевого интерфейса на маршрутизаторе, на котором будет настраиваться IPSEC:

      show interfaces
      
    • Настройте интерфейс IPSEC:

      set vpn ipsec interface <имя_сетевого_интерфейса>
      

    ::::

  2. Для настройки IPSEC-туннеля используется протокол IKE набора протоколов IPSEC, который имеет две фазы.

    • для настройки первой фазы выполните команду на маршрутизаторах в сети beeline cloud и в сети customer site:
    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:
    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. Настройте пиры и аутентификацию с использованием публичных ключевых пар, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:

    :::: tabs

    = beeline cloud

    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

    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-адресов виртуальных машин с VyOS.

    :::: tabs

    = beeline cloud

    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

    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

    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

    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

    set vpn ipsec site-to-site peer CUSTOMER-SITE connection-type respond
    

    = customer site

    set vpn ipsec site-to-site peer BEELINE-CLOUD connection-type initiate
    

    ::::

  7. Сохраните конфигурации, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:

    save
    
  8. Примените конфигурации, выполнив команду на маршрутизаторах в сети beeline cloud и в сети customer site:

    commit
    

4. Проверить соединение

Выполните команду на любом из маршрутизаторов в сети beeline cloud или в сети customer site:

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