Samouczek: Konfigurowanie dwustosowego Azure Route Server za pomocą programu PowerShell

W tym samouczku za pomocą programu Azure PowerShell wdrożysz serwer tras Azure Route Server z obsługą podwójnego stosu, ustanowisz komunikację równorzędną BGP z wirtualnym urządzeniem sieciowym (NVA) opartym na systemie Linux oraz zweryfikujesz trasy IPv4 i IPv6. Do konfiguracji maszyny wirtualnej NVA i FRRoutingu (FRR) korzystasz z portalu Azure. Wynik pokazuje wymianę tras, a nie dostarczanie pakietów end-to-end.

Important

Tryb podwójnego stosu IPv4/IPv6 usługi Azure Route Server jest dostępny w wersji zapoznawczej. Zapoznaj się z dodatkowymi warunkami użytkowania dotyczącymi wersji zapoznawczych Microsoft Azure, aby uzyskać postanowienia prawne dotyczące funkcji Azure w wersji zapoznawczej.

W tym samouczku nauczysz się następujących rzeczy:

  • Utwórz wirtualną sieć w konfiguracji dual-stack z oddzielnymi podsieciami dla usługi Route Server i urządzenia NVA oraz bramą NAT na potrzeby ruchu wychodzącego urządzenia NVA.
  • Wdróż Route Server i skonfiguruj sesję BGP z NVA.
  • Zweryfikuj oczekiwane trasy IPv4 i IPv6.

Dostępność regionalna

Azure Route Server IPv4/IPv6 dual-stack jest dostępny tylko w podglądzie w następujących regionach Azure:

Region Nazwa programowa
Wschodnie stany USA 2 — EUAP eastus2euap
Środkowe stany USA — EUAP centraluseuap
Zachodnio-środkowe stany USA westcentralus
Azja Wschodnia eastasia
Południowe Zjednoczone Królestwo uksouth
Środkowe stany USA centralus
Australia Środkowa australiacentral
Korea Środkowa koreacentral
Indie Środkowe centralindia
Brazylia Południowa brazilsouth
Malezja Zachodnia malaysiawest

Prerequisites

  • Konto Azure z aktywną subskrypcją, gdzie dostęp do podglądu dual-stack Route Server jest włączony. Utwórz bezpłatne konto.
  • Azure PowerShell musi być zainstalowany lokalnie, z modułem Az.Network w wersji 8.0.0 lub nowszej. Zaloguj się za pomocą Connect-AzAccount i wybierz żądaną subskrypcję.
  • Uprawnienia do tworzenia zasobów samouczka. Informacje o uprawnieniach usługi Route Server można znaleźć w artykule Role i uprawnienia.
  • Znajomość sieci wirtualnych i podstawowych koncepcji BGP.
  • Dostęp do portalu Azure dla konfiguracji NVA na Linuksie.

Użyj nowej, oddzielnej grupy zasobów. Zasoby generują opłaty, gdy są wdrożone, a procedura sprzątania usuwa całą grupę.

Utwórz dwustosową sieć wirtualną

  1. Ustaw zmienne. Wpisz region wymieniony w dostępności regionalnej, który jest dostępny w Twojej subskrypcji z włączonym podglądem. Jeśli test-rg już istnieje, wybierz nową nazwę grupy zasobów zamiast ponownie używać grupy z innymi zasobami.

    $location = Read-Host 'Enter a region available to your preview-enabled subscription'
    $resourceGroupName = 'test-rg'
    $virtualNetworkName = 'vnet-1'
    $routeServerName = 'route-server'
    $peerName = 'vm-nva'
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
  2. Stwórz bramę NAT, aby NVA mogła pobierać pakiety. NVA nie posiada publicznego adresu IP, a nowe sieci wirtualne mogą domyślnie korzystać z prywatnych podsieci, które nie zapewniają domyślnego dostępu wychodzącego. Aby uzyskać więcej informacji, zobacz Domyślny dostęp wychodzący na platformie Azure.

    $natPublicIp = New-AzPublicIpAddress `
        -Name 'public-ip-nat' `
        -ResourceGroupName $resourceGroupName `
        -Location $location `
        -Sku Standard `
        -AllocationMethod Static `
        -IpAddressVersion IPv4
    
    $natGateway = New-AzNatGateway `
        -Name 'nat-gateway' `
        -ResourceGroupName $resourceGroupName `
        -Location $location `
        -Sku Standard `
        -IdleTimeoutInMinutes 4 `
        -PublicIpAddress $natPublicIp
    
  3. Stwórz sieć wirtualną oraz obie podsieci dual-stack. Przypisz bramkę NAT tylko do subnet-1 :

    $routeServerSubnet = New-AzVirtualNetworkSubnetConfig `
        -Name 'RouteServerSubnet' `
        -AddressPrefix @('10.0.1.0/26', 'fd00:0:100:1::/64')
    
    $nvaSubnet = New-AzVirtualNetworkSubnetConfig `
        -Name 'subnet-1' `
        -AddressPrefix @('10.0.0.0/24', 'fd00:0:100:2::/64') `
        -InputObject $natGateway
    
    $virtualNetwork = New-AzVirtualNetwork `
        -Name $virtualNetworkName `
        -ResourceGroupName $resourceGroupName `
        -Location $location `
        -AddressPrefix @('10.0.0.0/16', 'fd00:0:100::/48') `
        -Subnet @($routeServerSubnet, $nvaSubnet)
    
    $virtualNetwork.Subnets | Format-Table Name, AddressPrefix
    

