Offentlig slutpunktsanslutning för Virtual Machines med Azure Standard Load Balancer i SAP-scenarier med hög tillgänglighet

Omfånget för den här artikeln är att beskriva konfigurationer som möjliggör utgående anslutning till offentliga startpunkter. Konfigurationerna är främst i kontexten hög tillgänglighet med pacemaker för SUSE/RHEL.

Om du använder pacemaker med Azure-stängselagenten i din lösning för hög tillgänglighet måste de virtuella datorerna ha utgående anslutning till Azure-hanterings-API:et. Artikeln innehåller flera alternativ som gör att du kan välja det alternativ som passar bäst för ditt scenario.

Översikt

När du implementerar hög tillgänglighet för SAP-lösningar via klustring är en av de nödvändiga komponenterna Azure Load Balancer. Azure erbjuder två SKU:er för lastbalanserare: standard och basic.

Azures standardlastbalanserare erbjuder vissa fördelar jämfört med Basic-lastbalanserare. Den fungerar till exempel i flera Azure-tillgänglighetszoner. Den har bättre övervaknings- och loggningsfunktioner för enklare felsökning och kortare svarstider. Funktionen "HA-portar" omfattar alla portar, det vill säga, det är inte längre nödvändigt att lista alla enskilda portar.

Det finns några viktiga skillnader mellan den grundläggande SKU:n och standard-SKU:n för Azure Load Balancer. En av dem är hanteringen av utgående trafik till offentlig startpunkt. En fullständig jämförelse av basic- och standard-SKU-lastbalanserare finns i Load Balancer jämförelse av SKU: er.

När virtuella datorer utan offentliga IP-adresser placeras i serverpoolen för intern (ingen offentlig IP-adress) Standard Azure-lastbalanserare, finns det ingen utgående anslutning till offentliga slutpunkter, om inte ytterligare konfiguration har gjorts.

Om en virtuell dator tilldelas en offentlig IP-adress, eller om den virtuella datorn finns i backend-poolen för en lastbalanserare med offentlig IP-adress, kommer den att ha utgående anslutning till offentliga slutpunkter.

SAP-system innehåller ofta känsliga affärsdata. Det är sällan acceptabelt att virtuella datorer som är värdar för SAP-system är tillgängliga via offentliga IP-adresser. Samtidigt finns det scenarier som kräver utgående anslutning från den virtuella datorn till offentliga slutpunkter.

Exempel på scenarier som kräver åtkomst till en offentlig Azure-startpunkt är:

  • Azure Fence Agent kräver åtkomst till management.azure.com och login.microsoftonline.com
  • Azure Backup
  • Azure Site Recovery
  • Använda en offentlig lagringsplats för att korrigera operativsystemet
  • SAP-programmets dataflöde kan kräva utgående anslutning till offentlig slutpunkt

Om sap-distributionen inte kräver utgående anslutning till offentliga slutpunkter behöver du inte implementera den ytterligare konfigurationen. Det räcker att skapa interna standard-SKU Azure Load Balancer för ditt scenario med hög tillgänglighet, förutsatt att det inte heller finns något behov av inkommande anslutningar från offentliga slutpunkter.

Anteckning

När virtuella datorer utan offentliga IP-adresser placeras i serverpoolen för intern (ingen offentlig IP-adress) Standard Azure-lastbalanserare, kommer det inte att finnas någon utgående Internetanslutning, såvida inte ytterligare konfiguration utförs för att tillåta routning till offentliga slutpunkter.
Om de virtuella datorerna antingen har offentliga IP-adresser eller redan finns i backend-poolen i Azure Load Balancer med offentlig IP-adress, har den virtuella datorn redan utgående anslutning till offentliga slutpunkter.

Läs följande artiklar först:

Alternativ 1: Ytterligare externa Azure-Standard Load Balancer för utgående anslutningar till Internet

