Łączenie sieci wirtualnej z obwodem usługi ExpressRoute przy użyciu programu Azure PowerShell
Ten artykuł ułatwia łączenie sieci wirtualnych z obwodami usługi Azure ExpressRoute przy użyciu modelu wdrażania usługi Resource Manager i programu PowerShell. Sieci wirtualne mogą znajdować się w tej samej subskrypcji lub w innej subskrypcji. W tym samouczku pokazano również, jak zaktualizować link sieci wirtualnej.
Wymagania wstępne
Przed rozpoczęciem konfiguracji zapoznaj się z wymaganiami wstępnymi, wymaganiami dotyczącymi routingu i przepływami pracy.
Musisz mieć aktywny obwód usługi ExpressRoute.
- Postępuj zgodnie z instrukcjami, aby utworzyć obwód usługi ExpressRoute i włączyć obwód przez dostawcę łączności.
- Upewnij się, że masz skonfigurowaną prywatną komunikację równorzędną platformy Azure dla obwodu. Aby uzyskać instrukcje dotyczące routingu, zobacz artykuł dotyczący konfigurowania routingu.
- Upewnij się, że prywatna komunikacja równorzędna platformy Azure jest skonfigurowana i ustanawia komunikację równorzędną BGP między siecią a firmą Microsoft na potrzeby kompleksowej łączności.
- Upewnij się, że masz sieć wirtualną i bramę sieci wirtualnej utworzoną i w pełni aprowizowaną. Postępuj zgodnie z instrukcjami, aby utworzyć bramę sieci wirtualnej dla usługi ExpressRoute. Brama sieci wirtualnej dla usługi ExpressRoute używa wartości GatewayType
ExpressRoute
, a nie sieci VPN.
Do standardowego obwodu usługi ExpressRoute można połączyć maksymalnie 10 sieci wirtualnych. Wszystkie sieci wirtualne muszą znajdować się w tym samym regionie geopolitycznym w przypadku korzystania ze standardowego obwodu usługi ExpressRoute.
Pojedyncza sieć wirtualna może być połączona z maksymalnie 16 obwodami usługi ExpressRoute. Wykonaj kroki opisane w tym artykule, aby utworzyć nowy obiekt połączenia dla każdego obwodu usługi ExpressRoute, z którym nawiązujesz połączenie. Obwody usługi ExpressRoute mogą znajdować się w tej samej subskrypcji, różnych subskrypcjach lub kombinacji obu.
Jeśli włączysz dodatek ExpressRoute Premium, możesz połączyć sieci wirtualne poza regionem geopolitycznym obwodu usługi ExpressRoute. Dodatek Premium umożliwia łączenie ponad 10 sieci wirtualnych z obwodem usługi ExpressRoute w zależności od wybranej przepustowości. Zapoznaj się z często zadawanymi pytaniami , aby uzyskać więcej informacji na temat dodatku Premium.
Aby utworzyć połączenie z obwodu usługi ExpressRoute do docelowej bramy sieci wirtualnej usługi ExpressRoute, liczba przestrzeni adresowych anonsowanych z lokalnych lub równorzędnych sieci wirtualnych musi być równa lub mniejsza niż 200. Po pomyślnym utworzeniu połączenia można dodać więcej przestrzeni adresowych do 1000 do lokalnych lub równorzędnych sieci wirtualnych.
Zapoznaj się ze wskazówkami dotyczącymi łączności między sieciami wirtualnymi za pośrednictwem usługi ExpressRoute.
Praca z programem Azure PowerShell
Kroki i przykłady w tym artykule korzystają z modułów Az programu Azure PowerShell. Aby zainstalować moduły Az lokalnie na komputerze, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się więcej na temat nowego modułu Az, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell. Polecenia cmdlet programu PowerShell są często aktualizowane. Jeśli nie używasz najnowszej wersji, wartości określone w instrukcjach mogą zakończyć się niepowodzeniem. Aby znaleźć zainstalowane wersje programu PowerShell w systemie, użyj Get-Module -ListAvailable Az
polecenia cmdlet .
Za pomocą usługi Azure Cloud Shell można uruchamiać większość poleceń cmdlet programu PowerShell i poleceń interfejsu wiersza polecenia zamiast instalować program Azure PowerShell lub interfejs wiersza polecenia lokalnie. Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, która ma wstępnie zainstalowane typowe narzędzia platformy Azure i jest skonfigurowana do używania z kontem. Aby uruchomić dowolny kod zawarty w tym artykule w usłudze Azure Cloud Shell, otwórz sesję usługi Cloud Shell, użyj przycisku Kopiuj w bloku kodu, aby skopiować kod i wklej go do sesji usługi Cloud Shell za pomocą Ctrl+Shift+V w systemach Windows i Linux lub Cmd+Shift+V w systemie macOS. Wklejony tekst nie jest automatycznie wykonywany, naciśnij Enter , aby uruchomić kod.
Istnieje kilka sposobów uruchomienia usługi Cloud Shell:
Opcja | Link |
---|---|
Kliknij przycisk Wypróbuj w prawym górnym rogu bloku kodu. | |
Otwórz usługę Cloud Shell w swojej przeglądarce. | |
Kliknij przycisk Cloud Shell w menu w prawym górnym rogu witryny Azure Portal. | |
Łączenie sieci wirtualnej
Maksymalna odporność (zalecana): zapewnia najwyższy poziom odporności sieci wirtualnej. Zapewnia ona dwa nadmiarowe połączenia z bramy sieci wirtualnej do dwóch różnych obwodów usługi ExpressRoute w różnych lokalizacjach usługi ExpressRoute.
Klonowanie skryptu
Aby utworzyć maksymalne połączenia odporności, sklonuj skrypt konfiguracji z usługi GitHub.
# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/
Uruchom skrypt New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1, aby utworzyć połączenia o wysokiej dostępności. W poniższym przykładzie pokazano, jak utworzyć dwa nowe połączenia z dwoma obwodami usługi ExpressRoute.
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$circuit2 = Get-AzExpressRouteCircuit -Name "MyCircuit2" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name1 "ERConnection1" -Name2 "ERConnection2" -Peer1 $circuit1.Peerings[0] -Peer2 $circuit2.Peerings[0] -RoutingWeight1 10 -RoutingWeight2 10 -VirtualNetworkGateway1 $gw
Jeśli chcesz utworzyć nowe połączenie i użyć istniejącego, możesz użyć poniższego przykładu. W tym przykładzie utworzono nowe połączenie z drugim obwodem usługi ExpressRoute i użyto istniejącego połączenia z pierwszym obwodem usługi ExpressRoute.
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = Get-AzVirtualNetworkGatewayConnection -Name "ERConnection1" -ResourceGroupName "MyRG"
highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name2 "ERConnection2" -Peer2 $circuit1.Peerings[0] -RoutingWeight2 10 -VirtualNetworkGateway1 $gw -ExistingVirtualNetworkGatewayConnection $connection
Połączenie sieci wirtualnej w innej subskrypcji z obwodem
Obwód usługi ExpressRoute można udostępnić w wielu subskrypcjach. Na poniższej ilustracji przedstawiono prosty schemat działania udostępniania obwodów usługi ExpressRoute w wielu subskrypcjach.
Uwaga
Łączenie sieci wirtualnych między suwerennych chmurami platformy Azure i publiczną chmurą platformy Azure nie jest obsługiwane. Sieci wirtualne można łączyć tylko z różnych subskrypcji w tej samej chmurze.
Każda z mniejszych chmur w dużej chmurze jest używana do reprezentowania subskrypcji należących do różnych działów w organizacji. Każdy z działów w organizacji używa własnej subskrypcji do wdrażania swoich usług — ale może udostępnić jeden obwód usługi ExpressRoute, aby połączyć się z powrotem z siecią lokalną. Jeden dział (w tym przykładzie: DZIAŁ IT) może być właścicielem obwodu usługi ExpressRoute. Inne subskrypcje w organizacji mogą używać obwodu usługi ExpressRoute.
Uwaga
Opłaty za łączność i przepustowość obwodu usługi ExpressRoute zostaną zastosowane do właściciela subskrypcji. Wszystkie sieci wirtualne mają taką samą przepustowość.
Administracja — właściciele obwodów i użytkownicy obwodu
Właściciel obwodu jest autoryzowanym użytkownikiem zasilania zasobu obwodu usługi ExpressRoute. Właściciel obwodu może tworzyć autoryzacje, które mogą być zrealizowane przez "użytkowników obwodu". Użytkownicy obwodu są właścicielami bram sieci wirtualnej, które nie należą do tej samej subskrypcji co obwód usługi ExpressRoute. Użytkownicy obwodu mogą zrealizować autoryzacje (jedną autoryzację na sieć wirtualną).
Właściciel obwodu ma uprawnienia do modyfikowania i odwoływanie autoryzacji w dowolnym momencie. Odwołanie autoryzacji powoduje usunięcie wszystkich połączeń linków z subskrypcji, do której dostęp został odwołany.
Uwaga
Właściciel obwodu nie jest wbudowaną rolą RBAC ani zdefiniowaną w zasobie usługi ExpressRoute. Definicja właściciela obwodu jest dowolną rolą z następującym dostępem:
- Microsoft.Network/expressRouteCircuits/authorizations/write
- Microsoft.Network/expressRouteCircuits/authorizations/read
- Microsoft.Network/expressRouteCircuits/authorizations/delete
Obejmuje to wbudowane role, takie jak Współautor, Właściciel i Współautor sieci. Szczegółowy opis różnych ról wbudowanych.
Operacje właściciela obwodu
Aby utworzyć autoryzację
Właściciel obwodu tworzy autoryzację, która tworzy klucz autoryzacji używany przez użytkownika obwodu w celu połączenia bram sieci wirtualnej z obwodem usługi ExpressRoute. Autoryzacja jest prawidłowa tylko dla jednego połączenia.
Poniższy fragment kodu polecenia cmdlet pokazuje, jak utworzyć autoryzację:
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$auth1 = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Odpowiedź na poprzednie polecenia zawiera klucz autoryzacji i stan:
Name : MyAuthorization1
Id : /subscriptions/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/CrossSubTest/authorizations/MyAuthorization1
Etag : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
AuthorizationKey : ####################################
AuthorizationUseStatus : Available
ProvisioningState : Succeeded
Aby przejrzeć autoryzacje
Właściciel obwodu może przejrzeć wszystkie autoryzacje wystawione w określonym obwodzie, uruchamiając następujące polecenie cmdlet:
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit
Aby dodać autoryzacje
Właściciel obwodu może dodać autoryzacje przy użyciu następującego polecenia cmdlet:
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization2"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit
Aby usunąć autoryzacje
Właściciel obwodu może odwołać/usunąć autoryzacje dla użytkownika, uruchamiając następujące polecenie cmdlet:
Remove-AzExpressRouteCircuitAuthorization -Name "MyAuthorization2" -ExpressRouteCircuit $circuit
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit
Operacje użytkownika obwodu
Użytkownik obwodu potrzebuje identyfikatora elementu równorzędnego i klucza autoryzacji od właściciela obwodu. Klucz autoryzacji jest identyfikatorem GUID.
Identyfikator elementu równorzędnego można sprawdzić za pomocą następującego polecenia:
Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Aby zrealizować autoryzację połączenia
Użytkownik obwodu może uruchomić następujące polecenie cmdlet, aby zrealizować autoryzację linku:
$id = "/subscriptions/********************************/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/MyCircuit"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "RemoteResourceGroup" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $id -ConnectionType ExpressRoute -AuthorizationKey "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
Aby zwolnić autoryzację połączenia
Autoryzację można zwolnić, usuwając połączenie łączące obwód usługi ExpressRoute z siecią wirtualną.
Modyfikowanie połączenia sieci wirtualnej
Niektóre właściwości połączenia sieci wirtualnej można zaktualizować.
Aby zaktualizować wagę połączenia
Sieć wirtualną można połączyć z wieloma obwodami usługi ExpressRoute. Możesz otrzymać ten sam prefiks z więcej niż jednego obwodu usługi ExpressRoute. Aby wybrać połączenie do wysyłania ruchu przeznaczonego dla tego prefiksu, możesz zmienić wartość RoutingWeight połączenia. Ruch jest wysyłany w połączeniu z największą wagę routingu.
$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyVirtualNetworkConnection" -ResourceGroupName "MyRG"
$connection.RoutingWeight = 100
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection
Zakres wartości RoutingWeight wynosi od 0 do 32000. Wartość domyślna to 0.
Konfigurowanie usługi ExpressRoute — FastPath
Możesz włączyć usługę ExpressRoute FastPath , jeśli brama sieci wirtualnej to Ultra Performance lub ErGw3AZ. FastPath poprawia wydajność ścieżki danych, takich jak pakiety na sekundę i połączenia na sekundę między siecią lokalną a siecią wirtualną.
Konfigurowanie programu FastPath w nowym połączeniu
$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "MyGateway" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" -ExpressRouteGatewayBypass -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute -Location "MyLocation"
Aktualizowanie istniejącego połączenia w celu włączenia funkcji FastPath
$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG"
$connection.ExpressRouteGatewayBypass = $True
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection
Obsługa komunikacji równorzędnej sieci wirtualnych FastPath, tras zdefiniowanych przez użytkownika (UDR) i usługi Private Link dla połączeń bezpośrednich usługi ExpressRoute
Dzięki obsłudze komunikacji równorzędnej sieci wirtualnych i trasy zdefiniowanej przez użytkownika funkcja FastPath będzie wysyłać ruch bezpośrednio do maszyn wirtualnych wdrożonych w sieciach wirtualnych szprych (połączonych za pośrednictwem komunikacji równorzędnej sieci wirtualnych) i honoruje wszystkie trasy zdefiniowane przez użytkownika skonfigurowane w podsieci GatewaySubnet. Ta funkcja jest teraz ogólnie dostępna .
W przypadku połączeń FastPath i Private Link ruch usługi Private Link wysyłany za pośrednictwem usługi ExpressRoute pomija bramę sieci wirtualnej usługi ExpressRoute w ścieżce danych. Po włączeniu obu tych funkcji program FastPath będzie bezpośrednio wysyłać ruch do prywatnego punktu końcowego wdrożonego w sieci wirtualnej szprychy.
Te scenariusze są ogólnie dostępne w przypadku ograniczonych scenariuszy z połączeniami skojarzonymi z obwodami 10 Gb/s i 100 Gb/s usługi ExpressRoute Direct. Aby włączyć tę funkcję, postępuj zgodnie z poniższymi wskazówkami:
- Wypełnij ten formularz firmy Microsoft, aby poprosić o zarejestrowanie subskrypcji. Ukończenie żądań może potrwać do 4 tygodni, dlatego odpowiednio zaplanuj wdrożenia.
- Po otrzymaniu potwierdzenia z kroku 1 uruchom następujące polecenie programu Azure PowerShell w docelowej subskrypcji platformy Azure.
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <resource-group> -ResourceName <connection-name>
$connection.ExpressRouteGatewayBypass = $true
$connection.EnablePrivateLinkFastPath = $true
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection
Uwaga
Możesz użyć Monitor połączenia, aby sprawdzić, czy ruch dociera do miejsca docelowego przy użyciu funkcji FastPath.
Uwaga
Włączenie obsługi usługi FastPath Private Link dla ograniczonych scenariuszy ogólnodostępnych może potrwać do 4 tygodni. Zaplanuj wdrożenia z wyprzedzeniem.
Obsługa funkcji FastPath dla komunikacji równorzędnej sieci wirtualnych i tras zdefiniowanych przez użytkownika jest dostępna tylko dla połączeń ExpressRoute Direct.
Uwaga
Jeśli masz już skonfigurowaną funkcję FastPath i chcesz zarejestrować się w ograniczonych funkcjach ogólnie dostępnych, należy wykonać następujące czynności:
- Zarejestruj się w jednej z funkcji FastPath za pomocą poleceń programu Azure PowerShell.
- Wyłącz, a następnie ponownie włącz opcję FastPath w połączeniu docelowym.
- Aby przełączyć się między ograniczoną funkcją ga, zarejestruj subskrypcję za pomocą docelowego polecenia programu PowerShell w wersji zapoznawczej, a następnie wyłącz i ponownie włącz program FastPath w połączeniu.
Czyszczenie zasobów
Jeśli połączenie usługi ExpressRoute nie jest już potrzebne, z subskrypcji, w której znajduje się brama, użyj Remove-AzVirtualNetworkGatewayConnection
polecenia , aby usunąć połączenie między bramą a obwodem.
Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"
Następne kroki
W tym samouczku przedstawiono sposób łączenia sieci wirtualnej z obwodem w tej samej subskrypcji i w innej subskrypcji. Aby uzyskać więcej informacji na temat bram usługi ExpressRoute, zobacz: Bramy sieci wirtualnej usługi ExpressRoute.
Aby dowiedzieć się, jak skonfigurować filtry tras dla komunikacji równorzędnej firmy Microsoft przy użyciu programu PowerShell, przejdź do następnego samouczka.