Azure上的那些IP

Posted yangyangchenjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure上的那些IP相关的知识,希望对你有一定的参考价值。

相信第一次接触Azure的读者都会碰到这样一个问题,就是Azure的IP地址,笔者第一次接触Azure也是被搞懵逼了,一会儿VIP,不知道的还以为是会员的意思呢,一会儿又是DIP,后来又来了个PIP,所以很容易搞混淆,所以今天笔者稍微讲一下这几种IP!!!

Azure的IP地址分为下面几类

VIP.负载均衡的IP地址(也可以叫公用虚拟IP地址)

DIP.内部IP地址(Azure官网还叫VIP:x,x表示端口号)

PIP.实例层级公共IP

废话不多说,先贴一张图

这张图我是从官网上扣下来的,个人认为这张图画的还是比较清晰的

一.VIP

概述.在ASM中,这个IP地址是必须的,是SLB负载均衡的IP地址,你也可以认为是一个云服务的IP地址,你可以这么理解,但是其实它是附着在SLB上的(以前Azure的SLB是用vm搭建的,现在都是物理机做的,这就是为什么阿里的SLB仍然要单独收费,微软免费的原因),因为我们知道云服务相当于一个容器,里面包含了你的各种部署,但是这个容器外面的SLB是暴露给Internet的,在以前的ASM中,每个云服务都可以免费获取一个VIP,如果需要额外的VIP地址需要支付一定的费用,外部人员通过Internet访问该云服务就是访问的该VIP地址的。

VIP有如下几个特点

1.首先,该IP地址是SLB的,而SLB附着云服务的上的,但是该云服务里面必须有部署,否则不会分配VIP,在不固定VIP的前提下,一旦部署删除,VIP也会随即释放,举个例子,当在同一个云服务中部署两台VM,这两个VM的VIP一样,但是如果这两台VM一旦被删除,该VIP也会被释放,但是在ARM中,如果不创建SLB(并且该虚拟机不分配PIP),那么该虚拟机就没有公共IP地址。

2.该IP地址是禁ping的,因为SLB是禁止了ICMP协议的,而ping就是基于ICMP协议的。

3.该IP地址是可以固定的,可以通过powershell固定,如果不固定,一旦系统重启以后该VIP会变,但是即使固定了,一旦删除云服务中的部署被删除,该VIP仍然会变化,但是前一个VIP仍然被你独占。

 

 

二.DIP

概述.Azure为云服务中的每个部署提供一个虚拟IP地址,就是DIP,一般该地址都是私有IP,只能实现内网之间的互访。

DIP有如下几个特点

1.这是Azure VM的内网IP地址,在同一虚拟网络中的不同VM就是通过DIP互相通信的(当然可以在子网中使用NSG进行策略)。

2.Azure的DIP的分配原则是先到先得的,最先创建并开机的VM会获得第一个可用的DIP。

3.DIP也可以通过powershell固定,无论在ASM还是ARM里,即使该VM被停止或者关机了,该DIP仍然为其保留,但是如果你删除了该VM,在ASM中,该DIP就会被释放,不会再为其保留,如果在ARM中,如果只是删除给虚拟机,该DIP仍然被独占,因为有一个网络接口没被删除,那是虚拟机的虚拟网卡所在,所以DIP仍然还保留着。

 

 

三.PIP

概述.我们知道虚拟机的DIP是无法被外网直接访问的,必须通过VIP加端口号才能访问,但是如果该虚拟机附加了PIP,外网就可以直接访问,在ASM中,PIP是不可选的,只能是动态的,在ARM中,是可选的,可以设置为静态,除此以外,我们知道,在Azure的虚拟网络内部,是禁ping的,也就是说只有DIP的两台虚拟机即使在同一内网里面仍然是ping不通的,但是附加了PIP,这两台虚拟机就可以ping了,这是为什么,这是由于这时的ping的数据包其实不是走虚拟网络传输的,而是借助于Internet,这样就等于直接绕过虚拟网络和SLB,这样当然可以ping通,但是有人发现一个奇怪的问题,为什么我附加了PIP的VM可以ping通百度,但是访问不了百度,这是什么原因呢?因为你的虚拟机外被设置了NSG,而NSG默认只开启了22端口,就是SSH,所以你的80端口被关闭,当然不能使用http服务了,又由于NSG只能限制TCP/UDP的流量,而不能限制ICMP,所以当然可以ping通百度。

PIP有如下几个特点

1.PIP是独立的公网IP地址,和负载均衡的IP地址不一样。

2.当同一个虚拟网络中的两台VM都保留了静态PIP,这两个PIP肯定是不同的。

3.如果某台VM我们使用了PIP,所有的请求都直接发送给该VM,在不设NSG的前提下,该VM不需要配置终结点,因为所有的终结点都是暴露在Internet上的。

4.如果VM开启了PIP,就可以直接ping通,原理如上。

 

以上是关于Azure上的那些IP的主要内容,如果未能解决你的问题,请参考以下文章

静态托管 - Azure Azure CDN上的Azure Blob存储上的ReactJS应用程序

使用不同租户上的 Azure Active Directory 访问 Azure Service Fabric 应用程序上的 Key Vault

19.Azure备份Azure上的虚拟机(上)

Azure 上的 Django 应用错误地从 Azure Blob 加载静态文件

Nestjs 上的 Azure 服务总线侦听器

Azure 上的 Syncfusion PdfViewerControl