Ett alternativ för att uppnå utgående anslutning till offentliga slutpunkter, utan att tillåta inkommande anslutningar till den virtuella datorn från den offentliga slutpunkten, är att skapa en andra lastbalanserare med offentlig IP-adress, lägga till de virtuella datorerna i den andra lastbalanseringspoolens backend-pool och definiera endast utgående regler.
Använd nätverkssäkerhetsgrupper för att styra de offentliga slutpunkterna som är tillgängliga för utgående anrop från den virtuella datorn.
Mer information finns i Scenario 2 i dokumentet Utgående anslutningar.
Konfigurationen skulle se ut så här:

Kontrollera anslutningen till offentliga platser med nätverkssäkerhetsgrupper

Att tänka på

  • Du kan använda ytterligare en offentlig Load Balancer för flera virtuella datorer i samma undernät för att uppnå utgående anslutning till offentlig slutpunkt och optimera kostnaden
  • Använd nätverkssäkerhetsgrupper för att styra vilka offentliga platser som är tillgängliga från de virtuella datorerna. Du kan tilldela nätverkssäkerhetsgruppen antingen till undernätet eller till varje virtuell dator. Använd tjänsttaggar om det är möjligt för att minska komplexiteten i säkerhetsreglerna.
  • Azures standardlastbalanserare med offentlig IP-adress och regler för utgående trafik ger direkt åtkomst till offentlig slutpunkt. Om du har företagets säkerhetskrav för att all utgående trafik ska passera via en centraliserad företagslösning för granskning och loggning kanske du inte kan uppfylla kravet i det här scenariot.

Tips

Om möjligt kan du använda tjänsttaggar för att minska nätverkssäkerhetsgruppens komplexitet.

Distributionssteg

  1. Skapa Load Balancer

    1. I den Azure Portal klickar du på Alla resurser, Lägg till och söker sedan efter Load Balancer
    2. Klicka på Skapa
    3. Load Balancer MyPublicILB
    4. Välj Offentlig som typ, Standard som SKU
    5. Välj Skapa offentlig IP-adress och ange namnet MyPublicILBFrondEndIP
    6. Välj Zonredundant som tillgänglighetszon
    7. Klicka på Granska och skapa och klicka sedan på Skapa
  2. Skapa backend-poolen MyBackendPoolOfPublicILB och lägg till de virtuella datorerna.

    1. Välj det virtuella nätverket
    2. Välj de virtuella datorerna och deras IP-adresser och lägg till dem i backend-poolen
  3. Skapa regler för utgående trafik. För närvarande går det inte att skapa regler för utgående trafik från Azure Portal. Du kan skapa regler för utgående trafik med Azure CLI.

     az network lb outbound-rule create --address-pool MyBackendPoolOfPublicILB --frontend-ip-configs MyPublicILBFrondEndIP --idle-timeout 30 --lb-name MyPublicILB --name MyOutBoundRules  --outbound-ports 10000 --enable-tcp-reset true --protocol All --resource-group MyResourceGroup
    
  4. Skapa regler för nätverkssäkerhetsgrupp för att begränsa åtkomsten till specifika offentliga slutpunkter. Om det finns en befintlig nätverkssäkerhetsgrupp kan du justera den. Exemplet nedan visar hur du aktiverar åtkomst till Azure-hanterings-API:et:

    1. Gå till nätverkssäkerhetsgruppen
    2. Klicka på Utgående säkerhetsregler
    3. Lägg till en regel för att neka all utgående åtkomst till Internet.
    4. Lägg till en regel i Tillåt åtkomst till AzureCloud, med lägre prioritet än regelns prioritet för att neka all Internetåtkomst.

    De utgående säkerhetsreglerna skulle se ut så här:

    Utgående anslutning med andra Load Balancer med offentlig IP-adress

    Mer information om Azure-nätverkssäkerhetsgrupper finns i Säkerhetsgrupper.

Alternativ 2: Azure Firewall för utgående anslutningar till Internet