Potwierdź, że RouteServerSubnet i subnet-1 mają wymienione prefiksy IPv4 i IPv6. Nie wdrażaj Route Server, dopóki obie rodziny adresów nie będą obecne w RouteServerSubnet.

Deploy Azure Route Server

  1. Utworzenie standardowego publicznego adresu IP IPv4 dla Route Server:

    $publicIp = New-AzPublicIpAddress `
        -Name 'public-ip' `
        -ResourceGroupName $resourceGroupName `
        -Location $location `
        -Sku Standard `
        -AllocationMethod Static `
        -IpAddressVersion IPv4
    
  2. Utwórz Route Server w podsieci dual-stack:

    $subnetId = ($virtualNetwork.Subnets | Where-Object Name -eq 'RouteServerSubnet').Id
    $autoscale = New-AzVirtualRouterAutoScaleConfiguration -MinCapacity 2
    
    New-AzRouteServer `
        -RouteServerName $routeServerName `
        -ResourceGroupName $resourceGroupName `
        -Location $location `
        -HostedSubnet $subnetId `
        -PublicIpAddress $publicIp `
        -VirtualRouterAutoScaleConfiguration $autoscale
    
    $routeServer = Get-AzRouteServer `
        -ResourceGroupName $resourceGroupName `
        -RouteServerName $routeServerName
    $routeServer | Format-List
    
  3. Poczekaj na zakończenie wdrożenia. W portalu Azure otwórz Route Server. W ustawieniach wybierz Konfigurację i zaznacz Tryb Podwójnego stosu. Ponieważ RouteServerSubnet już ma prefiks IPv6, serwer tras jest tworzony w trybie dual-stack, a ustawienie pokazuje Włączone. Jeśli pokazuje Wyłączone, ustaw na Włączone, a następnie wybierz Zapisz. Ta zmiana jest nieodwracalna i może trwać nawet do 40 minut. Szczegóły znajdziesz w artykule Włącz tryb dual-stack. Nie kontynuuj, jeśli wdrożenie się nie powiodło lub tryb Dual Stack nie pokazuje Włączone.

  4. Zapisz dwa adresy IPv4 Route Servera (adresy IP Route Servera) oraz ASN z Przeglądu. NVA nawiązuje peering z tymi adresami IPv4 zarówno dla tras IPv4, jak i IPv6.

Ta procedura tworzy nowe wdrożenie. Aby zaktualizować istniejący serwer tras tylko IPv4, użyj opcji Włącz tryb dual-stack.

Wdróż i skonfiguruj NVA

Użyj portalu Azure, aby utworzyć NVA w wirtualnej sieci, którą wcześniej stworzyłeś. Nie powtarzaj kroków tworzenia wirtualnej sieci, bramy NAT czy Route Server.

