Virtuális gépek hálózatiforgalom-szűrési problémájának diagnosztizálása

Ebből a cikkből megtudhatja, hogyan diagnosztizálhatja a hálózati forgalomszűrővel kapcsolatos problémákat a virtuális gépekre érvényes hálózati biztonsági csoport (NSG) biztonsági szabályainak megtekintésével.

Az NSG-k lehetővé teszik a virtuális gépeken bejövő és kimenő forgalom típusának szabályozását. Az NSG-t társíthatja egy Azure-beli virtuális hálózat alhálózatához, egy virtuális géphez csatlakoztatott hálózati adapterhez vagy mindkettőhöz. A hálózati adapterre alkalmazott hatályos biztonsági szabályok a hálózati adapterhez társított NSG-ben meglévő szabályok összesítése, és az alhálózat, amelyben a hálózati adapter található. A különböző NSG-k szabályai időnként ütközhetnek egymással, és hatással lehetnek a virtuális gépek hálózati kapcsolatára. Megtekintheti a virtuális gép hálózati adapterén alkalmazott NSG-k összes hatályos biztonsági szabályát. Ha nem ismeri a virtuális hálózat, a hálózati adapter vagy az NSG fogalmait, tekintse meg a Virtuális hálózat áttekintése, a Hálózati adapter és a Hálózati biztonsági csoportok áttekintése című témakört.

Eset

Megpróbál csatlakozni egy virtuális géphez a 80-s porton keresztül az internetről, de a kapcsolat meghiúsul. Annak megállapításához, hogy miért nem tudja elérni a 80-as portot az internetről, megtekintheti a hálózati adapter érvényes biztonsági szabályait az Azure Portal, a PowerShell vagy az Azure CLI használatával.

Az alábbi lépések feltételezik, hogy rendelkezik egy meglévő virtuális géppel a hatályos biztonsági szabályok megtekintéséhez. Ha nem rendelkezik meglévő virtuális géppel, először telepítsen egy Linux vagy Windows rendszerű virtuális gépet a cikkben szereplő feladatok elvégzéséhez. A cikkben szereplő példák egy myVM nevű, myVMVMNic nevű hálózati adapterrel rendelkező virtuális gépre mutatnak. A virtuális gép és a hálózati adapter egy myResourceGroup nevű erőforráscsoportban található, és az USA keleti régiójában találhatók. Módosítsa az értékeket a megfelelő lépésekben arra a virtuális gépre vonatkozóan, amelynél a problémát diagnosztizálja.