Ett annat alternativ för att uppnå utgående anslutning till offentliga slutpunkter, utan att tillåta inkommande anslutningar till den virtuella datorn från offentliga Azure Firewall. Azure Firewall är en hanterad tjänst med inbyggd hög tillgänglighet och kan sträcka sig över flera Tillgänglighetszoner.
Du måste också distribuera användardefinierad väg somär associerad med undernätet där virtuella datorer och Azure-lastbalanserare distribueras och pekar på Azure-brandväggen för att dirigera trafik genom Azure Firewall.
Mer information om hur du distribuerar Azure Firewall finns i Distribuera och konfigurera Azure Firewall.

Arkitekturen skulle se ut så här:

Utgående anslutning med Azure Firewall

Att tänka på

  • Azure Firewall är en molnbaserad tjänst med inbyggd hög tillgänglighet och stöd för zonindelig distribution.
  • Kräver ytterligare undernät som måste ha namnet AzureFirewallSubnet.
  • Om överföring av stora datamängder utgående från det virtuella nätverket där de virtuella SAP-datorerna finns, till en virtuell dator i ett annat virtuellt nätverk eller till en offentlig startpunkt, kanske det inte är en kostnadseffektiv lösning. Ett sådant exempel är att kopiera stora säkerhetskopior över virtuella nätverk. Mer information finns i Azure Firewall prissättning.
  • Om företagets brandväggslösning inte är Azure Firewall och du har säkerhetskrav för att all utgående trafik ska passera genom en centraliserad företagslösning, kanske den här lösningen inte är praktisk.

Tips

Om möjligt kan du använda tjänsttaggar för att minska komplexiteten för Azure Firewall regler.

Distributionssteg

  1. Distributionsstegen förutsätter att du redan har ett virtuellt nätverk och undernät som definierats för dina virtuella datorer.

  2. Skapa undernätet AzureFirewallSubnet i samma Virtual Network, där VMS och Standard Load Balancer distribueras.

    1. I Azure Portal navigerar du till Virtual Network: Klicka på Alla resurser, sök efter Virtual Network, klicka på Virtual Network välj undernät.
    2. Klicka på Lägg till undernät. Ange AzureFirewallSubnet som Namn. Ange lämpligt adressintervall. Spara.
  3. Skapa Azure Firewall.

    1. I Azure Portal alla resurser klickar du på Lägg till, Brandvägg, Skapa. Välj Resursgrupp (välj samma resursgrupp, där Virtual Network är).
    2. Ange namnet på Azure Firewall resursen. Till exempel MyAzureFirewall.
    3. Välj Region och välj minst två tillgänglighetszoner, i linje med tillgänglighetszonerna där dina virtuella datorer distribueras.
    4. Välj din Virtual Network, där de virtuella SAP-datorerna och Azure Standard Load Balancer distribueras.
    5. Offentlig IP-adress: Klicka på Skapa och ange ett namn. Till exempel MyFirewallPublicIP.
  4. Skapa Azure Firewall regel för att tillåta utgående anslutning till angivna offentliga slutpunkter. Exemplet visar hur du tillåter åtkomst till Azure-API för hantering offentliga slutpunkten.

    1. Välj Regler, Nätverksregelsamling och klicka sedan på Lägg till nätverksregelsamling.
    2. Namn: MyOutboundRule, ange Prioritet, Välj Åtgärd Tillåt.
    3. Tjänst: Namnge TillAzureAPI. Protokoll: Välj Val av. Källadress: Ange intervallet för undernätet, där de virtuella datorerna och Standard Load Balancer distribueras till exempel: 11.97.0.0/24. Målportar: ange * .
    4. Spara
    5. Eftersom du fortfarande är placerad på Azure Firewall väljer du Översikt. Anteckna den privata IP-adressen för Azure Firewall.
  5. Skapa väg till Azure Firewall

    1. I Azure Portal väljer du Alla resurser och klickar sedan på Lägg till, Dirigera tabell, Skapa.
    2. Ange Namn MyRouteTable, välj Prenumeration, Resursgrupp och Plats (som matchar platsen för det virtuella nätverket och brandväggen).
    3. Spara

    Brandväggsregeln skulle se ut så här:  Diagram som visar hur brandväggen skulle se ut.

  6. Skapa en användardefinierad väg från undernätet för dina virtuella datorer till den privata IP-adressen för MyAzureFirewall.

    1. När du är placerad i vägtabellen klickar du på Vägar. Välj Lägg till.
    2. Vägnamn: ToMyAzureFirewall, Adressprefix: 0.0.0.0/0. Nästa hopptyp: Välj Virtuell installation. Nästa hoppadress: Ange den privata IP-adressen för brandväggen som du konfigurerade: 11.97.1.4.
    3. Spara

