В этой статье демонстрируется применение виртуальных сетей Windows Azure (Windows Azure Virtual Network, VNET) для создания IPsec-туннеля для соединения с окружением Virtual Private Cloud (VPC) расположенным в Amazon Web Services (AWS). используя это руководство вы сможете буквально содержать рабочие среды в каждом из облаков с полным сетевым сообщением между содержащимися в них виртуальными машинами посредством безопасного IPsec-туннеля. Этот подход может легко применяться для реализации сценария обеспечения отказоустойчивости, резервного копирования или даже миграции между облачными провайдерами. Программный VPN, который используется в этой статье для тестирования – это Open Swan.
Создание VPC в Amazon AWS
Для начала, на стороне Amazon создайте частное виртуальное облако (virtual private cloud, VPC), которое эквивалентно виртуальной сети в Windows Azure.
Создание VPC – публичная подсеть с интернет-шлюзом
Я выбрал адресное пространство 10.0.0.0/16 для сети Amazon VPC.
Создайте экземпляр EC2, который будет использоваться для размещения Open Swan и будет входной точкой туннеля со стороны Amazon.
Запуск Ubuntu 13.04 в подсети VPC
Укажите подсеть и я рекомендую увеличить размер экземпляра с Micro до Small.
Как только экземпляр будет создан, переключитесь в представление EC2 и выделите новый Elastic IP. Это будет ваш внешний IP-адрес, который вы будете использовать для подключения через SSH и при подключении вашей виртуальной сети Windows Azure.
Нажмите Yes Allocate в окне диалога выделения нового IP-адреса.
Выберите экземпляр из ниспадающего меню и нажмите Yes Associate.
Создание виртуальной сети в Windows Azure
Перед конфигурированием сервиса Open Swan нам необходимо создать обратную сторону сети в Windows Azure. Для создания IPsec-туннеля сервису Open Swan требуется IP-адрес шлюза и ключ аутентификации, которые необходимо получить от виртуальной сети в Windows Azure.
Создайте виртуальную сеть в Windows Azure
Укажите параметры Data Center Location и VNET/Affinity Group Name
Выберите параметр site-to-site VPN
Определите сетевые свойства, которые в нашем случае являются параметрами Amazon VPC Address Space и Elastic IP сервера Open Swan Server
Определите адресное пространство Windows Azure Address Space. Убедитесь, что вы добавили подсеть шлюза (Gateway Subnet).
Создание шлюза Windows Azure Virtual Network Gateway
После создания виртуальной сети, откройте ее и щелкните “create gateway” –> выберите “static routing”.
После создания шлюза вы сможете получить IP-адрес и ключ аутентификации и настроить Open Swan на стороне Amazon.
Настройка Open Swan в Amazon Web Services
Подключение к Open Swan VM
Переключитесь на просмотр экземпляров и выберите ваш экземпляр, в меню Actions нажмите Connect.
Выберите Connect with a standalone SSH client.
Скопируйте команду для SSH (или используйте PuTTY) для подключения через SSH.
Подключившись установите и настройте решение Open Swan for the VPN на стороне Amazon.
Установка Open Swan
sudo apt-get install openswan
Выберите NO для установки сертификата так как мы будем использовать аутентификацию на базе ключа.
Следующие шаги потребуют от вас использование текстового редактора для изменения некоторые файлов конфигурации.
Отредактируйте файл ipsec.conf
cd /etc sudo vi ipsec.conf
После открытия, перейдите в режим редактирования: *i
Замените существующую конфигурацию следующими настройками:
config setup protostack=netkey nat_traversal=yes virtual_private=%v4:10.0.0.0/16 oe=off include /etc/ipsec.d/*.conf
Выйдите и сохраните настройки:: x
Измените директорию ipsec.d и создайте новый файл amznazure.conf.
cd ipsec.d sudo vi amznazure.conf
Содержимое amznazure.conf
conn amznazure authby=secret auto=start type=tunnel left=10.0.0.28 leftsubnet=10.0.0.0/16 leftnexthop=%defaultroute right=[WINDOWS AZURE GATEWAY IP] rightsubnet=172.16.0.0/16 ike=aes128-sha1-modp1024 esp=aes128-sha1 pfs=no
Примечания к этим параметрам:
- left= локальный IP-address сервера Open Swan Server
- leftsubnet= локальной адресное пространство серверов в VPC
- right= IP-адрес шлюза Windows Azure VNET Gateway (замените на ваш)
- rightsubnet= адресное пространство Windows Azure Virtual Network
После указания параметров настройки вы можете указать ключ аутентификации.
cd /etc sudo vi ipec.secrets
Добавьте сточку к файлу в следующем формате (не добавляйте []):
10.0.0.28 [WINDOWS AZURE GATEWAY IP] : PSK "[WINDOWS AZURE GATEWAY KEY]"
Далее, включите IP forwarding в Open Swan VM:
sudo vi /etc/sysctl.conf
Раскомментируйте строчку:
net.ipv4.ip_forward=1
Примените новые настройки:
sudo sysctl -p /etc/sysctl.conf
Далее, запретите проверку source / destination checking в сервере Open Swan.
Настройте группы Security Groups для доступа траффика из Windows Azure
В консоли управления Amazon выберите Security Groups и -> amzn-azure-group.
Добавьте два дополнительных правила UDP inbound rules – одно для 500 и одно для 4500 с помощью Windows Azure GW IP с /32 CIDR.
sudo service ipsec restart
Подключение виртуальной сети Windows Azure к Amazon AWS Virtual Private Cloud
Настройка маршрутизации
Причина использования программного решения VPN на стороне Amazon AWS состоит в том, что сетевой стек AWS поддерживает конфигурирование таблиц маршрутизации, тогда как Windows Azure этого (пока) не позволяет.
В панели управления Amazon вернитесь обратно к представлению VPC и выберите таблицы маршрутов. Выберите таблицу маршрута ассоциированную с вашим VPC и добавьте новый маршрут к 172.16.0.0/16 (Windows Azure Network) и это позволит маршрутизировать траффик через ID экземпляра сервера Open Swan.
Обновление информации о маршрутах
Создание экземпляров для тестирования связи
Создайте экземпляр AWS в подсети VPC.
Запустите экземпляр в Windows Azure в созданной ранее виртуальной сети.
В каждых экземплярах вам будет необходимо разрешить ICMP-правила для каждой VM, чтобы протестировать связь с помощью PING.
Пингуем Azure VM из Amazon VM через IPsec-туннель
Пингуем Amazon VM из Azure VM через IPsec-туннель
Это все!
Теперь вы можете размещать приложения в Amazon AWS и Windows Azure и обеспечивать их связь между собой посредством безопасного IPsec-туннеля через интернет.
Автор: XaocCPS