Tworzenie maszyny wirtualnej

  1. W polu wyszukiwania w górnej części portalu wprowadź maszyna wirtualna i wybierz opcję Maszyny wirtualne z wyników wyszukiwania.

  2. Wybierz Utwórz, a następnie Maszyna wirtualna platformy Azure.

  3. Na karcie PodstawyTworzenie maszyny wirtualnej wprowadź lub wybierz następujące informacje:

    Setting Value
    Subscription Wybierz subskrypcję użytą dla sieci wirtualnej.
    Grupa zasobów Wybierz grupę zasobów zidentyfikowaną przez $resourceGroupName.
    Nazwa maszyny wirtualnej Wprowadź wartość vm-nva.
    Region Wybierz ten sam region co sieć wirtualna.
    Opcje dostępności Wybierz pozycję Brak wymaganej infrastruktury.
    Typ zabezpieczeń Zostaw ustawienie domyślne Zaufane uruchamianie maszyn wirtualnych.
    obraz Wybierz pozycję Ubuntu Server 24.04 LTS — x64 Gen2.
    Size Wybierz rozmiar lub pozostaw ustawienie domyślne.
    Typ uwierzytelniania Wybierz opcję Klucz publiczny SSH.
    Nazwa użytkownika Wprowadź nazwę użytkownika.
    Źródło klucza publicznego SSH Wybierz pozycję Generuj nową parę kluczy.
    Nazwa pary kluczy Wprowadź vm-nva-key.
  4. Wybierz kartę Sieć.

  5. Na zakładce Sieci wybierz następujące ustawienia:

    Setting Value
    Sieć wirtualna Wybierz sieć wirtualną zidentyfikowaną przez $virtualNetworkName.
    Podsieć Wybierz podsieć-1.
    Publiczny adres IP Wybierz Żadne.
    Grupa zabezpieczeń sieciowych NIC Wybierz opcję Zaawansowane.
    Konfigurowanie sieciowej grupy zabezpieczeń Wybierz pozycjęUtwórz nowy. Wpisz nsg-nva jako nazwę, a następnie wybierz OK.
  6. Wybierz pozycję Przejrzyj i utwórz, a następnie wybierz pozycję Utwórz po pomyślnym zakończeniu walidacji.

  7. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu. W sekcji Networking wybierz ustawienia sieci, a następnie wybierz nazwę interfejsu sieciowego.

  8. W sekcji Ustawienia wybierz pozycję Konfiguracje IP. Jeśli lista nie zawiera konfiguracji IPv6 z prywatnym adresem IPv6 z fd00:0:100:2::/64, wybierz + Dodaj, wpisz następujące informacje, a następnie wybierz Dodaj:

    Setting Value
    Name Wpisz ipconfig-ipv6.
    Wersja protokołu IP Wybierz pozycję IPv6.
    Allocation Pozostaw wartość domyślną Dynamiczne.
    Publiczny adres IP Pozostaw niezaznaczone. NVA nie potrzebuje publicznego adresu IPv6.
  9. Jeśli dodałeś konfigurację IPv6, wróć do vm-NVA i wybierz Restart , aby system operacyjny gościa otrzymał nowy adres IPv6.

  10. W konfiguracjach IP zapisuj prywatne adresy IPv4 i IPv6 NVA.

  11. Na vm-nva, w sekcji Operacje, wybierz Uruchom polecenie>RunShellScript i wykonaj następujące polecenie, aby potwierdzić, że system operacyjny gościa ma adres IPv6:

    ip -6 addr show dev eth0 scope global
    

    Wynik musi zawierać prywatny adres IPv6, który zanotowałeś. FRR używa tego globalnego adresu IPv6 jako następnego przeskoku dla tras IPv6, które reklamuje. Jeśli brakuje adresu, skonfiguruj DHCPv6 w systemie gościa, postępując zgodnie z instrukcjami w Skonfiguruj DHCPv6 dla maszyn wirtualnych z systemem Linux, a następnie ponownie uruchom polecenie.

Reguły sieciowej grupy zabezpieczeń blokują przychodzący dostęp SSH z Internetu. Użyj polecenia Run do kolejnych kroków konfiguracji lub wdroż Azure Bastion.

Konfigurowanie protokołu BGP na maszynie wirtualnej

  1. Na vm-nva, w sekcji Operacje, wybierz Uruchom polecenie>RunShellScript.

  2. Zastąp przykładowy adres IPv4 NVA oraz oba adresy IPv4 Route Server w następującym skrypcie wartościami swojego wdrożenia. Skrypt nadpisuje /etc/frr/frr.conf; używaj go tylko na nowej maszynie wirtualnej samouczka, a nie na NVA z istniejącą konfiguracją routingu. Wprowadź skrypt w Run Command Script i wybierz Run:

    #!/bin/bash
    set -e
    nva_ip='10.0.0.4'
    route_server_ip_1='10.0.1.4'
    route_server_ip_2='10.0.1.5'
    
    sudo apt-get update && sudo apt-get install -y frr
    sudo sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
    sudo tee /etc/frr/frr.conf > /dev/null << EOF
    frr defaults traditional
    hostname vm-nva
    ip route 198.51.100.0/24 Null0
    ipv6 route 2001:db8:220::/48 Null0
    router bgp 65001
     bgp router-id $nva_ip
     no bgp ebgp-requires-policy
     no bgp default ipv4-unicast
     neighbor $route_server_ip_1 remote-as 65515
     neighbor $route_server_ip_1 ebgp-multihop 2
     neighbor $route_server_ip_2 remote-as 65515
     neighbor $route_server_ip_2 ebgp-multihop 2
     address-family ipv4 unicast
      network 198.51.100.0/24
      neighbor $route_server_ip_1 activate
      neighbor $route_server_ip_1 next-hop-self
      neighbor $route_server_ip_2 activate
      neighbor $route_server_ip_2 next-hop-self
     exit-address-family
     address-family ipv6 unicast
      network 2001:db8:220::/48
      neighbor $route_server_ip_1 activate
      neighbor $route_server_ip_1 next-hop-self
      neighbor $route_server_ip_2 activate
      neighbor $route_server_ip_2 next-hop-self
     exit-address-family
    EOF
    sudo systemctl restart frr
    
  3. Poczekaj na ukończenie skryptu. Rozwiąż wszelkie błędy instalacji pakietu lub FRR przed utworzeniem peera BGP.

