VK Cloud logo

VPN-туннелін SDN Neutron арқылы ұйымдастыру

VK Cloud on-premises инфрақұрылымы мен SDN Neutron бар VK Cloud виртуалды желісі арасында VPN-туннелі арқылы желілік байланыс орнатуға мүмкіндік береді.

Мысал ретінде VK Cloud ішіндегі басқа желіге дейін стандартты маршрутизатор негізінде VPN-туннелі құрылады. VPN-эндпоинт ретінде виртуалды машина пайдаланылады. VPN-туннелін баптау жөніндегі нұсқауларды кез келген басқа VPN-эндпоинтпен, мысалы, корпоративтік файерволмен немесе басқа желілік жабдықпен жұмыс істеуге бейімдеуге болады.

Мысалдағы VPN-туннелі келесі желілерді байланыстырады:

  • Клиенттік желі — on-premises инфрақұрылымындағы желіні еліктейтін VK Cloud ішіндегі желі.
  • Виртуалды желі — стандартты маршрутизаторға қосылған VK Cloud ішіндегі желі.

Әр желіде туннельдің жұмысқа қабілеттілігін тексеру үшін виртуалды машиналар жасалады.

Дайындық қадамдары

  1. OpenStack клиенті орнатылғанына көз жеткізіңіз және жобада аутентификациядан өтіңіз.

  2. Желілерді жасаңыз.

    Бұл желі клиенттік желі рөлін атқарады.

    Желіні жасау кезінде келесі параметрлерді орнатыңыз:

    • Желі атауы: clientNet.

    • SDN: Neutron. Әдепкі бойынша SDN Sprut жасалады.

    • Интернетке қолжетімділік: бұл опцияның таңдалғанына көз жеткізіңіз. Ол осы желідегі виртуалды машиналарға жария Floating IP мекенжайларын тағайындауға мүмкіндік береді.

    • Маршрутизатор: Жаңасын жасау.

    • Ішкі желілер тізімі: тізімдегі жалғыз ішкі желіні өңдеңіз. Ішкі желі үшін келесі параметрлерді орнатыңыз:

      • Атауы: clientSubnet.
      • Мекенжайы: 172.16.0.0/29.
      • Шлюз: 172.16.0.1.
      • DHCP қосу: бұл опцияның таңдалғанына көз жеткізіңіз.
      • DHCP IP мекенжайлары пулы: 172.16.0.2 - 172.16.0.6.
      • Жеке DNS: бұл опцияның таңдалғанына көз жеткізіңіз.
  3. Осы желілер үшін қандай маршрутизаторлар жасалғанын анықтаңыз. Бұл ақпарат VPN-ді әрі қарай баптау үшін қажет болады.

    Бұдан әрі мыналар болжанады:

    • clientNet желісі үшін router_1234 маршрутизаторы жасалған;
    • vkcloudNet желісі үшін router_5678 маршрутизаторы жасалған.
  4. router_5678 маршрутизаторы үшін SNAT интерфейсінің IP мекенжайын анықтаңыз:

    1. vkcloudNet желісіне арналған ішкі желілер тізімі бар бетті ашыңыз.

    2. vkcloudSubnet ішкі желісінің атауын басыңыз.

    3. Порттар қойындысына өтіңіз.

    4. Порттар тізімінен SNAT құрылғысының портын тауып, оның IP мекенжайын көшіріңіз.

  5. clientNet клиенттік желісінде VPN-шлюз ретінде қызмет ететін виртуалды машинаны келесі параметрлермен жасаңыз:

    • Виртуалды машина атауы: client_vpn_gw.
    • Виртуалды машина түрі: STD3-2-4.
    • Конфигурациядағы машиналар саны: біреу.
    • Операциялық жүйе: Ubuntu 22.04.
    • Желі: клиенттік желі және оған сәйкес clientNet: clientSubnet ішкі желісі.
    • Виртуалды машина кілті: SSH арқылы қосылу орындалатын кілт.
    • Firewall баптаулары: барлығы рұқсат етілген (all).
    • Сыртқы IP тағайындау: бұл опцияның таңдалғанына көз жеткізіңіз.

    Виртуалды машинаның қалған параметрлерін өз қалауыңызша таңдаңыз.

  6. Әрі қарай жұмыс істеу үшін қажетті мәліметтерді жинаңыз. Бұдан әрі мыналар болжанады:

Нысан

Мәні

router_5678 маршрутизаторының жария IP мекенжайы

192.0.2.100

clientSubnet ішкі желісіндегі client_vpn_gw виртуалды машинасының IP мекенжайы

172.16.0.5

client_vpn_gw виртуалды машинасының Floating IP мекенжайы

192.0.2.200

client_vpn_gw клиенттік VPN-шлюзі жағындағы клиенттік ішкі желі

172.16.0.0/29

Бұлттық VPN-шлюзі жағындағы виртуалды ішкі желі

10.0.0.0/29

Бұлттық ішкі желідегі SNAT портының IP мекенжайы

10.0.0.5

Example Infrastructure

1. Бұлттық желі жағында VPN-туннелін баптаңыз

VPN-туннелін жасаңыз келесі параметрлермен:

IKE-саясаты ретінде Жаңа IKE-саясаты таңдаңыз және мыналарды орнатыңыз:

  • Саясат атауы: vkcloud-client-ike.
  • Кілттің өмір сүру уақыты: 3600 секунд.
  • Авторизация алгоритмі: sha256.
  • Шифрлау алгоритмі: aes-256.
  • IKE нұсқасы: v2.
  • Диффи—Хеллман тобы: group14.

