빠른 시작: Azure PowerShell을 사용하여 Azure Virtual Network Manager로 메시 네트워크 토폴로지 만들기
가상 네트워크 연결을 관리하기 위해 Azure PowerShell을 사용하여 Azure Virtual Network Manager를 시작합니다.
이 빠른 시작에서는 세 개의 가상 네트워크를 배포하고 Azure Virtual Network Manager를 사용하여 메시 네트워크 토폴로지를 만듭니다. 그런 다음, 연결 구성이 적용되었는지 확인합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- Azure Cloud Shell을 통해서가 아니라 로컬로 Powershell을 사용하여 이 빠른 시작을 수행합니다. Azure Cloud Shell의 Az.Network 버전은 현재 Azure Virtual Network Manager cmdlet을 지원하지 않습니다.
- 동적 네트워크 그룹을 수정하려면 Azure RBAC 역할 할당을 통해서만 액세스 권한을 부여해야 합니다. 클래식 관리자/레거시 권한 부여는 지원되지 않습니다.
Azure 계정에 로그인하고 구독을 선택합니다.
구성을 시작하려면 Azure 계정에 로그인합니다.
Connect-AzAccount
그런 다음 구독에 연결합니다.
Set-AzContext -Subscription <subscription name or id>
Azure PowerShell 모듈 설치
다음 명령을 사용하여 최신 Az.Network Azure PowerShell 모듈을 설치합니다.
Install-Module -Name Az.Network -RequiredVersion 5.3.0
리소스 그룹 만들기
이 작업에서는 네트워크 관리자 인스턴스를 호스트할 리소스 그룹을 만듭니다. New-AzResourceGroup을 사용하여 리소스 그룹을 만듭니다. 이 예제에서는 미국 서부 2 지역에 리소스 그룹이라는 리소스 그룹을 만듭니다.
# Create a resource group
$location = "westus2"
$rg = @{
Name = 'resource-group'
Location = $location
}
New-AzResourceGroup @rg
범위 및 액세스 유형 정의
이 작업에서는 New-AzNetworkManagerScope를 사용하여 Azure Virtual Network Manager 인스턴스의 범위 및 액세스 유형을 정의합니다. 이 예제에서는 단일 구독으로 범위를 정의하고 액세스 유형을 연결로 설정합니다. <subscription_id>
를 Azure Virtual Network Manager를 통해 관리하려는 구독의 ID로 바꿉니다.
$subID= "<subscription_id>"
[System.Collections.Generic.List[string]]$subGroup = @()
$subGroup.Add("/subscriptions/$subID")
[System.Collections.Generic.List[String]]$access = @()
$access.Add("Connectivity");
$scope = New-AzNetworkManagerScope -Subscription $subGroup
Virtual Network Manager 인스턴스 만들기
이 작업에서는 New-AzNetworkManager를 사용하여 Virtual Network Manager 인스턴스를 만듭니다. 이 예제에서는 미국 서부 2 지역에 network-manager라는 인스턴스를 만듭니다.
$avnm = @{
Name = 'network-manager'
ResourceGroupName = $rg.Name
NetworkManagerScope = $scope
NetworkManagerScopeAccess = $access
Location = $location
}
$networkmanager = New-AzNetworkManager @avnm
세 개의 가상 네트워크 만들기
이 작업에서는 New-AzVirtualNetwork를 사용하여 세 개의 가상 네트워크를 만듭니다. 이 예제에서는 (미국) 미국 서부 2 지역에 vnet-00, vnet-01 및 vnet-02라는 가상 네트워크를 만듭니다. 메시 네트워크를 만들려는 가상 네트워크가 이미 있는 경우 다음 섹션으로 건너뛸 수 있습니다.
$vnet_00 = @{
Name = 'vnet-00'
ResourceGroupName = $rg.Name
Location = $location
AddressPrefix = '10.0.0.0/16'
}
$vnet_00 = New-AzVirtualNetwork @vnet_00
$vnet_01 = @{
Name = 'vnet-01'
ResourceGroupName = $rg.Name
Location = $location
AddressPrefix = '10.1.0.0/16'
}
$vnet_01 = New-AzVirtualNetwork @vnet_01
$vnet_02 = @{
Name = 'vnet-02'
ResourceGroupName = $rg.Name
Location = $location
AddressPrefix = '10.2.0.0/16'
}
$vnet_02 = New-AzVirtualNetwork @vnet_02
각 가상 네트워크에 서브넷을 추가
이 작업에서는 Add-AzVirtualNetworkSubnetConfig를 사용하여 /24의 서브넷 주소 접두사를 사용하여 기본값이라는 서브넷 구성을 만듭니다. 그런 다음 Set-AzVirtualNetwork를 사용하여 가상 네트워크에 서브넷 구성을 적용합니다.
$subnet_vnet_00 = @{
Name = 'default'
VirtualNetwork = $vnet_00
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig_vnet_00 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_00
$vnet_00 | Set-AzVirtualNetwork
$subnet_vnet_01 = @{
Name = 'default'
VirtualNetwork = $vnet_01
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig_vnet_01 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_01
$vnet_01 | Set-AzVirtualNetwork
$subnet_vnet_02 = @{
Name = 'default'
VirtualNetwork = $vnet_02
AddressPrefix = '10.2.0.0/24'
}
$subnetConfig_vnet_02 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_02
$vnet_02 | Set-AzVirtualNetwork
네트워크 그룹 만들기
Virtual Network Manager는 구성을 네트워크 그룹에 배치하여 가상 네트워크의 그룹에 적용합니다. New-AzNetworkManagerGroup을 사용하여 네트워크 그룹을 만듭니다. 이 예제에서는 미국 서부 2 지역에 네트워크 그룹이라는 네트워크 그룹을 만듭니다.
$ng = @{
Name = 'network-group'
ResourceGroupName = $rg.Name
NetworkManagerName = $networkManager.Name
}
$ng = New-AzNetworkManagerGroup @ng
메시 구성에 대한 멤버 자격 정의
이 작업에서는 New-AzNetworkManagerStaticMember를 사용하여 네트워크 그룹 네트워크 그룹에 정적 멤버 vnet-00 및 vnet-01을 추가합니다.
정적 멤버는 네트워크 그룹으로 범위가 지정된 고유한 이름이 있어야 합니다. 일관성 있는 가상 네트워크 ID의 해시를 사용하는 것이 좋습니다. 이 방법은 Azure Resource Manager 템플릿의 uniqueString()
구현을 사용합니다.
function Get-UniqueString ([string]$id, $length=13)
{
$hashArray = (new-object System.Security.Cryptography.SHA512Managed).ComputeHash($id.ToCharArray())
-join ($hashArray[1..$length] | ForEach-Object { [char]($_ % 26 + [byte][char]'a') })
}
$sm_vnet_00 = @{
Name = Get-UniqueString $vnet_00.Id
ResourceGroupName = $rg.Name
NetworkGroupName = $ng.Name
NetworkManagerName = $networkManager.Name
ResourceId = $vnet_00.Id
}
$sm_vnet_00 = New-AzNetworkManagerStaticMember @sm_vnet_00
$sm_vnet_01 = @{
Name = Get-UniqueString $vnet_01.Id
ResourceGroupName = $rg.Name
NetworkGroupName = $ng.Name
NetworkManagerName = $networkManager.Name
ResourceId = $vnet_01.Id
}
$sm_vnet_01 = New-AzNetworkManagerStaticMember @sm_vnet_01
연결 구성 생성
이 작업에서는 New-AzNetworkManagerConnectivityConfiguration 및 New-AzNetworkManagerConnectivityGroupItem을 사용하여 네트워크 그룹 네트워크 그룹과 연결 구성을 만듭니다.
연결 그룹 항목을 만듭니다.
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
구성 그룹을 만들고 연결 그룹 항목을 추가합니다.
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @() $configGroup.Add($groupItem)
구성 그룹을 사용하여 연결 구성을 만듭니다.
$config = @{ Name = 'connectivity-configuration' ResourceGroupName = $rg.Name NetworkManagerName = $networkManager.Name ConnectivityTopology = 'Mesh' AppliesToGroup = $configGroup } $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config ```
배포 커밋
Deploy-AzNetworkManagerCommit
를 사용하여 대상 지역에 구성을 커밋합니다. 이 단계를 수행하면 구성이 트리거되어 적용되기 시작합니다.
[System.Collections.Generic.List[string]]$configIds = @()
$configIds.add($connectivityconfig.id)
[System.Collections.Generic.List[string]]$target = @()
$target.Add("westus2")
$deployment = @{
Name = $networkManager.Name
ResourceGroupName = $rg.Name
ConfigurationId = $configIds
TargetLocation = $target
CommitType = 'Connectivity'
}
Deploy-AzNetworkManagerCommit @deployment
리소스 정리
Azure Virtual Network Manager 인스턴스 및 해당 리소스가 더 이상 필요하지 않은 경우 다음 단계에 따라 리소스가 포함된 리소스 그룹을 삭제하여 삭제합니다.
Remove-AzResourceGroup을 사용하여 리소스 그룹을 삭제합니다.
Remove-AzResourceGroup -Name $rg.Name -Force
다음 단계
이 단계에서는 보안 관리자 구성을 사용하여 네트워크 트래픽을 차단하는 방법을 알아봅니다.