Alternativ 3: Använda proxy för pacemaker-anrop till Azure API för hantering

Du kan använda proxy för att tillåta pacemaker-anrop till den offentliga azure-hanterings-API:et.

Att tänka på

  • Om det redan finns en företagsproxy på plats kan du dirigera utgående anrop till offentliga slutpunkter genom den. Utgående anrop till offentliga slutpunkter går via företagets kontrollpunkt.
  • Kontrollera att proxykonfigurationen tillåter utgående anslutning till Azure-hanterings-API:et: https://management.azure.com och https://login.microsoftonline.com
  • Kontrollera att det finns en väg från de virtuella datorerna till proxyservern
  • Proxy hanterar endast HTTP/HTTPS-anrop. Om det finns ytterligare behov av att göra utgående anrop till den offentliga slutpunkten över olika protokoll (t.ex. RFC) krävs en alternativ lösning
  • Proxylösningen måste ha hög tillgänglig för att undvika instabilitet i pacemakerklustret
  • Beroende på proxyns plats kan det leda till ytterligare fördröjning i anropen från Azure Fence Agent till Azure API för hantering. Om företagets proxy fortfarande finns lokalt, medan pacemakerklustret finns i Azure, mäter du svarstiden och överväger om den här lösningen passar dig
  • Om det inte redan finns en företagsproxy med hög tillgång rekommenderar vi inte det här alternativet eftersom kunden skulle medföra extra kostnad och komplexitet. Men om du väljer att distribuera ytterligare proxylösning för att tillåta utgående anslutning från Pacemaker till azure management offentliga API, se till att proxyn har hög tillgänglig och att svarstiden från de virtuella datorerna till proxyn är låg.

Pacemakerkonfiguration med proxy

Det finns många olika proxyalternativ i branschen. Stegvisa instruktioner för proxydistributionen ligger utanför omfånget för det här dokumentet. I exemplet nedan förutsätter vi att proxyn svarar på MyProxyService och lyssnar på porten MyProxyPort.
Om du vill tillåta pacemaker att kommunicera med Azure-hanterings-API:et utför du följande steg på alla klusternoder:

  1. Redigera pacemakerkonfigurationsfilen /etc/sysconfig/pacemaker och lägg till följande rader (alla klusternoder):

    sudo vi /etc/sysconfig/pacemaker
    # Add the following lines
    http_proxy=http://MyProxyService:MyProxyPort
    https_proxy=http://MyProxyService:MyProxyPort
    
  2. Starta om pacemakertjänsten på alla klusternoder.

  • SUSE

    # Place the cluster in maintenance mode
    sudo crm configure property maintenance-mode=true
    #Restart on all nodes
    sudo systemctl restart pacemaker
    # Take the cluster out of maintenance mode
    sudo crm configure property maintenance-mode=true
    
  • Red Hat

    # Place the cluster in maintenance mode
    sudo pcs property set maintenance-mode=true
    #Restart on all nodes
    sudo systemctl restart pacemaker
    # Take the cluster out of maintenance mode
    sudo pcs property set maintenance-mode=false
    

Andra alternativ

Om utgående trafik dirigeras via tredje part, URL-baserad brandväggsproxy:

  • om du använder Azure Fence Agent kontrollerar du att brandväggskonfigurationen tillåter utgående anslutning till Azure-hanterings-API:et: https://management.azure.com och https://login.microsoftonline.com
  • Om du använder SUSE:s offentliga azure-molnuppdateringsinfrastruktur för att tillämpa uppdateringar och korrigeringar kan du läsa Azure Public Cloud Update Infrastructure 101

Nästa steg