Konfiguracja FRR wykorzystuje ASN 65001 i reklamuje 198.51.100.0/24 oraz 2001:db8:220::/48. Statyczne trasy do Null0 pozwalają FRR reklamować te prefiksy dokumentacyjne, ale odrzucać kierowany do nich ruch. Ta konfiguracja nie jest testem przekazywania pakietów. Blok address-family ipv6 unicast aktywuje IPv6 na tych samych sąsiadach IPv4, więc trasy IPv6 wykorzystują wieloprotokołowy BGP (MP-BGP) przez sesje IPv4. FRR ustawia kolejny skok tras IPv6 na wcześniej zweryfikowany globalny adres IPv6 interfejsu eth0.

Potwierdź, że instalacja pakietu i konfiguracja FRR zakończyły się bez błędów przed utworzeniem peera BGP. Do wdrożeń produkcyjnych używaj wspieranego NVA z Azure Marketplace zamiast tej symulacji FRR.

Konfiguruj peering BGP z NVA

  1. Wprowadź prywatny adres IPv4 NVA i utworz partnera:

    $nvaIPv4Address = Read-Host 'Enter the NVA private IPv4 address'
    
    Add-AzRouteServerPeer `
        -ResourceGroupName $resourceGroupName `
        -RouteServerName $routeServerName `
        -PeerName $peerName `
        -PeerAsn '65001' `
        -PeerIp $nvaIPv4Address
    
    Get-AzRouteServerPeer `
        -ResourceGroupName $resourceGroupName `
        -RouteServerName $routeServerName `
        -PeerName $peerName
    
  2. Na vm-nva użyj w portalu polecenia Run command>RunShellScript, aby wykonać następujące polecenia:

    sudo vtysh -c 'show bgp ipv4 unicast summary' -c 'show bgp ipv6 unicast summary'
    

    W obu tabelach potwierdź, że oba adresy IPv4 Route Server pokazują wartość liczbową w kolumnie State/PfxRcd . Stan taki jak Aktywny, Bezczynny lub Connect oznacza, że sesja nie jest ustanowiona dla tej rodziny adresów. Jeśli sesja nie została ustanowiona, sprawdź adresy IP serwera routów, ASN i konfigurację FRR przed kontynuacją.

Obie rodziny tras korzystają z sesji IPv4 BGP. Nie tworz osobnego IPv6 BGP peera dla tego scenariusza.

Zweryfikuj trasy IPv4 i IPv6

  1. Zobacz trasy reklamowane przez NVA przed ich zmianą przez mapę tras przychodzących:

    Get-AzRouteServerPeerLearnedRoute `
        -ResourceGroupName $resourceGroupName `
        -RouteServerName $routeServerName `
        -PeerName $peerName | Format-Table -AutoSize
    
  2. Weryfikuj skuteczne trasy, używając ID zasobu wirtualnego huba serwera tras:

    (Get-AzVHubEffectiveRoute -VirtualHubResourceId $routeServer.Id).Value |
        Format-Table AddressPrefixes, NextHops, NextHopType, AsPath -AutoSize
    

Potwierdź, że zarówno 198.51.100.0/24 , jak i 2001:db8:220::/48 pojawiają się z NVA jako kolejnym skokiem. Jeśli którykolwiek z prefiksów jest nieobecny, sprawdź jego instrukcję FRR network i pasującą statyczną trasę i potwierdź, że rodzina adresów jest aktywna u obu sąsiadów. Te kontrole tras nie potwierdzają dostarczenia pakietów.

Alternatywy w portalu i interfejsie CLI znajdują się w artykule Wyświetl efektywne trasy. Aby zastosować politykę trasowania, wykonaj kroki z Konfigurowanie map tras, a następnie porównaj efektywne trasy przed i po zastosowaniu mapy trasy.

Uprzątnij zasoby

Jeśli chcesz kontynuować z przykładem mapy trasy, zachowaj materiały samouczka, aż ukończysz ten przykład. W przeciwnym razie przejrzyj zasoby grupy przed ich usunięciem:

Get-AzResource -ResourceGroupName $resourceGroupName |
    Format-Table Name, ResourceType

Poniższe polecenie usuwa całą grupę zasobów i prosi o potwierdzenie. Uruchamiaj ją tylko wtedy, gdy grupa nie zawiera zasobów, które musisz zachować:

Remove-AzResourceGroup -Name $resourceGroupName