Diagnosztizálás Azure Portal használatával

  1. Jelentkezzen be az Azure Portalra egy olyan Azure-fiókkal, amely rendelkezik a szükséges engedélyekkel.

  2. A Azure Portal tetején írja be a virtuális gép nevét a keresőmezőbe. Amikor a virtuális gép neve megjelenik a keresési eredmények között, jelölje ki.

  3. A BEÁLLÍTÁSOK területen válassza a Hálózat lehetőséget az alábbi képen látható módon:

    Képernyőkép a Azure Portal a V M V M hálózati adapter hálózati beállításaival.

    Az előző képen látható szabályok a myVMVMNic nevű hálózati adapterre vonatkoznak. Láthatja, hogy két különböző hálózati biztonsági csoport bejövő portszabályai vannak a hálózati adapterhez:

    • mySubnetNSG: Ahhoz az alhálózathoz van társítva, amelyben a hálózati adapter található.
    • myVMNSG: A myVMVMNic nevű virtuális gép hálózati adapteréhez van társítva.

    A DenyAllInBound nevű szabály megakadályozza a virtuális gép felé irányuló bejövő kommunikációt a 80-as porton keresztül az internetről, a forgatókönyvben leírtak szerint. A szabály a SOURCE (forrás) 0.0.0.0/0 azonosítót sorolja fel, amely tartalmazza az internetet is. A magasabb prioritású (alacsonyabb számú) egyéb szabály nem engedélyezi a 80-es port bejövő forgalmát. Ha engedélyezni szeretné a 80-as portot az internetről a virtuális gépre, tekintse meg a probléma megoldását. A biztonsági szabályokkal és az Azure alkalmazásukkal kapcsolatos további információkért lásd: Hálózati biztonsági csoportok.

    A kép alján a KIMENŐPORT-SZABÁLYOK is láthatók. Ezek alatt találhatók a hálózati adapter kimenő portszabályai. Bár a képen csak négy bejövő szabály látható az egyes NSG-khez, az NSG-k négynél több szabályt is tartalmazhatnak. A képen a VirtualNetwork látható a FORRÁS és CÉL területen, az AzureLoadBalancer pedig a FORRÁS területen. A VirtualNetwork és az AzureLoadBalancerszolgáltatáscímkék. A szolgáltatáscímkék AZ IP-címelőtagok egy csoportját képviselik, így minimalizálva a biztonsági szabályok létrehozásának összetettségét.

  4. Győződjön meg arról, hogy a virtuális gép futó állapotban van, majd válassza a Hatályos biztonsági szabályok lehetőséget az előző képen látható módon a hatályos biztonsági szabályok megtekintéséhez, az alábbi képen látható módon:

    Képernyőkép a Hatályos biztonsági szabályok panelről, amelyen a Letöltés lehetőség van kiválasztva, és az AllowAzureLoadBalancerInbound Inbound rule (Bejövő bejövő szabály engedélyezése) lehetőség van kiválasztva.

    A felsorolt szabályok megegyeznek a 3. lépésben látott szabályokkal, bár a hálózati adapterhez és az alhálózathoz különböző lapok vannak társítva az NSG-hez. Ahogy a képen látható, csak az első 50 szabály jelenik meg. Az összes szabályt tartalmazó .csv fájl letöltéséhez válassza a Letöltés lehetőséget.

    Az egyes szolgáltatáscímkék előtagjainak megtekintéséhez válasszon ki egy szabályt, például az AllowAzureLoadBalancerInbound nevű szabályt. Az alábbi képen az AzureLoadBalancer szolgáltatáscímke előtagja látható:

    Képernyőkép az AllowAzureLoadBalancerInbound beírt címelőtagokról.

    Bár az AzureLoadBalancer szolgáltatáscímke csak egy előtagot jelöl, más szolgáltatáscímkék több előtagot is képviselnek.

  5. Az előző lépések a myVMVMNic nevű hálózati adapter biztonsági szabályait mutatták be, de néhány korábbi képen egy myVMVMNic2 nevű hálózati adaptert is láthatott. A példában szereplő virtuális géphez két hálózati adapter van csatlakoztatva. Az érvényes biztonsági szabályok az egyes hálózati adapterek esetében eltérőek lehetnek.

    A myVMVMNic2 hálózati adapter szabályainak megtekintéséhez jelölje ki. Az alábbi képen látható módon a hálózati adapternek ugyanazok a szabályai vannak társítva az alhálózatához, mint a myVMVMNic hálózati adapter, mivel mindkét hálózati adapter ugyanabban az alhálózatban van. Ha egy NSG-t egy alhálózathoz társít, annak szabályai az alhálózat összes hálózati adapterére érvényesek lesznek.

    Képernyőkép a Azure Portal a V M V M Nic 2 hálózati beállításaival.

    A myVMVMNic hálózati adaptertől eltérően a myVMVMNic2 hálózati adapterhez nincs hálózati biztonsági csoport társítva. Minden hálózati adapterhez és alhálózathoz nulla vagy egy NSG lehet társítva. Az egyes hálózati adapterekhez vagy alhálózatokhoz társított NSG azonos vagy eltérő lehet. Ugyanazt a hálózati biztonsági csoportot tetszőleges számú hálózati adapterhez és alhálózathoz társíthatja.

Bár az érvényes biztonsági szabályok a virtuális gépen keresztül tekinthetők meg, az érvényes biztonsági szabályokat egyéni felhasználókon keresztül is megtekintheti:

Diagnosztizálás a PowerShell használatával

Megjegyzés

Javasoljuk, hogy az Azure Az PowerShell-modullal kommunikáljon az Azure-ral. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

