Рубрики
Uncategorized

Лазурный хаб и говорил топологию, поглядываясь на руку Шаблоны

Топология сети Hub / Conse — одна из лучших практик сети в Azure. Хаб является центральным VNet C … Теги с лазурным, рукой, IAC, Devops.

Шаблоны менеджера Azure Resource Manager (5 серий части)

Топология сети Hub/Conse — одна из лучших практик сети в Azure. HUB является центральным VNET, подключенным к локальной сети через схему экспресс-маршрута, ворота VPN. Спокиды — это VNET, повлиявший на концентратор, используемый для запуска рабочей нагрузки.

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

Использование такого рода топология более безопасна и гибкая. Добавление VNET проста. Вам просто нужно создать VNET с неподвижным префиксом без перекрытия и создать взгляд на HUB VNET. Создание концентратора и топологии выступления от Azure Portal легко, но она не будет масштабироваться и это подвержено ошибкам. Как сделать это с шаблонами руки?

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

  • allowvirtualnetworkaccess, чтобы определить, если потоки из удаленного VNet могут ввести текущий VNET
  • AllowerForwardEdTraffic, определите, если поток от внешнего удаленного VNET (другой прогулированный VNET) может ввести VNET.
  • Allowgatewaytransit, чтобы разрешить трафику маршрутизации к шлюзу в VNet
  • usermotegeways, VNET может использовать удаленную VNET

Последние вещи, удаленный идентификатор VNET и удаленный префикс.

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

    "variables": {
        "VnetAObject": {
            "Name": "VnetA",
            "prefix": "192.168.0.0/24",
            "defaultSubnetName": "subnet1",
            "defaultSubnetPrefix": "192.168.0.0/26"
        },
        "VnetBObject": {
            "Name": "VnetB",
            "prefix": "192.168.1.0/24",
            "defaultSubnetName": "subnet1",
            "defaultSubnetPrefix": "192.168.1.0/26"
        }
    },

В этом примере информация VNET находятся в разделе «Переменные», оно работает также в качестве параметров.

Но, чтобы быть возможным, 2 VNET должен уже быть, если нет, у нас будет какая-то проблема курицы и яйца. Если вам нужно создать VNETS и водить в том же шаблоне с конфигурацией по умолчанию, она не будет работать. Первый VNET будет понадобиться второе, чтобы создать воображение, но для создания второй VNET требует первого. Итак, он потерпит неудачу и не будет создан.

            {
                "type": "Microsoft.Network/virtualNetworks",
                "name": "[variables('VnetAObject').Name]",
                "apiVersion": "2017-06-01",
                "location":"[resourceGroup().location]",
                "comments": "This will build a Virtual Network.",
                "properties": {
                    "addressSpace": {
                        "addressPrefixes": [
                            "[variables('VnetAObject').prefix]"
                        ]
                    },
                    "subnets": [
                        {
                            "name": "[variables('VnetAObject').defaultSubnetName]",
                            "properties": {
                            "addressPrefix": "[variables('VnetAObject').defaultSubnetPrefix]"
                            }
                        }
                    ],
                    // this will not really work
                    "virtualNetworkPeerings": [
                    {
                    "properties": {
                            "allowVirtualNetworkAccess": true,
                            "allowForwardedTraffic": false,
                            "allowGatewayTransit": false,
                            "useRemoteGateways": false,
                            "remoteVirtualNetwork": {
                            "id": "[resourceId('Microsoft.Network/virtualNetworks', variables('VnetBObject').Name)]"
                        },
                            "remoteAddressSpace": {
                                "addressPrefixes": [
                                    "[variables('VnetBObject').prefix]"
                                ]
                            }
                        },
                        "name": "PeeringToVnetB"
                        }
                    ]
                }
            }

Как избежать этого? Виллинг, как подсеть, это детские ресурсы. Эти виды ресурсов существуют только в контексте родительского ресурса.

В шаблоне руки дочерний ресурс может быть построен внутри родительского ресурса, как в первом примере. Это также может быть построено вне родительского ресурса. Но сначала нам нужно определить родительский ресурс, VNET здесь. Поскольку вручение недвижимости No «Parentresource» нужна способ выявления родительского ресурса. Идентификация работает с типом ресурса, который включает в себя родительский тип и тип ребенка

"type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",

И имя ресурса. Название ресурса должно включать имя родительского имени ресурса, Slash и имя дочернего ресурса.

"name": "VnetB/peeringtoA",

Если мы хотим развернуть VNET и Polying из того же файла JSON, одна часть все еще отсутствует. Нам нужно убедиться, что VNET развернут перед вождением. Нам нужно удалить Poreing Properties от определения VNET и создать отдельные воображающие ресурсы. Чтобы убедиться, что VNET существует во время развертывания Poling, нам нужно использовать Dependendon и ссылаться на 2 имена VNET.

                "dependsOn": [
                    "VnetA",
                    "VnetB"
                 ],

Здесь полный пример 2 прогляды.

{
                "name": "[concat(variables('VnetAObject').Name,'/peeringtoB')]",
                "dependsOn": [
                    "[variables('VnetAObject').Name]",
                    "[variables('VnetBObject').Name]"
                 ],
                "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",
                "apiVersion": "2019-09-01",
                "properties": {
                            "allowVirtualNetworkAccess": true,
                            "allowForwardedTraffic": false,
                            "allowGatewayTransit": false,
                            "useRemoteGateways": false,
                            "remoteVirtualNetwork": {
                            "id": "[resourceId('Microsoft.Network/virtualNetworks', variables('VnetBObject').Name)]"
                        },
                        "remoteAddressSpace": {
                            "addressPrefixes": [
                                "[variables('VnetBObject').prefix]"
                            ]
                        }
                    }
            },
            {
                "name": "[concat(variables('VnetBObject').Name,'/peeringtoA')]",
                "dependsOn": [
                    "[variables('VnetAObject').Name]",
                    "[variables('VnetBObject').Name]"
                 ],
                "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",
                "apiVersion": "2019-09-01",
                "properties": {
                            "allowVirtualNetworkAccess": true,
                            "allowForwardedTraffic": false,
                            "allowGatewayTransit": false,
                            "useRemoteGateways": false,
                            "remoteVirtualNetwork": {
                            "id": "[resourceId('Microsoft.Network/virtualNetworks', variables('VnetAObject').Name)]"
                        },
                        "remoteAddressSpace": {
                            "addressPrefixes": [
                                "[variables('VnetAObject').prefix]"
                            ]
                        }
                    }
            }

Тот же принцип работает с парой VNET/подсети, VM/VMextension, VPN/VPN-соединениями, маршрутами/маршрутами и многими другими. Посмотрите на Справочная документация шаблона ARM Отказ Вы найдете всех родительских/дочерних ресурсов.

Шаблоны менеджера Azure Resource Manager (5 серий части)

Оригинал: «https://dev.to/omiossec/azure-hub-and-spoke-topology-peering-and-arm-templates-5ej7»