App Service Environment-netwerken
App Service Environment is een implementatie met één tenant van Azure-app Service die als host fungeert voor Windows- en Linux-containers, web-apps, API-apps, logische apps en functie-apps. Wanneer u een App Service Environment installeert, kiest u het virtuele Azure-netwerk waarin u het wilt implementeren. Al het binnenkomende en uitgaande toepassingsverkeer bevindt zich in het virtuele netwerk dat u opgeeft. U implementeert in één subnet in uw virtuele netwerk en niets anders kan in dat subnet worden geïmplementeerd.
Notitie
Dit artikel gaat over App Service Environment v3, dat wordt gebruikt met Geïsoleerde v2 App Service-abonnementen.
Subnetvereisten
U moet het subnet delegeren aan Microsoft.Web/hostingEnvironments
en het subnet moet leeg zijn.
De grootte van het subnet kan van invloed zijn op de schaallimieten van de Exemplaren van het App Service-plan binnen de App Service-omgeving. Voor productieschaal raden we een /24
adresruimte (256 adressen) aan voor uw subnet. Als u van plan bent om de maximale capaciteit van 200 exemplaren in onze App Service Environment te schalen en u regelmatig omhoog/omlaag schaalbewerkingen plant, raden we een /23
adresruimte (512 adressen) aan voor uw subnet.
Als u een kleiner subnet gebruikt, moet u rekening houden met de volgende beperkingen:
- Elk bepaald subnet heeft vijf adressen die zijn gereserveerd voor beheerdoeleinden. Naast de beheeradressen wordt de ondersteunende infrastructuur dynamisch geschaald in App Service Environment en wordt gebruikgemaakt van 7 tot 27 adressen, afhankelijk van de configuratie en belasting. U kunt de resterende adressen gebruiken voor exemplaren in het App Service-plan. De minimale grootte van uw subnet is een
/27
adresruimte (32 adressen). - Voor elke App Service-plan OS/SKU-combinatie die wordt gebruikt in uw App Service Environment, zoals I1v2 Windows, wordt er één stand-by-exemplaar gemaakt voor elke 20 actieve exemplaren. Voor de stand-by-exemplaren zijn ook IP-adressen vereist.
- Wanneer u App Service-plannen in de App Service-omgeving omhoog/omlaag schaalt, wordt de hoeveelheid IP-adressen die door het App Service-plan worden gebruikt, tijdelijk verdubbeld terwijl de schaalbewerking is voltooid. De nieuwe exemplaren moeten volledig operationeel zijn voordat de bestaande exemplaren ongedaan worden gemaakt.
- Platformupgrades hebben gratis IP-adressen nodig om ervoor te zorgen dat upgrades kunnen plaatsvinden zonder onderbrekingen van uitgaand verkeer.
- Nadat het omhoog, omlaag of in bewerkingen is voltooid, kan het even duren voordat IP-adressen worden vrijgegeven. In zeldzame gevallen kan deze bewerking maximaal 12 uur duren.
- Als u geen adressen meer hebt binnen uw subnet, kunt u uw App Service-plannen niet uitschalen in de App Service-omgeving. Een andere mogelijkheid is dat u een verhoogde latentie kunt ervaren tijdens de intensieve belasting van het verkeer, als Microsoft de ondersteunende infrastructuur niet kan schalen.
Notitie
Windows Containers gebruikt een extra IP-adres per app voor elk App Service-planexemplaren en u moet de grootte van het subnet dienovereenkomstig aanpassen. Als uw App Service Environment bijvoorbeeld 2 Windows Container App Service-abonnementen heeft met elk 25 exemplaren en elk met 5 apps die worden uitgevoerd, hebt u 300 IP-adressen en extra adressen nodig om horizontale (in/uit) schaal te ondersteunen.
Voorbeeldberekening:
Voor elk Exemplaar van het App Service-plan hebt u het volgende nodig: 5 Windows Container-apps = 5 IP-adressen 1 IP-adres per App Service-planexemplaren 5 + 1 = 6 IP-adressen
Voor 25 exemplaren: 6 x 25 = 150 IP-adressen per App Service-plan
Omdat u 2 App Service-abonnementen hebt, 2 x 150 = 300 IP-adressen.
Adressen
App Service Environment bevat de volgende netwerkgegevens bij het maken:
Adrestype | Beschrijving |
---|---|
Virtueel netwerk van App Service Environment | Het virtuele netwerk dat is geïmplementeerd in. |
App Service Environment-subnet | Het subnet dat is geïmplementeerd in. |
Domeinachtervoegsel | Het standaarddomeinachtervoegsel dat wordt gebruikt door de apps. |
Achtervoegsel van aangepast domein | (optioneel) Het aangepaste domeinachtervoegsel dat wordt gebruikt door de apps. |
Virtueel IP-adres (VIP) | Het GEBRUIKTE VIP-type. De twee mogelijke waarden zijn intern en extern. |
Inkomend adres | Het binnenkomende adres is het adres waarop uw apps zijn bereikt. Als u een intern VIP hebt, is dit een adres in uw App Service Environment-subnet. Als het adres extern is, is het een openbaar adres. |
Uitgaande adressen van werknemers | De apps gebruiken deze of deze adressen bij het maken van uitgaande oproepen naar internet. |
Uitgaande platformadressen | Het platform gebruikt dit adres wanneer uitgaande oproepen naar internet worden uitgevoerd. Een voorbeeld is het ophalen van certificaten voor aangepast domeinachtervoegsel uit Key Vault als er geen privé-eindpunt wordt gebruikt. |
U vindt details in het gedeelte IP-adressen van de portal, zoals wordt weergegeven in de volgende schermopname:
Wanneer u uw App Service-plannen in uw App Service-omgeving schaalt, gebruikt u meer adressen buiten uw subnet. Het aantal adressen dat u gebruikt, varieert, afhankelijk van het aantal Exemplaren van het App Service-plan dat u hebt en hoeveel verkeer er is. Apps in de App Service Environment hebben geen toegewezen adressen in het subnet. De specifieke adressen die door een app in het subnet worden gebruikt, worden na verloop van tijd gewijzigd.
Uw eigen binnenkomende adres gebruiken
U kunt uw eigen binnenkomende adres meenemen naar uw App Service Environment. Als u een App Service-omgeving met een intern VIP maakt, kunt u een statisch IP-adres opgeven in het subnet. Als u een App Service-omgeving met een extern VIP maakt, kunt u uw eigen openbare IP-adres van Azure gebruiken door de resource-id van het openbare IP-adres op te geven. Hier volgen beperkingen voor het meenemen van uw eigen binnenkomende adres:
- Voor App Service Environment met extern VIP moet de openbare IP-adresresource van Azure zich in hetzelfde abonnement bevinden als de App Service Environment.
- Het binnenkomende adres kan niet worden gewijzigd nadat de App Service Environment is gemaakt.
Poorten en netwerkbeperkingen
Zorg ervoor dat de regels voor binnenkomende netwerkbeveiligingsgroepen (NSG)-regels het app Service Environment-subnet verkeer van de vereiste poorten kunnen ontvangen om verkeer te ontvangen voor uw app. Naast alle poorten waarop u verkeer wilt ontvangen, moet u ervoor zorgen dat Azure Load Balancer verbinding kan maken met het subnet op poort 80. Deze poort wordt gebruikt voor statuscontroles van de interne virtuele machine. U kunt nog steeds poort 80-verkeer van het virtuele netwerk naar uw subnet beheren.
Notitie
Het kan tot 14 dagen duren voordat wijzigingen in NSG-regels van kracht worden vanwege persistentie van de HTTP-verbinding. Als u een wijziging aanbrengt die platform-/beheerverkeer blokkeert, kan het tot 14 dagen duren voordat de impact zichtbaar is.
Het is een goed idee om de volgende binnenkomende NSG-regel te configureren:
Bron-/doelpoort(en) | Richting | Bron | Doel | Doel |
---|---|---|---|---|
* / 80,443 | Inkomend | VirtualNetwork | Subnetbereik App Service Environment | App-verkeer en interne status pingverkeer toestaan |
De minimale vereiste dat App Service Environment operationeel moet zijn, is:
Bron-/doelpoort(en) | Richting | Bron | Doel | Doel |
---|---|---|---|---|
* / 80 | Inkomend | AzureLoadBalancer | Subnetbereik App Service Environment | Intern status pingverkeer toestaan |
Als u de minimaal vereiste regel gebruikt, hebt u mogelijk een of meer regels nodig voor uw toepassingsverkeer. Als u een van de implementatie- of foutopsporingsopties gebruikt, moet u dit verkeer ook toestaan naar het Subnet app Service Environment. De bron van deze regels kan het virtuele netwerk zijn, of een of meer specifieke IP-adressen van clients of IP-bereiken. Het doel is altijd het subnetbereik app serviceomgeving.
Het interne status pingverkeer op poort 80 wordt geïsoleerd tussen de load balancer en de interne servers. Er kan geen extern verkeer het eindpunt voor status ping bereiken.
De normale toegangspoorten voor apps zijn als volgt:
Gebruik | Poorten |
---|---|
HTTP/HTTPS | 80, 443 |
FTP/FTPS | 21, 990, 10001-10020 |
Externe foutopsporing in Visual Studio | 4022, 4024, 4026 |
Web Deploy-service | 8172 |
Notitie
Voor FTP-toegang, zelfs als u standaard FTP niet wilt toestaan op poort 21, moet u nog steeds verkeer van de LoadBalancer naar het subnetbereik App Service Environment op poort 21 toestaan, omdat dit wordt gebruikt voor intern status pingverkeer voor de FTP-service specifiek.
Netwerkroutering
U kunt zonder beperkingen routetabellen instellen. U kunt al het uitgaande toepassingsverkeer van uw App Service-omgeving tunnelen naar een uitgaand firewallapparaat, zoals Azure Firewall. In dit scenario hoeft u zich alleen maar zorgen te maken over de afhankelijkheden van uw toepassing.
Toepassingsafhankelijkheden bevatten eindpunten die uw app tijdens runtime nodig heeft. Naast API's en services die de app aanroept, kunnen afhankelijkheden ook afgeleide eindpunten zijn, zoals certificaatintrekkingslijst (CRL), eindpunten en eindpunt voor identiteit/verificatie controleren, bijvoorbeeld Microsoft Entra-id. Als u continue implementatie in App Service gebruikt, moet u mogelijk ook eindpunten toestaan, afhankelijk van het type en de taal. Specifiek voor continue linux-implementatie moet u toestaan oryx-cdn.microsoft.io:443
.
U kunt uw Web Application Firewall-apparaten, zoals Azure-toepassing Gateway, vóór binnenkomend verkeer plaatsen. Hierdoor kunt u specifieke apps beschikbaar maken in die App Service-omgeving.
Uw toepassing gebruikt een van de standaard uitgaande adressen voor uitgaand verkeer naar openbare eindpunten. Als u het uitgaande adres van uw toepassingen in een App Service Environment wilt aanpassen, kunt u een NAT-gateway toevoegen aan uw subnet.
Notitie
Uitgaande SMTP-connectiviteit (poort 25) wordt ondersteund voor App Service Environment v3. De ondersteuning wordt bepaald door een instelling in het abonnement waarin het virtuele netwerk wordt geïmplementeerd. Voor virtuele netwerken/subnetten die vóór 1 zijn gemaakt. Augustus 2022 moet u een tijdelijke configuratiewijziging initiëren in het virtuele netwerk/subnet om de instelling te synchroniseren vanuit het abonnement. Een voorbeeld hiervan is het toevoegen van een tijdelijk subnet, het tijdelijk koppelen/ontkoppelen van een NSG of het tijdelijk configureren van een service-eindpunt. Zie Problemen met uitgaande SMTP-connectiviteit in Azure oplossen voor meer informatie en probleemoplossing.
Privé-eindpunt
Als u privé-eindpunten wilt inschakelen voor apps die worden gehost in uw App Service Environment, moet u deze functie eerst inschakelen op het niveau van de App Service-omgeving.
U kunt deze activeren via Azure Portal. Schakel in het configuratiedeelvenster van de App Service-omgeving de instelling Allow new private endpoints
in.
U kunt de volgende CLI ook inschakelen:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Zie Het privé-eindpunt van Azure Web App voor meer informatie over privé-eindpunten en web-apps
DNS
In de volgende secties worden de DNS-overwegingen en -configuratie beschreven die binnenkomend en uitgaand zijn van uw App Service-omgeving. In de voorbeelden wordt het domeinachtervoegsel appserviceenvironment.net
uit de openbare Azure-cloud gebruikt. Als u andere clouds zoals Azure Government gebruikt, moet u het respectieve domeinachtervoegsel gebruiken. Voor App Service Environment-domeinen wordt de sitenaam afgekapt met 40 tekens vanwege DNS-limieten. Als u een site hebt, wordt de naam van de site afgekapt met 19 tekens.
DNS-configuratie voor uw App Service-omgeving
Als uw App Service-omgeving wordt gemaakt met een extern VIP, worden uw apps automatisch in openbare DNS geplaatst. Als uw App Service Environment is gemaakt met een intern VIP, hebt u twee opties wanneer u uw App Service Environment maakt. Als u selecteert dat azure DNS-privézones automatisch zijn geconfigureerd, wordt DNS geconfigureerd in uw virtuele netwerk. Als u ervoor kiest om DNS handmatig te configureren, moet u uw eigen DNS-server gebruiken of privézones van Azure DNS configureren. Als u het binnenkomende adres wilt vinden, gaat u naar de App Service Environment-portal en selecteert u IP-adressen.
Als u uw eigen DNS-server wilt gebruiken, voegt u de volgende records toe:
- Maak een zone voor
<App Service Environment-name>.appserviceenvironment.net
. - Maak een A-record in die zone die * verwijst naar het binnenkomende IP-adres dat wordt gebruikt door uw App Service Environment.
- Maak een A-record in die zone die verwijst naar het binnenkomende IP-adres dat wordt gebruikt door uw App Service Environment.
- Maak een zone met
<App Service Environment-name>.appserviceenvironment.net
de naamscm
. - Maak een A-record in de
scm
zone die * verwijst naar het IP-adres dat wordt gebruikt door het privé-eindpunt van uw App Service-omgeving.
DNS configureren in privézones van Azure DNS:
- Maak een Azure DNS-privézone met de naam
<App Service Environment-name>.appserviceenvironment.net
. - Maak een A-record in die zone die * verwijst naar het binnenkomende IP-adres.
- Maak een A-record in die zone die @ verwijst naar het binnenkomende IP-adres.
- Maak een A-record in die zone die *.scm verwijst naar het binnenkomende IP-adres.
Naast het standaarddomein dat wordt opgegeven wanneer een app wordt gemaakt, kunt u ook een aangepast domein toevoegen aan uw app. U kunt een aangepaste domeinnaam instellen zonder validatie voor uw apps. Als u aangepaste domeinen gebruikt, moet u ervoor zorgen dat dns-records zijn geconfigureerd. U kunt de voorgaande richtlijnen volgen voor het configureren van DNS-zones en -records voor een aangepaste domeinnaam (vervang de standaarddomeinnaam door de aangepaste domeinnaam). De aangepaste domeinnaam werkt voor app-aanvragen, maar werkt niet voor de scm
site. De scm
site is alleen beschikbaar op <appname.scm>.<asename.appserviceenvironment.net>.
DNS-configuratie voor FTP-toegang
Voor FTP-toegang tot ILB (Internal Load Balancer) App Service Environment v3 moet u ervoor zorgen dat DNS is geconfigureerd. Configureer een privézone van Azure DNS of gelijkwaardige aangepaste DNS met de volgende instellingen:
- Maak een Azure DNS-privézone met de naam
ftp.appserviceenvironment.net
. - Maak een A-record in die zone die verwijst
<App Service Environment-name>
naar het binnenkomende IP-adres.
Naast het instellen van DNS moet u deze ook inschakelen in de App Service Environment-configuratie en op app-niveau.
DNS-configuratie vanuit uw App Service-omgeving
De apps in uw App Service Environment gebruiken de DNS waarmee uw virtuele netwerk is geconfigureerd. Als u wilt dat sommige apps een andere DNS-server gebruiken, kunt u deze handmatig instellen per app, met de app-instellingen WEBSITE_DNS_SERVER
en WEBSITE_DNS_ALT_SERVER
. WEBSITE_DNS_ALT_SERVER
hiermee configureert u de secundaire DNS-server. De secundaire DNS-server wordt alleen gebruikt wanneer er geen reactie van de primaire DNS-server is.