A következő parancsokat futtathatja az Azure Cloud Shell, vagy futtathatja a PowerShellt a számítógépről. Az Azure Cloud Shell egy ingyenes interaktív rendszerhéj. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta. Ha a számítógépen futtatja a PowerShellt, szüksége lesz a Azure PowerShell modulra, amely 1.0.0-s vagy újabb verziójú. Futtassa Get-Module -ListAvailable Az a parancsot a számítógépen a telepített verzió megkereséséhez. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, a szükséges engedélyekkel rendelkező fiókkal is be kell jelentkeznie Connect-AzAccount az Azure-ba.

A Get-AzEffectiveNetworkSecurityGroup paranccsal beszerezheti a hálózati adapterek érvényes biztonsági szabályait. Az alábbi példa lekéri a myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait, amelyek egy myResourceGroup nevű erőforráscsoportban találhatóak:

Get-AzEffectiveNetworkSecurityGroup `
  -NetworkInterfaceName myVMVMNic `
  -ResourceGroupName myResourceGroup

A kimenet json formátumban lesz visszaadva. A kimenet megértéséhez tekintse meg a parancs kimenetének értelmezését. A kimenet csak akkor lesz visszaadva, ha egy NSG van társítva a hálózati adapterhez, a hálózati adapter alhálózatához vagy mindkettőhöz. A virtuális gépnek futó állapotban kell lennie. Egy virtuális gép több hálózati adapterrel is rendelkezhet, amelyeken különböző NSG-k vannak alkalmazva. Hibaelhárításkor futtassa az egyes hálózati adapterek parancsát.

Ha továbbra is csatlakozási problémát tapasztal, tekintse meg a további diagnózisokat és szempontokat.

Ha nem ismeri a hálózati adapter nevét, de ismeri annak a virtuális gépnek a nevét, amelyhez a hálózati adapter csatlakozik, a következő parancsok a virtuális géphez csatolt összes hálózati adapter azonosítóját visszaadják:

$VM = Get-AzVM -Name myVM -ResourceGroupName myResourceGroup
$VM.NetworkProfile

A következő példához hasonló kimenetet kap:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic

Az előző kimenetben a hálózati adapter neve myVMVMNic.

Diagnosztizálás az Azure CLI használatával

Ha a cikkben szereplő feladatok elvégzéséhez Azure CLI-parancsokat használ, futtassa a parancsokat az Azure Cloud Shell, vagy futtassa az Azure CLI-t a számítógépéről. Ehhez a cikkhez az Azure CLI 2.0.32-es vagy újabb verziója szükséges. A telepített verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. Ha helyileg futtatja az Azure CLI-t, akkor egy olyan fiókkal is be kell jelentkeznie az login az Azure-ba, amely rendelkezik a szükséges engedélyekkel.

Szerezze be a hálózati adapter érvényes biztonsági szabályait az az network nic list-effective-nsg paranccsal. Az alábbi példa a myResourceGroup nevű erőforráscsoportban található myVMVMNic nevű hálózati adapter érvényes biztonsági szabályait tartalmazza:

az network nic list-effective-nsg \
  --name myVMVMNic \
  --resource-group myResourceGroup

A kimenet json formátumban lesz visszaadva. A kimenet megértéséhez tekintse meg a parancs kimenetének értelmezését. A kimenet csak akkor lesz visszaadva, ha egy NSG van társítva a hálózati adapterhez, a hálózati adapter alhálózatához vagy mindkettőhöz. A virtuális gépnek futó állapotban kell lennie. Egy virtuális gép több hálózati adapterrel is rendelkezhet, amelyeken különböző NSG-k vannak alkalmazva. Hibaelhárításkor futtassa az egyes hálózati adapterek parancsát.

Ha továbbra is csatlakozási problémát tapasztal, tekintse meg a további diagnózisokat és szempontokat.

Ha nem ismeri a hálózati adapter nevét, de nem tudja annak a virtuális gépnek a nevét, amelyhez a hálózati adapter csatlakozik, a következő parancsok a virtuális géphez csatlakoztatott összes hálózati adapter azonosítóját adják vissza:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