2. Клиенттік желі жағында VPN-туннелін баптаңыз

  1. VPN-шлюз порты кез келген трафикті қайта жібере алуы үшін, сол порт үшін IP Source Guard функциясын өшіріңіз:

    1. client_vpn_gw виртуалды машинасының 172.16.0.5 жеке IP мекенжайы бар портын табыңыз. Осы порттың идентификаторын алыңыз.

    2. Осы порт арқылы кез келген мекенжайлардан трафик өтуіне рұқсат беріңіз:

      openstack port set <ID_ПОРТА> --allowed-address ip-address=0.0.0.0/0
  2. client_vpn_gw виртуалды машинасына SSH арқылы қосылыңыз. Бұдан кейінгі барлық әрекеттер осы виртуалды машинада орындалуы тиіс.

  3. Виртуалды машина жеке желіден VPN-туннеліне трафикті маршрутизациялай алуы үшін, IP Forwarding функциясын қосыңыз:

    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.confsudo sysctl -p
  4. Linux үшін IPsec VPN іске асыруы болып табылатын StrongSwan орнатыңыз:

    sudo apt updatesudo apt install -y strongswan libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins
  5. /etc/ipsec.conf файлына клиенттік желі жағындағы VPN-қосылым параметрлерін қосыңыз. Бұл параметрлер бұлттық желі жағында жасалған туннель баптауларының айнадағы көрінісі болып табылады.

    conn client-vkcloud-vpn   authby=secret   left=%defaultroute   leftid=192.0.2.200   leftsubnet=172.16.0.0/29   right=192.0.2.100   rightsubnet=10.0.0.0/29   ike=aes256-sha2_256-modp2048!   esp=aes256-sha2_256!   keyingtries=0   ikelifetime=3600   lifetime=8h   dpddelay=30   dpdtimeout=120   dpdaction=hold   auto=start
  6. /etc/ipsec.secrets файлында ортақ пайдалану кілтін (PSK) көрсетіңіз. Кілт бұлттық желі жағында көрсетілген кілтпен сәйкес келуі тиіс:

    192.0.2.200 192.0.2.100 : PSK "<КЛЮЧ_СОВМЕСТНОГО_ИСПОЛЬЗОВАНИЯ_ЗАДАННЫЙ_ЗАРАНЕЕ>"
  7. StrongSwan сервисін қайта іске қосыңыз:

    sudo systemctl restart strongswan-starter

3. Статикалық маршруттарды қосыңыз

Трафик VPN-туннелі арқылы өтуі үшін статикалық маршруттарды қосу қажет:

  1. Жеке кабинетте vkcloudNet желісіне арналған ішкі желілер тізімі бар бетті ашыңыз.

  2. vkcloudSubnet ішкі желісі үшін  басып, Ішкі желіні өңдеу тармағын таңдаңыз.

  3. Статикалық маршруттар өрісін көрсету опциясының таңдалғанына көз жеткізіңіз.

  4. Өріске 172.16.0.0/29 клиенттік желісіне дейінгі статикалық маршрутты жазыңыз. next hop ретінде vkcloudSubnet бұлттық ішкі желісіндегі router_5678 маршрутизаторының SNAT интерфейсінің IP мекенжайын көрсету қажет.

    172.16.0.0/29 - 10.0.0.5

4. VPN-туннелінің жұмыс қабілетін тексеріңіз

  1. VK Cloud платформасы жағынан VPN-туннелінің күйін қараңыз.

    Ол үшін жеке кабинетте vkcloud-client-vpn VPN бетiн ашып, Туннель параметрлері қойындысына өтіңіз. VPN ACTIVE мәртебесінде болуы тиіс.

  2. ICMP-трафикке рұқсат беретін icmp қауіпсіздік тобын жасаңыз.

    Осы топта кіріс ережесін жасаңыз:

    • Түрі: ICMP.
    • Қашықтағы мекенжай: Барлық IP мекенжайлар.

    Бұл тестілік виртуалды машиналардың бір-бірін ping арқылы тексере алуы үшін қажет.

  3. Екі виртуалды машинаны ссылка:

    • clientVM:

      • clientNet желісінде, clientSubnet ішкі желісінде;
      • SSH арқылы оған қосылу үшін Floating IP мекенжайымен;
      • default, ssh, icmp қауіпсіздік топтарымен.
    • vkcloudVM:

      • vkcloudNet желісінде, vkcloudSubnet ішкі желісінде;
      • SSH арқылы оған қосылу үшін Floating IP мекенжайымен;
      • default, ssh, icmp қауіпсіздік топтарымен.
  4. Виртуалды машиналардың тиісті ішкі желілердегі жеке IP мекенжайларын анықтаңыз. Мынадай болсын:

    • clientVM IP мекенжайы 172.16.0.4;
    • vkcloudVM IP мекенжайы 10.0.0.4.
  5. vkcloudVM виртуалды машинасына SSH арқылы қосылыңыз.

  6. vkcloudVM виртуалды машинасынан clientVM виртуалды машинасына ping орындаңыз:

    ping 172.16.0.4

    clientVM хосты ping-ке жауап беруі тиіс.

Пайдаланылмайтын ресурстарды жойыңыз

Егер жасалған ресурстар енді қажет болмаса, оларды жойыңыз:

  1. Виртуалды машиналарды жойыңыз.

  2. VPN-туннелін жойыңыз.

  3. Клиенттік желі жағында жазылған статикалық маршруттарды жойыңыз.

  4. Клиенттік және бұлттық желілердің маршрутизаторларын жойыңыз.

  5. Клиенттік және бұлттық ішкі желілерді және желілерді жойыңыз.

  6. Floating IP мекенжайларын жойыңыз.