A visszaadott kimeneten belül az alábbi példához hasonló információk láthatók:

"networkProfile": {
    "additionalProperties": {},
    "networkInterfaces": [
      {
        "additionalProperties": {},
        "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMVMNic",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      },

Az előző kimenetben a hálózati adapter neve myVMVMNic interfész.

Parancs kimenetének értelmezése

Függetlenül attól, hogy a PowerShellt vagy az Azure CLI-t használta-e a probléma diagnosztizálásához, a következő információkat tartalmazó kimenetet kapja:

  • NetworkSecurityGroup: A hálózati biztonsági csoport azonosítója.
  • Társítás: Azt jelzi, hogy a hálózati biztonsági csoport egy NetworkInterface vagy Alhálózathoz van-e társítva. Ha egy NSG mindkettőhöz van társítva, a rendszer minden NSG-hez a NetworkSecurityGroup, azAssociation és az EffectiveSecurityRules függvényt adja vissza. Ha az NSG közvetlenül a parancs futtatása előtt van társítva vagy leválasztva a hatályos biztonsági szabályok megtekintéséhez, előfordulhat, hogy várnia kell néhány másodpercet, amíg a módosítás megjelenik a parancs kimenetében.
  • EffectiveSecurityRules: Az egyes tulajdonságok magyarázatát a Biztonsági szabály létrehozása című témakörben találja. A defaultSecurityRules/ előtaggal ellátott szabálynevek az alapértelmezett biztonsági szabályok, amelyek minden NSG-ben léteznek. A securityRules/ előtagú szabálynevek a létrehozott szabályok. A szolgáltatáscímkét meghatározó szabályok, például az Internet, a VirtualNetwork és az AzureLoadBalancer a destinationAddressPrefix vagy a sourceAddressPrefix tulajdonságokhoz szintén rendelkeznek értékekkel a expandedDestinationAddressPrefix tulajdonsághoz. A expandDestinationAddressPrefix tulajdonság felsorolja a szolgáltatáscímke által képviselt összes címelőtagot.

Ha ismétlődő szabályokat lát a kimenetben, annak az az oka, hogy egy NSG a hálózati adapterhez és az alhálózathoz is társítva van. Mindkét NSG ugyanazokkal az alapértelmezett szabályokkal rendelkezik, és további ismétlődő szabályokkal is rendelkezhet, ha mindkét NSG-ben azonos szabályokat hozott létre.

A defaultSecurityRules/DenyAllInBound nevű szabály megakadályozza a virtuális gép felé irányuló bejövő kommunikációt a 80-as porton keresztül az internetről, a forgatókönyvben leírtak szerint. A magasabb prioritású (alacsonyabb számmal) rendelkező más szabály nem engedélyezi a 80-as portot az internetről.

Probléma megoldása

Függetlenül attól, hogy az Azure Portalt, a PowerShellt vagy az Azure CLI-t használja a jelen cikkben szereplő forgatókönyvben szereplő probléma diagnosztizálásához, a megoldás egy hálózati biztonsági szabály létrehozása a következő tulajdonságokkal:

Tulajdonság Érték
Forrás Bármely
Forrásporttartományok Bármelyik
Cél A virtuális gép IP-címe, egy IP-címtartomány vagy az alhálózat összes címe.
Célporttartományok 80
Protokoll TCP
Művelet Engedélyezés
Prioritás 100
Név Allow-HTTP-All

A szabály létrehozása után a 80-os port engedélyezett az internetről, mert a szabály prioritása magasabb, mint a DenyAllInBound nevű alapértelmezett biztonsági szabály, amely megtagadja a forgalmat. Megtudhatja, hogyan hozhat létre biztonsági szabályt. Ha a hálózati adapterhez és az alhálózathoz is különböző NSG-k vannak társítva, mindkét NSG-ben ugyanazt a szabályt kell létrehoznia.

Amikor az Azure feldolgozza a bejövő forgalmat, az alhálózathoz társított NSG-ben dolgozza fel a szabályokat (ha van társított NSG), majd a hálózati adapterhez társított NSG-ben dolgozza fel a szabályokat. Ha a hálózati adapterhez és az alhálózathoz NSG van társítva, a portnak mindkét NSG-ben nyitva kell lennie ahhoz, hogy a forgalom elérje a virtuális gépet. Az adminisztrációs és kommunikációs problémák enyhítése érdekében javasoljuk, hogy az egyes hálózati adapterek helyett egy NSG-t társítson egy alhálózathoz. Ha egy alhálózaton belüli virtuális gépeknek eltérő biztonsági szabályokra van szükségük, beállíthatja, hogy a hálózati adapterek egy alkalmazásbiztonsági csoport (ASG) tagjai legyenek, és egy ASG-t adjon meg egy biztonsági szabály forrásaként és céljaként. További információ az alkalmazásbiztonsági csoportokról.

Ha továbbra is kommunikációs problémákat tapasztal, tekintse meg a Megfontolandó szempontok és további diagnosztika című témakört.

Megfontolandó szempontok

Vegye figyelembe a következő szempontokat a csatlakozási problémák elhárításához:

  • Az alapértelmezett biztonsági szabályok blokkolják az internetről érkező bejövő hozzáférést, és csak a virtuális hálózatról érkező bejövő forgalmat engedélyezik. Az internetről bejövő forgalom engedélyezéséhez adjon hozzá az alapértelmezettnél magasabb prioritású biztonsági szabályokat. További információ az alapértelmezett biztonsági szabályokról, illetve a biztonsági szabályok hozzáadásáról.
  • Ha virtuális társhálózatokkal rendelkezik, a VIRTUAL_NETWORK szolgáltatáscímke alapértelmezés szerint automatikusan kibővül, hogy a társviszonyban lévő virtuális hálózatok előtagjait is tartalmazza. A virtuális hálózatok közötti társviszony-létesítéssel kapcsolatos problémák elhárításához megtekintheti az előtagokat az ExpandAddressPrefix listában. További információ a virtuális hálózatok társviszony-létesítéséről és a szolgáltatáscímkékről.
  • Az érvényes biztonsági szabályok csak akkor jelennek meg a hálózati adapteren, ha a virtuális gép hálózati adapteréhez és alhálózatához NSG van társítva, és ha a virtuális gép fut.
  • Ha a hálózati adapterhez vagy alhálózathoz nincsenek NSG-k társítva, és nyilvános IP-cím van hozzárendelve egy virtuális géphez, minden port nyitva van a bejövő és kimenő hozzáféréshez bárhonnan. Ha a virtuális gép nyilvános IP-címmel rendelkezik, javasoljuk, hogy alkalmazzon egy NSG-t a hálózati adapter alhálózatára.

További diagnosztika

  • Ha egy gyorstesztet szeretne futtatni annak megállapításához, hogy engedélyezett-e a forgalom egy virtuális gépről vagy onnan, használja az Azure Network Watcher IP-forgalom-ellenőrzési képességét. Az IP-forgalom ellenőrzése jelzi, hogy a forgalom engedélyezve van-e vagy megtagadva. Ha a rendszer megtagadja, az IP-forgalom ellenőrzése jelzi, hogy melyik biztonsági szabály tiltja le a forgalmat.
  • Ha nincsenek olyan biztonsági szabályok, amelyek a virtuális gép hálózati kapcsolatának meghiúsulását okozzák, a probléma a következő lehet:
    • A virtuális gép operációs rendszerén belül futó tűzfalszoftver
    • Virtuális berendezésekhez vagy helyszíni forgalomhoz konfigurált útvonalak. Az internetes forgalom kényszerített bújtatással átirányítható a helyszíni hálózatra. Ha virtuális berendezésre vagy helyszínire kényszeríti az alagút internetes forgalmát, előfordulhat, hogy nem tud csatlakozni a virtuális géphez az internetről. Ha meg szeretné tudni, hogyan diagnosztizálhatja azokat az útvonalproblémákat, amelyek akadályozhatják a virtuális gép forgalmának áramlását, tekintse meg a virtuális gép hálózati forgalom-útválasztási problémáinak diagnosztizálását ismertető cikket.

Következő lépések